[DataBase] DDL (데이터 정의어)
(1) SQL (Structured Query Language)
-
관계형 데이터베이스를 조작하기 위한 표준 언어
-
기본 구문 형태는 Select, 원하는 컬럼 이름, From, 테이블 이름
SQL은 대소문자를 구분하지 않으며, SELECT와 select 또는 Select 모두 같은 명령으로 인식한다.
SELECT 뒤에 *는 모든 Column을 조회한다는 의미이다.
SQL은 명령어의 역할에 따라 DDL, DML, DCL로 구분할 수 있다.
(2) DDL (Data Definition Language, 데이터 정의어)
-
데이터 구조를 정의하는 명령어
-
CREATE, DROP, TRUNCATE, ALTER 등이 있음
가) CREATE
-
데이터베이스 또는 테이블 생성
데이터베이스는 다양한 데이터 타입을 담을 수 있으므로, 테이블을 생성하면서 각각의 Column에 이름과 함께 데이터 타입을 지정해주어야 한다.
[표 1] Oracle 데이터 타입
데이터 타입 | 설명 |
varchar2 (size) | 가변 길이 문자열 저장 size는 1Byte에서 4KB까지 지정 가능 |
nvarchar2 (size) | 가변 길이 유니코드 문자열 저장 size를 명시해야 하며 최대 4KB까지 지정 가능 |
number | ANSI SQL 데이터 타입에서 integer / int / smallint 역할 정수를 저장 |
float | 소수점 아래 숫자를 포함한 수 저장 |
date | 날짜 정보를 담음 저장 형식은 환경 변수 NLS_DATE_FORMAT에서 확인 가능 |
timestamp | 날짜 / 시간 관련 정보를 담음 DATE (YEAR, MONTH, DAY), TIME (HOUR, MINUTE, SECOND) |
char (size) | 고정 길이 문자열 저장 size는 1Byte에서 2KB까지 지정 가능 |
nchar (size) | 고정 길이 유니코드 문자열 저장 size는 1Byte에서 2KB까지 지정 가능 |
[표 2] MySQL 데이터 타입
데이터 타입 | 설명 |
char (size) | size 만큼의 고정 길이 문자열 문자열 길이는 최대 255까지 가능 |
varchar (size) | 최대 size만큼의 길이의 문자열 담음 최대 255까지의 문자열 저장 가능 255를 넘어선 문자열은 text 타입으로 바뀜 |
text | 최대 65,353 Byte 문자열을 담음 |
int (size) | -2,147,483,648부터 2,147,483,647까지 정수 담음 앞에 unsigned를 지정한다면 0부터 4,294,967,295까지 정수 담음 size로 담을 수 있는 최대 정수를 정할 수 있음 |
float (size, d) | 소수점을 가지는 수를 담음 size로 담을 수 있는 최대 숫자를 정할 수 있음 d로 표현할 수 있는 소수점 자리수를 정할 수 있음 |
date() | 날짜 데이터를 담음 형식 : YYYY-MM-DD |
datetime() | 날짜 / 시간 정보를 담음 형식 : YYYY-MM-DD hh : mm : ss |
time() | 시간 데이터를 담음 형식 : hh : mm : ss |
year() | 두 자리 또는 네 자리 숫자로 표기된 연도 데이터 형식 : YYYY 또는 YY |
[표 3] SQL Server 데이터 타입
데이터 타입 | 설명 |
char (n) | 고정 길이 문자열 데이터 n으로 길이 지정 최대 8000개 문자 저장 가능 |
varchar (n) | 가변적 길이 문자열 데이터 n으로 최대 저장 가능 길이 지정 최대 8000개 문자 저장 가능 |
text | 가변적 문자열 데이터 최대 2GB까지 저장 가능 |
nchar | 고정 길이 유니코드 문자열 데이터 최대 4000개 문자 저장 가능 |
nvarchar | 가변 길이 유니코드 문자열 데이터 최대 4000개 문자 저장 가능 |
ntext | 가변 길이 유니코드 문자열 데이터 최대 2GB까지 저장 가능 |
bit | 0 또는 1 또는 Null |
int | -2,147,483,648부터 2,147,483,647까지의 정수 데이터 |
smallmoney | -214,748.3648부터 214,748.3647까지의 통화 데이터 |
money | -922,337,203,685,477.5808부터 922,337,203,685,477.5007까지의 통화 데이터 |
float (n) | 소수점을 포함하는 숫자 데이터 n으로 소수점 자릿수 정할 수 있음 |
datetime | 날짜 / 시간 정보를 담음 형식 : YYYY-MM-DD hh : mm : ss |
datetime2 | datetime과 같지만 조금 더 정확한 날짜 / 시간 정보를 담음 형식 : YYYY-MM-DD hh : mm : ss |
date | 날짜 정보를 담음 형식 : YYYY-MM-DD |
time | 시간 정보를 담음 |
timestamp | 테이블의 Row가 생성 또는 갱신될 때마다 변경되는 고유 숫자 테이블 내 자체적인 시간을 따르며 실제 시간과 일치하지 않음 |
xml | XML 형식 데이터 저장 최대 2GB |
table | 추후 작업을 위해 결과 값을 저장 |
[표 4] Microsoft Access 데이터 타입
데이터 타입 | 설명 |
Text | size 만큼의 고정 길이 문자열 문자열 길이는 최대 255까지 가능 |
Memo | 최대 size만큼의 길이 문자열을 담음 최대 255까지의 문자열 저장 가능 255를 넘어선 문자열은 text 타입으로 바뀜 |
Byte | 최대 65,353 Byte의 문자열을 담음 |
Integer | -32,768부터 32,767까지의 정수를 담음 |
Long | -2,147,483,648부터 2,147,483,647까지의 정수를 담음 |
Single | 소수점 아래의 숫자 표현 가능 4Byte |
Double | 소수점 아래의 숫자 표현 가능 8Byte |
Currency | 통화 데이터를 담음 15자리의 숫자와 소수점 아래 4자리까지 표현 가능 |
Date / Time | 날짜 / 시간 데이터를 담음 |
Yes / No | Yes/No, True/False, On/Off와 같은 논리 데이터를 담음 |
Ole Object | 이미지, 오디오, 비디오 등을 저장할 수 있음 |
Hyperlink | 웹 페이지를 포함한 하이퍼링크를 담음 |
나) DROP
-
데이터베이스 또는 테이블 삭제
-
내부 데이터가 모두 사라지므로 사용 시 주의 필요
-
데이터베이스 DROP할 경우 관리자 권한 필요
다) TRUNCATE
-
DROP과 비슷한 명령어
-
테이블 자체는 유지하면서 내부 데이터만 전부 삭제할 때 사용
라) ALTER
-
Column을 추가 또는 제거하거나 데이터 타입을 변경하는 데 쓰이는 명령어
-
MODIFY의 경우 DBMS마다 구문이 조금씩 다름
1) ALTER ~ ADD
2) ALTER ~ DROP
3) ALTER ~ MODIFY
4) MSSQL / Oracle
5) SQL Server / MS Access
# Reference
'DB' 카테고리의 다른 글
[DataBase]DCL (데이터 제어어) (0) | 2020.03.20 |
---|---|
[DataBase] DML (데이터 조작어) (0) | 2020.03.20 |
[DataBase] DBMS(Database Management System) (0) | 2020.03.18 |
[DataBase] 데이터베이스 모델 (0) | 2020.03.16 |
[DataBase] 데이터베이스 기초 (0) | 2020.03.06 |