DDL은 테이블 구조를 관리 (CREATE, ALTER, DROP) 하는 데이터 정의 언어이다.
SQL 데이터 정의 언어를 사용하여 테이블 데이터베이스 개체를 만드는 방법에 대해 알아보자!
데이터베이스에 새 테이블 만들기
CREATE TABLE table_name (
column_1 data_type constraints,
column_2 data_type constraints,
column_3 data_type constraints,
);
CREATE TABLE contacts (
name TEXT NOT NULL,
age INTEGER NOT NULL,
email TEXT NOT NULL UNIQUE
);
실행하고자 하는 명령문에 커서를 두고 마우스 우측 버튼
→ Run Selected Query 선택
명령문을 모두 선택할 필요 없으며, 실행하고자 하는 명령문 안에 커서가 올라가 있으면 가능하다.
쿼리 실행 후 테이블 및 스키마 확인하기
입력하는 자료에 대해 제약을 정하고, 제약에 맞지 않다면 입력을 거부할 수 있다.
사용자가 원하는 조건의 데이터만 유지하기 위해 즉, 데이터의 무결성을 유지하기 위해 테이블의 특정 컬럼에 제약을 설정하는 방법에 대해 알아보자 !
CREATE TABLE table_name (
id INTEGER PRIMARY KEY
);
CREATE TABLE table_name (
id INTEGER PRIMARY KEY AUTOINCREMENT,
);
-- 1. Rename a table
ALTER TABLE table_name RENAME TO new_table_name;
-- 2. Rename a column
ALTER TABLE table_name RENAME COLUMN column_name TO new_column_name;
-- 3. Add a new column to a table
ALTER TABLE table_name ADD COLUMN column_definition;
-- 4. Delete a column
ALTER TABLE table_name DROP COLUMN column_name;
테이블 명 변경하기
ALTER TABLE contacts RENAME TO new_contacts;
컬럼명 변경하기
ALTER TABLE new_contacts RENAME COLUMN name TO last_name;
새 컬럼 추가하기
ALTER TABLE new_contacts ADD COLUMN address TEXT NOT NULL;
Cannot add NOT NULL column with default value NULL
DEFAULT
제약 조건을 사용하여 해결할 수 있다. ALTER TABLE new_contacts
ADD COLUMN address TEXT NOT NULL DEFAULT 'no address';
no address
가 된다.컬럼 삭제하기
sqlite
를 터미널에서 직접 켜서 타이핑 해야 작동된다. ALTER TABLE new_contacts DROP COLUMN address;
데이터베이스에서 테이블 제거하기
DROP TABLE new_contacts;
no such table: table_name
-- contacts 테이블 생성하기
CREATE TABLE contacts (
name TEXT NOT NULL,
age INTEGER NOT NULL,
email TEXT NOT NULL UNIQUE
);
-- 테이블 이름 변경하기
ALTER TABLE contacts RENAME TO new_contacts;
-- 컬럼 이름 변경하기
ALTER TABLE new_contacts RENAME COLUMN name TO last_name;
-- 새 컬럼 추가하기
ALTER TABLE new_contacts ADD COLUMN address TEXT NOT NULL;
-- 새 컬럼 추가시 기존데이터 있을 경우 발생하는 오류 방지하기
ALTER TABLE new_contacts
ADD COLUMN address TEXT NOT NULL DEFAULT 'no address';
-- 컬럼 삭제하기
ALTER TABLE new_contacts DROP COLUMN address;
-- 테이블 삭제하기
-- 제거하면 되돌릴 수 없으므로 조심하자!
DROP TABLE contacts;