DDL
DDL이란 Data Definition Language의 약어로, '데이터 정의어' 라는 뜻이다. 정확히는 테이블을 다루는 언어이다. 정처기 시절에 '크알드트'라고 외웠던 항목이다.
- CREATE : 테이블 생성
- ALTER : 테이블 수정
- DROP : 테이블 영구삭제
- TRUNCATE : 테이블 내 데이터만 삭제
DML
앞서 실행했던 SELECT는 DML에 속한다. DML은 Data Manipulation Language 의 약어로, '데이터 조작 언어'를 뜻한다. 데이터베이스 내의 데이터를 조작(데이터 추출, 생성, 수정, 삭제) 하는 언어라는 의미다.
- SELECT : 데이터 조회
- INSERT : 레코드 생성
- UPDATE : 레코드 수정
- DELETE : 레코드 삭제
- COMMIT : 트랜잭션 처리
- ROLLBACK : 트랜잭션 복구
DCL
마지막으로 GRANT와 REVOKE라는 권한 관련 용어가 있다. Data Control Lanaguage를 줄여 DCL이라고 한다.
- GRANT : 권한 부여
- REVOKE : 권한 회수
먼저 DDL을 실습해본다. 데이터베이스와 테이블을 생성하고 삭제해 볼 것이다.
CREATE문을 사용해본다. CREATE DATABASE DB이름 을 입력하면 데이터베이스를 생성할 수 있다.
CREATE DATABASE DB이름 |
CREATE TABLE 데이터베이스이름.테이블이름 ( 필드명 필드타입 ) 을 통해 테이블을 생성할 수 있다. 이 때 필드에 키워드를 통하여 여러 제약조건을 줄 수 있고, 타입을 설정할 수 있다.
타입 : http://www.tcpschool.com/mysql/mysql_datatype_numeric
CREATE문에서 컬럼에 제약을 주기 위해 사용하는 제약조건은 다음과 같다.
- NOT NULL : 필드에 NULL값을 저장할 수 없도록 한다.
- UNIQUE : 필드가 서로 다른 값을 가지게 한다.
- PRIMARY KEY : NOT NULL과 UNIQUE 제약 조건의 특징을 모두 가지게 됩니다.
- FOREIGN KEY : 하나의 테이블을 다른 테이블에 의존하게 만든다(외래키 설정).
- DEFAULT : 해당 필드의 기본값을 설정한다.
- CHECK : 컬럼에 들어갈 값에 제약을 건다.
또한, AUTO_INCREMENT 키워드를 사용하면 해당 필드의 값을 1부터 시작하여 새로운 레코드가 추가될 때마다 1씩 증가된 값을 저장할 수 있다. 이때 AUTO_INCREMENT 키워드 다음에 대입 연산자(=)를 사용하여 시작값을 변경할 수 있다.
CREATE TABLE DB이름.생성할 테이블이름( id varchar(100) PRIMARY KEY, name VARCHAR(100), age int DEFAULT 1, category varchar(100) ) |
PET 데이터베이스에 aboutPet이라는 이름의 테이블을 생성해본다. 총 네개의 필드가 있고, id라는 기본키를 설정해준다.
ALTER TABLE은 테이블을 수정할 때 사용한다. ALTER DATABASE 를 사용해 데이터베이스를 수정할 수도 있다. ALTER TABLE에는 아래 세 가지의 키워드를 붙여 사용한다.
- ADD : 테이블에 컬럼을 추가한다.
- DROP : 테이블의 컬럼을 삭제한다.
- MODIFY COLUMN : 테이블의 컬럼 타입을 수정한다.
먼저 age 컬럼의 타입을 INT에서 VARCHAR로 수정해본다.
ALTER TABLE 테이블이름 MODIFY COLUMN 컬럼명 타입 |
DROP문을 사용해 컬럼을 삭제한다. category 컬럼을 삭제하였다.
ALTER TABLE 테이블이름 DROP 컬럼명 |
DROP문은 테이블의 삭제에도 사용할 수 있다.
DROP TABLE 테이블명 |
ADD문을 사용해 다시 category 컬럼을 만들어본다.
ALTER TABLE 테이블이름 ADD 컬럼명 타입 |
'SQL' 카테고리의 다른 글
[MySQL] 4. JOIN(INNER, LEFT, RIGHT)과 DML(SELECT, INSERT, UPDATE, DELETE) (0) | 2022.12.24 |
---|---|
[MySQL] 3. 테이블 정규화와 외래키 (2) | 2022.12.24 |
[MySQL] 1-4. 데이터 조회 - CASE문과 IF문 (0) | 2022.12.23 |
[MySQL] 1-3. 데이터 조회 - SELECT 절 옵션 (CONCAT(), TRIM(), RIGHT()...), 서브쿼리, GROUP BY, HAVING (0) | 2022.12.23 |
[MySQL] 1-2. 데이터 조회 - 집계함수(MAX, MIN, AVG, COUNT, SUM...) (0) | 2022.12.23 |