-
04 - 1 DDL (데이터 타입, 제약 조건)코린이 유치원/SQL반 2022. 6. 2. 23:24
DDL은 Data Definition Language의 약자
DDL과 DML을 집중적으로 배워볼 것인데 오늘은 DDL에 대해서 정리하는 시간
DDL은 Data Definition Language 직역한 것 처럼 데이터 정의 언어이다.
테이블을 생성하고 삭제하고 바꾸는 기능을 실행하고 CREATE, DROP, ALTER이 있다.
순서가 이걸 앞에 배워야 할 것 같은데, 정리 순서가 엉망인 것 같지만 우린 필요한 정보만 찾아보는 검색 고수니깐 노상관(?)
절거운 SQL MEME로 시작하는 코린이 유치원
01 Database 만들기, 사용
create database db이름 -- db 생성 use db이름 -- db 사용하기
미친 직.관.성 create로 데이터베이스 생성하고 use 데이터베이스 이름 생성하면 우리는 앞으로 이 db를 사용하는 것이다.
02 Table 생성
데이터 베이스 만들었으면 그 다음은 뭐다?
데이터 베이스에 들어갈 테이블을 만들어 줘야지
👉 Table 생성 기본 구문
create table 테이블 이름 ( 컬럼 설정 );
👉 테이블명, 컬럼명 규칭
- 영문, 숫자, _만 사용 가능
- 첫글자는 반드시 영문자여야 한다.(SQL은 파이썬과 다르게 대,소문자 구별 ❌
기본 구문은 so 씸플. Mi친 직관성의 연속이다.
중요한 건 컬럼을 어떻게 설정할지이고, 다음과 같은 내용이 들어가야 한다.
- 컬럼명
- 데이터타입
- default 값 : 값을 입력하지 않을 때 넣어줄 기본 값 (생략 가능)
- 제약조건 : 컬럼이 가질 수 있는 값에 대한 제약 조건을 지정
create table 테이블이름( 컬럼명 데이터타입 default값 제약조건 ); show tables; -- 데이터 베이스에 생성된 테이블들 조회
03 데이터 타입
create 구문 만들기 전 우린 SQL의 데이터타입과 제약조건을 배워야한다.데이터 타입과 제약조건 모른상태에서 테이블부터 만들 순 없잖아유? 🤷🏻
데이터 타입은 문자열, 정수, 실수, 날짜 타입 그리고 결측지가 있다. (파이썬보다 심플해서 조와)
👉 문자열
종류 Data Type 최대크기
(byte)설명 비고 문자열
타입CHAR(n) 0 ~ 255 고정 길이 문자열 CHAR(크기) VARCHAR(n) 0 ~ 65,535 가변길이 문자열 VARCHAR는
최대길이 지정TINYTEXT 0 ~ 255 TEXT 타입은 최대길이 지정하지 않는다. TEXT 0 ~ 65,535 MEDIUMTEXT(n) 0~ 16,777,215 LONGTEXT(n) 0 ~ 4,294,967,295 - 길이 생략하면 1글자로 자동 설정
- 고정길이: 데이터 글자 수가 모자라면 공백으로 채우기 때문에 주로 VARCHAR 사용. CHAR는 주민번호 같은 데이터에 주로 사용
- 가변길이: n으로 지정된 크기는 최대 크기이며, 입력된 글자수에 따라 저장 크기가 변경
👉 정수
종류 Data Type 크기 설명 비고 정수 TINYINT 1 byte -128 ~ 127 (0~255) BOOLEAN 1 byte TRUE:1 / FALSE: 0 TRUE, FALSE 키워드로 입력하나 조회시에는 1,0이 조회 SMALLINT 2 byte -32768 ~ 32767
(0 ~ 655535)INT 4 byte -2,147,483,648 ~ 2,147,483,647
(0 ~ 4,294,967,295)BIGINT 8 byte -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
(0 ~ 18,449,744,073,709,551,615)👉 실수
종류 Data Type 크기 설명 비고 실수 DECIMAL 8 byte 고정 소수 DECIMAL(M,N)
- M: 총 자릿수
- N: 소수 자릿수
정확도가 요구되는 실수 데이터에 사용FLOAT 4 byte 부동소수 DOUBLE 8 byte 부동소수 FLOAT 보다 고수점 자리 더 많이 표현 가능 👉 날짜타입
종류 Data Type 크기 설명 비고 날짜타입 DATE 3 byte 년, 월, 일 YYYY-MM-DD TIME 3 byte 시, 분, 초 hh:mm:ss DATETIME 8 byte 년, 월, 일, 시, 분, 초 YYYY-MM-DD
hh:mm:ss
time 존에 상관없이 고정TIMESTAMP 4 byte 년, 월, 일, 시 , 분, 초 YYYY-MM-DD
hh:mm:ss
time zone을 변경하면
입력된 일시가 변경YEAR 1 byte 년 YYYY 년도만 저장 👉 결측치
NULL 없는 값, 모르는 값 의미
04 제약조건
컬럼이 가질 수 있는 값에 대해서 말 그대로 제약을 지정하는 것
제약조건 설명 PRIMARY KEY(PK) 하나의 행을 대표하는 열, 행 식별 컬럼.
NOT NULL과 UNIQUE 조건 모두 만족FOREIGN KEY(FK) 다른 테이블의 PRIMARY KEY 컬럼의 값만 가질 수 있는 컬럼
다른 테이블을 참조할 때 사용하는 컬럼.UNIQUE KEY(UK) 테이블 모든 행 중복값 불가 (NULL 제외) NOT NULL(NN) NULL 값 가질수 없는 컬럼. 반드시 값 가져야 하는 열 CHECK(CK) 컬럼에 들어갈 값의 조건 지정 DEFAULT 컬럼의 기본값 설정. NULL 값일 경우 지정한 기본값 추가 AUOT_INCREMENT 자동 증가 정수 컬럼(MY SQL에서 사용) 정수 컬럼으로 값이 입력 되면 1씩 증가하는 값 가짐
데이터 타입과 제약 조건을 배웠으니깐
이제 다음부턴 본격 DDL을 사용해서 테이블을 만들고 지우고 바꾸고 해보자GO!
'코린이 유치원 > SQL반' 카테고리의 다른 글
05 - 1 PYMYSQL (데이터베이스 연결, 커저 생성, INSERT) (0) 2022.06.07 04 - 2 DDL (CREATE) (0) 2022.06.03 03 - 3 JOIN (Self Join, Outer Join) (0) 2022.06.02 03 - 2 JOIN (Inner Join) (0) 2022.06.02 03 - 1 JOIN (부모 테이블, 자식 테이블 , Foreign Key) (0) 2022.06.01