✍️ Study Note
데이터 타입
1. 숫자
데이터 형식 | 설명 | 범위 |
BIN | 1~62 bit 표현 | |
TINYINT | 정수 | +- 127 |
SAMLLINT | 정수 | +- 3만 |
MEDIUMINT | 정수 | +- 8천 |
INT | 정수 | +- 21억 |
BIGINT | 정수 | +- 900경 |
FLOAT | 정수 + 소수점 | 소수점 7자리까지 |
DOUBLE REAL | 정수 + 소수점 | 소수점 15자리까지 |
DECIMAL(M,D) | 정수 + 소수점 | M = 자릿수 D = 소숫점 이하 자릿수 |
2. 문자
데이터형식 | 설명 | 범위 | |
CHAR | 고정 길이의 문자 | ~ 255 | |
VARCHAR | 가변 길이의 문자 | ~ 6만 | |
BINARY | 고정 길이의 이진 데이터 | ~ 255 | |
VARBINARY | 가변 길이의 이진 데이터 | ~ 255 | |
TEXT | TINY TEXT | TEXT | ~ 255 |
TEXT | TEXT | ~ 6만 | |
MEDIUMTEXT | TEXT | ~ 1600만 | |
LONGTEXT | TEXT LOB(Large Object) 저장 |
~ 42억 | |
BLOB | TINYBLOB | BLOB | ~ 255 |
BLOB | BLOB | ~ 6만 | |
MEDIUMBLOB | BLOB | ~ 1600만 | |
LONGBLOB | BLOB LOB(Large Object) 저장 |
~ 42억 | |
ENUM (값들..) | 열거형 데이터 | ||
SET (값들..) | 서로 다른 데이터 |
3. 날짜
데이터 형식 | 설명 |
DATE | 'YYYY-MM-DD' |
TIME | 'HH:MM:SS' |
DATETIME | 'YYYY-MM-DD HH:MM:SS' |
TIMESTAMP | 'YYYY-MM-DD HH:MM:SS' UTC 시간대 변환하여 저장 |
YEAR | 'YYYY' |
변수
1. 변수 선언
-- 변수선언
set @myvar1 = 5;
set @myvar2 = 3;
set @myvar3 = 4.25;
set @myvar4 = '가수이름 ==> ';
select @myvar1 ;
select @myvar4 , name from usertbl where height > 180;
- SET 변수이름 = 변수 값
2. 변수와 PREPARE, EXECUTE 구문
SET @MYVAR1 = 3;
PREPARE MYQUERY
FROM 'SELECT NAME, HEIGHT FROM USERTBL ORDER BY HEIGHT LIMIT?';
EXECUTE MYQUERY USING @MYVAR1;
-- ? 에 변수 3 대입됨. LIMIT 3으로 쿼리 실행
- PREPARE : '쿼리문' 대기
- EXECUTE : '쿼리문' 실행
- USING 변수이름 : '쿼리문'에서 '?' 자리에 변수가 대입되어 실행.
데이터 타입 변환
1. 명시적 변환
CAST, CONVERT 함수 사용하여 명확하게 변환
SELECT CAST(AVG(AMOUNT) AS SIGNED INTEGER) FROM BUYTBL;
SELECT CONVERT(AVG(AMOUNT), SIGNED INTEGER) FROM BUYTBL; -- 정수로 변환
SELECT CAST('2020/12/12' AS DATE);
SELECT CAST('2020$12$12' AS DATE);
SELECT CAST('2020%12%12' AS DATE);
SELECT CAST('2020@12@12' AS DATE); -- 2020-12-12로 변환
SELECT NUM,
CONCAT(CAST(PRICE AS CHAR(10)), 'x', CAST(AMOUNT AS CHAR(4)), '=') AS '단가 X 수량',
PRICE*AMOUNT AS '구매액'
FROM BUYTBL;
- CAST (변환 대상 AS 데이터 형식)
- CONVER (변환 대상, 데이터 형식)
2. 암시적 변환
함수사용 없이 쿼리문 요청에 따라 암시적으로 변환
SELECT '100' + '200'; -- [결과 : 300] 문자가 정수로 변환되어 더해짐
SELECT CONCAT(100 + '200'); -- [결과 : 100200] 정수가 문자로 변환되어 합쳐짐
SELECT 1 > '2MEGA'; -- [결과 : 0 (FALSE)] '2MEGA'가 정수 2로 변환되었고, 해당 산식은 FALSE임
- 암시적 변환에서 문자는 정수 0으로 변환됨.
'코딩공부' 카테고리의 다른 글
[SQL] MySQL 내장함수 #1 (제어흐름함수, 문자열 함수) (0) | 2021.10.12 |
---|---|
[SQL] MySQL Workbench 설정 (명령어 대문자, 주석, 쿼리 폰트 설정) (0) | 2021.10.11 |
[SQL] MySQL 문법 공부 (데이터 조회, 추가, 삭제, 조건 / 명령어 종류) (0) | 2021.10.11 |
[SQL] MySQL Workbench 사용자 생성 방법 (0) | 2021.10.10 |
[Python] VS code (Visual studio) Python Run 단축키 세팅 (0) | 2021.10.02 |