MySQL chapter 07. SQL 고급 

7.1 MySQL의 데이터 형식

7.1.1 MySQL에서 지원하는 데이터 형식의 종류

- 숫자 데이터 형식


// DECIMAL 데이터 형식은 정확한 수치를 저장하게 되고, 

// FLOAT, REAL은 근사치의 숫자를 저장한다.

// 대신 FLOAT, REAL은 상당히 큰 숫자를 저장할 수 있다는 장점이 있다.

// 소수점이 들어간 실수를 저장하려면 되도록 DECIMAL을 사용하는 것이 바람직하다.

ex)

-999999.99부터 +999999.99까지의 숫자를 저장할 경우에는 DECIMAL(9,2)로 설정하면 된다.


// 부호 없는 정수를 지정할 때는 UNSIGNED 예약어를 붙여주면 된다.

// 부호 없는 정수로 지정하면 최소값+최대값



- 문자 데이터 형식



// CHAR 형식은 고정길이 문자형으로 자릿수가 고정되어 있다. 

// 예를 들어 CHAR(100)에 'ABC' 3글자만 저장해도 100자리를 모두 확보한 후에 3자리를 사용하고 뒤의 97자리는 낭비하게 된다

// VARCHAR 형식은 가변길이 문자형으로 VARCHAR(100)에 'ABC' 3글자를 저장할 경우 3자리만 사용하게 된다.

// 그래서 공간을 효율적으로 운영할 수 있다.

// 하지만, CHAR형식으로 설정하는 것이 INSERT/UPDATE 시에 일반적으로 더 좋은 성능을 발휘한다.


// BINARY와 VARBINARY는 바이트 단위의 이진 데이터 값을 저장하는데 사용된다.


// TEXT 형식은 대용량의 글자를 저장하기 위한 형식으로 필요한 크기에 따라서 사용한다.


// BLOB(Binary Large Object)은 사진 파일, 동영상 파일, 문서 파일 등의 대용량의 이진 데이터를 저장하는데 사용될 수 있다.

// BLOB도 필요한 크기에 따라서 사용한다.


// ENUM은 열거형 데이터를 쓸 때 사용될 수 있는데 예로 요일(월~일)을 ENUM 형식으로 설정할 수 있다.



- 날짜와 시간 데이터 형식




- 기타 데이터 형식




- LONGTEXT, LONGBLOB

// LOB(Large Object : 대량의 데이터)을 저장하기 위해서 사용한다

// 지원되는 데이터 크기는 약 4GB의 파일을 하나의 데이터로 저장할 수 있다.

// 예로 장편 소설과 같은 큰 텍스트 파일이라면, 그 내용을 전부 LONGTEXT 형식으로 지정된 하나의 컬럼에 넣을 수 있고

// 동영상 파일과 같은 큰 바이너리 파일이라면 그 내용을 전부 LONGBLOB 형식으로 지정된 하나의 칼럼에 넣을 수 있다.



7.1.2 변수의 사용

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


// 변수는 Workbench를 재시작할 때까지는 계속 유지되지만 Workbench를 닫았다가 재시작하면 소멸된다.
1
2
3
4
5
6
7
8
9
10
11
USE sqldb;
 
SET @myVar1 = 5;
SET @myVar2 = 3;
SET @myVar3 = 4.25;
SET @myVar4 = '가수 이름 ==> ';
 
SELECT @myVar1;
SELECT @myVar2 + @myVar3;
 
SELECT @myVar4, Name FROM usertbl WHERE height > 180;
cs




7.1.3 데이터 형식과 형 변환
- 데이터 형식과 변환 함수 (CAST(), CONVERT() 함수)

1
2
CAST ( expression AS 데이터형식 [ (길이) ] )
CONVERT ( expression , 데이터형식 [ (길이) ] )
cs


Posted by 너래쟁이
: