본문 바로가기
개발자 :-)/SQL

[SQL] SQL 고급 문법(데이터 형식)

by 뚜생첨 2022. 9. 25.

1. 데이터 형식

정수형, 문자열, 실수형, 날짜형, 변수, 형 변환

 

2. 정수형

데이터 형식 바이트 표현 범위
TINYINT 1 -128 ~ 127
SMALLINT 2 -32,768 ~ 32,767
INT 4 - 21억 ~ 21억 
BIGINT 8 -900경 ~ 900경

* [데이터 형식] UNSIGNED로 표현하는 경우 양의 정수로 이루어진 데이터에 대해 사용 가능하다.

 

3. 문자형

데이터 형식 바이트 수
CHAR(개수) 1 ~ 255
VARCHAR(개수) 1 ~ 16,383

CHAR : 고정형 문자형

             최대 N자 까지 입력 가능하고, 메모리에 N글자 공간만큼 할당

             속도가 더 빠르다

             글자가 고정적인 경우 좋다.

VARCHAR : 가변형 문자형

             최대 N자 까지 입력 가능하고, 메모리에 실제 입력한 글자만큼 할당

             공간이 효율적

             글자길이가 가변적인 경우 좋다.

 

전화번호처럼 숫자로서의 의미가 없는 경우 CHAR로 지정

* 숫자로 지정하는 경우 

 - 연산이 가능하다거나

 - 크고 작음 비교가 의미있을때 

 

CHAR는 255바이트까지 가능

VARCHAR 16384까지 가능

 

LONGTEXT : 긴 텍스트 ex) 자막

LONGBLOB : 긴 파일    ex) 영화 자체

 

4. 실수형

데이터 형식 바이트 범위
FLOAT 4 소수점 아래 7자리
DOUBLE 8 소수점 아래 15자리

 

5. 날짜형

데이터 형식 바이트  설명
DATE 3 날짜만, YYYY-MM-DD
TIME 3 시간만, HH:MM:SS
DATETIME 8 YYYY-MM-DD HH:MM:SS

 

6. 변수 사용

SET @변수이름 = 변수의 값;        -- 변수의 선언 및 값 대입
SELECT @변수이름;                 -- 출력

 

* 예시

SET @txt = '가수 이름 : ';
SET @height = 166;
SELECT @txt, mem_name
FROM member WHERE height < @height;

실제 사용하려면

SET @count = 3;
PREPARE [이름] FROM 'SELECT mem_name, height FROM member ORDER BY height LIMIT ? ';
EXCUTE [이름] USING @count;

 

7. 데이터 형변환

* 명시적 형 변환

CAST(값 AS 데이터 형식[(길이)])
CONVERT(값, 데이터 형식[(길이)])

* 예시

SELECT CAST(AVG(price) AS SIGNED) '평균 가격' FROM buy;        --SIGNED : 부호가 있는 정수형

 

* 암시적 형 변환

SELECT '100' + '200' ;          -- 300  문자와 문자를 더함(정수로 변환)
SELECT CONCAT('100', '200');    -- 100200 문자와 문자를 연결함
SELECT 1 > '2mega';             --맨 앞 숫자를 정수로 변환하여 비교
SELECT 0 = 'mega';              -- 문자는 0으로 변환
728x90
반응형

댓글