본문 바로가기
CS/Database

[Edwith] 8. DDL 알아보기

by 쵸빙 2020. 4. 16.

저번 시간에는 DML의 DELETE에 대해 알아보았다.

이번 시간에는 DDL에 대해 알아보겠다.

 

 

MySQL 데이터 타입

TINYINT(M)

부호있는 수는 -128~127까지,

부호 없는 수는 0~255까지 표현. 1바이트

SMALLINT(M)

부호 있는 수는 -32768~32767까지,

부호 없는 수는 0~65535까지 표현. 2바이트

MEDIUMINT(M)

부호 있는 수는 -8388608~8388607까지,

부호 없는 수는 0~4294967295까지. 4바이트

INT(M) or INTEGER(M)

부호 있는 수는 -92233720036854775808~92233720036854774808

부호 없는 수는 0~18446744073709551615

BIGINT(M)

부동 소수점을 나타낸다. 언제나 부호 있는 수임.

(-3.402823466E + 38~3.402823466E + 38)

FLOAT(M, D)

2배 정밀도를 가진 부동 소수점.

(-1.79769313486231517E + 308~6931348623157E + 308)

DOUBLE(M, D)

날짜를 표현하는 타입. ‘9999-12-31’. 3 바이트

DATE

날짜를 표현하는 타입. ‘9999-12-31’. 3바이트

DATETIME

날짜와 시간을 같이 나타내는 타입. ‘9999-12-31 23:59:59’. 8 바이트

TIMESTAMP

‘1970-01-01 00:00:00’ 부터 2037년까지 나타낼 수 있다. 4 바이트

TIME

시간을 나타낸다. ‘-839:59:59’부터 ‘838:59:59’까지 나타낼 수 있다.

YEAR

년도를 나타낸다. 1901년부터 2155, 0000년을 나타낼 수 있다.

CHAR(M)

고정 길이를 갖는 문자열을 저장할 수 있다. M1부터 255까지이다.

VARCHAR(M)

CHAR은 고정 길이인 반면 VARCHAR은 가변 길이이다.

TINYBLOB, TINYTEXT

255개의 문자를 저장할 수 있다.

BLOB, TEXT

65,535개의 문자를 저장할 수 있다.

MEDIUMBLOB, MEDIUMTEXT

16,777,215개의 문자를 저장할 수 있다.

LONGBLOB, LONGTEXT

4,294,967,295(4기가)개의 문자를 저장할 수 있다.

 

 

테이블 생성

CREATE TABLE 테이블명(

           필드명1 타입 [NULL | NOT NULL][DEFAULT][AUTO_INCREMENT],

           필드명2 타입 [NULL | NOT NULL][DEFAULT][AUTO_INCREMENT],

           필드명3 타입 [NULL | NOT NULL][DEFAULT][AUTO_INCREMENT],

           …

           PRIMARY KEY(필드명)

           );

-데이터 형 외에도 속성값의 빈 값 허용 여부는 NULL 또는 NOT NULL로 설정

-DEFAULT 키워드와 함께 입력하지 않았을 때의 초기값을 지정

-입력하지 않고 자동으로 1씩 증가하는 번호를 위한 AUTO_INCREMENT

 

-: EMPLOYEE와 같은 구조를 가진 EMPLOYEE2 테이블을 생성하라.

 

 

 

테이블 수정(컬럼 추가 / 삭제)

ALTER TABLE 테이블명

           ADD 필드명 타입 [NULL | NOT NULL] [DEFAULT] [AUTO_INCREMENT];

ALTER TABLE 테이블명

           DROP 필드명;

 

-: EMPLOYEE2 테이블에 생일(birthdate) 칼럼을 varchar(12) 형식으로 추가하시오.

ALTER TABLE EMPLOYEE2

ADD birthdate VARCHAR(12);

 

 

 

-: EMPLOYEE2 테이블이 생일(birthdate) 칼럼을 삭제하시오.

ALTER TABLE EMPLOYEE2

DROP birthdate;

 

 

테이블 수정(컬럼 수정)

-: EMPLOYEE2 테이블의 부서번호(deptno)dept_no로 수정하시오.

ALTER TABLE EMPLOYEE2

CHANGE deptno dept_no int(11);

 

 

테이블 이름 변경

ALTER TABLE 테이블명 RENAME 변경이름

 

-: EMPLOYEE2 테이블의 이름을 EMPLOYEE3로 변경하시오.

ALTER TABLE EMPLOYEE2

RENAME EMPLOYEE3;

 

 

테이블 삭제하기

DROP TABLE 테이블이름;

-제약 조건이 있을 경우에는 DROP TABLE 명령으로도 테이블이 삭제되지 않을 수 있다. 그럴 경우는 테이블을 생성한 반대 순서로 삭제를 해야한다.

 

-: EMLOYEE2 테이블을 삭제하시오.

-테이블 삭제 후 DESC 명령을 수행하면, 존재하지 않는 테이블이라고 표시된다.

DROP TABLE EMPLOYEE2;

'CS > Database' 카테고리의 다른 글

[Edwith] 9. Maven  (0) 2020.04.20
[Edwith] 11. JDBC  (0) 2020.04.20
[Edwith] 7. DML - DELETE 알아보기  (0) 2020.04.16
[Edwith] 6. DML - UPDATE 알아보기  (0) 2020.04.16
[Edwith] 5. DML - INSERT 알아보기  (0) 2020.04.16