Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 이클립스
- CSS
- git
- MySQL
- vb.net
- 자바
- 아파치톰캣
- 인스턴스
- spring
- asp.net
- Spring_오류정리
- 인덱스
- DML
- workbench
- JavaScript
- jsp
- github
- SQL_용어정리
- Git_명령어정리
- HTML
- 자바스크립트
- Linux
- Git_정리
- Spring_에러정리
- java
- 다이어그램
- Linux_명령어정리
- 배열
- SQL
- json
Archives
- Today
- Total
데브마우스
[SQL] SQL의 데이터 형식, 변수, 형변환 정리 본문
정수형
정수형 데이터 형식 |
|||
Java 데이터 형식 | SQL 데이터 형식 | 바이트 수 | 숫자 범위 |
byte | TINYINT | 1 | -128 ~ 127 |
short | SMALLINT | 2 | -32768 ~ 32767 |
int | INT | 4 | 약 -21억 ~ 21억 |
long | BIGINT | 8 |
약 -900경 ~ 900경
|
데이터 형식 뒤에 UNSIGNED를 작성하여 사용시 음수를 사용하지 않고, 0부터 양수만 사용합니다. |
실수형
실수형 데이터 형식 | ||
데이터 형식 | 바이트 수 | 설명 |
FLOAT | 4 |
소수점 아래 7자리까지 표현합니다.
|
DOUBLE | 8 |
소수점 아래 15자리까지 표현합니다.
|
문자형
문자형 데이터 형식 | |
데이터 형식 | 바이트 범수 |
CHAR(개수) | 1~255 |
VARCHAR(개수) | 1~16383 |
VARCHAR은 가변길이 문자형으로 사용한 글자만 저장합니다.
MySQL의 성능면에서는 CHAR가 VARCHAR보다 유리합니다. |
대량의 데이터 형식
대량의 데이터 형식 |
||
데이터 형식 | 바이트 수 | |
TEXT 형식 | TEXT | 1~65535 |
LONGTEXT | 1~4294967295 (약 4GB) | |
BLOB 형식 (Binary Long Object) |
BLOG | 1~65535 |
LONGBLOG | 1~4294967295 (약 4GB) |
날짜형
날짜형 데이터 형식 | ||
데이터 형식 | 바이트 수 | 설명 |
DATE | 3 |
날짜만 저장합니다.
YYYY-MM-DD 형식으로 사용합니다. |
TIME | 3 |
시간만 저장합니다.
HH:MM:SS 형식으로 사용합니다. |
DATETIME | 8 |
날짜 및 시간을 저장합니다.
YYYY-MM-DD HH:MM:SS 형식으로 사용합니다. |
★SQL에서 변수 사용
SET과 @변수명으로 사용합니다.
아래는 예제코드입니다.
SET @myvar1 = 5;
SET @myvar2 = 4.25;
SELECT @myvar1;
SELECT @myvar2 + @myvar1;
SET @txt = '가수 이름 ==> ';
SET @height = 166;
SELECT @txt, mem_name FROM member WHERE height > @height;
LIMIT 뒤에 오는 숫자에는 변수를 사용할 수 없습니다. 그러므로 PREPARE와 EXECUTE로 문제를 해결합니다.
아래는 작동하지 않는 SQL문입니다.
-- 오류가 발생하는 코드입니다.
SET @count = 3;
SELECT mem_name, height
FROM member
ORDER BY height
LIMIT @count;
아래는 PREPARE와 EXECUTE로 정상 작동하는 SQL문입니다.
-- 정상 작동 코드입니다.
-- PREPARE와 EXECUTE로 문제를 해결했습니다.
SET @count = 3;
PREPARE mySQL FROM
'SELECT mem_name, height
FROM member
ORDER BY height
LIMIT ?';
EXECUTE mySQL USING @count;
데이터 형변환
명시적 형변환(함수 이용)
함수를 이용하여 명시적인 형변환이 가능합니다. CAST와 CONVERT 함수가 있습니다.
CAST (값 AS 데이터_형식 [ (길이) ] )
CONVERT (값, 데이터_형식 [ (길이) ] )
- 데이터_형식에 올 수 있는 파라미터는 CHAR, SIGNED, UNSIGNED, DATE, TIME, DATETIME등이 있습니다.
- SIGNED는 부호가 있는 정수를 의미하며 UNSIGNED는 부호가 없는 정수를 의미 합니다.
- AS가 필요없는 CONVERT 함수를 더 추천합니다. 왜냐하면 CAST는 데이터 형식 앞에 AS를 작성하여 Alias와 헷갈릴 수 있기 때문입니다.
아래는 모두 날짜형식으로 데이터를 형변환 하는 SQL문입니다.
SELECT CAST('2022@12@12' AS DATE);
SELECT CAST('2022*12*12' AS DATE);
SELECT CAST('2022,12.12' AS DATE);
암시적인 형변환
암시적인 변환은 CAST()나 CONVERT() 함수를 사용하지 않고도 자연스럽게 형이 변환 되는 것을 의미합니다.
SELECT '100' + '200'; -- 출력 300
SELECT 100 + '200'; -- 출력 300
SELECT 0 = 'mega2'; -- 문자는 0으로 변환되었으며 0 = 0이 성립되어 1이 출력됩니다.
'데이터베이스 > SQL: 정리' 카테고리의 다른 글
[SQL] 조인 정리: 내부 조인, 외부 조인, 상호 조인, 자체 조인 (0) | 2024.01.03 |
---|---|
[SQL] DELETE, DROP, TRUNCATE 속도 비교 정리 (0) | 2024.01.03 |
[MySQL] MySQL에서 제공하는 실습 데이터베이스 (0) | 2024.01.03 |
[SQL] UPDATE와 DELETE 그리고 Safe Update Mode 해제 방법 정리 (0) | 2024.01.03 |
[SQL] INSERT INTO ~ SELECT로 다른 테이블의 데이터를 한 번에 입력하는 방법 정리 (0) | 2024.01.03 |