-
[Database]DDL(MySQL)Web/Database 2021. 4. 11. 15:47
*DDL(Data Definition Language) : 데이터 정의어.
*데이터베이스 : 생성, 변경, 삭제, 사용.
-- 다국어 처리 create database db default character set utf8mb3 collate utf8mb3_general_ci; -- 이모지 문자까지 다국어 처리 create database db default character set utf8mb4 collate utf8mb4_general_ci; -- 변경 alter database db default character set utf8mb4 collate utf8mb4_general_ci; -- 삭제 drop database db; -- 데이터베이스 사용 use db;
*테이블
(1) 데이터 타입 : dev.mysql.com/doc/refman/8.0/en/data-types.html
(2) 테이블 생성(CREATE)
-> 문법
create table table_name( col_name1 Type [option], col_name2 Type [option], ... );
-> 예시
create database db default character set utf8mb4 collate utf8mb4_general_ci; use db; create table student ( studentno INT NOT NULL auto_increment primary key, studentname VARCHAR(20) NOT NULL, studentid VARCHAR(20), studentpwd VARCHAR(20) );
※ option에는 다음과 같은 속성들이 존재한다.
-> NOT NULL : null 값을 허용하지 않는다.
-> AUTO INCREMENT : 새 레코드가 추가 될 때 마다 필드 값을 자동으로 1씩 증가시킨다.
-> PRIMARY KEY : 테이블에서 행을 고유하게 식별하기 위해 사용한다(기본키).
-> FOREIGN KEY : 특정 테이블의 PK컬럼에 저장되어 있는 값을 저장하고 가리킨다(참조키, 외래키).
-> UNIQUE: 컬럼에 중복된 값 저장 불가능(NULL 제외).
-> DEFAULT value: 기본값을 value로 설정한다.
-> UNSIGNED : Type이 숫자인 경우, 값을 0 혹은 양수로 제한한다.
(3) 테이블 변경(ALTER)
-- ADD(새로운 열 추가) alter table table_name add col_name TYPE [option]; -- Add Ex alter table student add age INT NOT NULL; -- RENAME(열 이름 변경) alter table table_name rename column col_name to change_name; -- RENAME Ex alter table student rename column age to grade; -- MODIFY(열 데이터 타입 변경) alter table table_name modify col_name TYPE; -- MODIFY Ex alter table student modify grade decimal(10); -- DROP(열 삭제) alter table table_name drop col_name; -- DROP Ex alter table student drop grade;
(4) 테이블 삭제(DROP)
-- DROP(테이블 삭제) drop table table_name; -- DROP Ex drop table student;
*MySQL API
-> 앞서 제시한 데이터 타입, 혹은 기존에 익숙한 프로그래밍 언어와 마찬가지로 MySQL의 자세한 문법이나 사용을 보고 싶으면 API문서를 참고하는 습관을 들이도록 하자.
'Web > Database' 카테고리의 다른 글
[Database]서브 쿼리(MySQL) (0) 2021.04.12 [Database]조인과 집합연산(MySQL) (0) 2021.04.11 [Database]내장 함수, 집계 함수와 GROUP BY절(MySQL) (0) 2021.04.11 [Database]DML(MySQL) (0) 2021.04.11 [Database]SQL 개요 (0) 2021.04.11