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
반응형
'개발자 :-) > SQL' 카테고리의 다른 글
[MySQL] SQL 프로그래밍( IF, CASE, WHILE, 동적SQL) (1) | 2022.09.26 |
---|---|
[MySQL] Join (1) | 2022.09.26 |
[MySQL] 데이터 변경을 위한 INSERT / UPDATE / DELETE (0) | 2022.09.25 |
[MySQL] SQL 기본 문법(SELECT FROM WHERE) (0) | 2022.09.19 |
[MySQL] 데이터베이스 개체(인덱스, 뷰, 스토어드 프로시저) (0) | 2022.09.18 |
댓글