이러한 제약 조건들은 데이터베이스 설계와 관리를 보다 강력하고 안정적으로 만들어주는 역할을 합니다.
DDL / Data Definition Language(데이터 정의어)
데이터베이스 관리 시스템에서 사용되는 데이터 정의 언어
CREATE: 데이터베이스 객체를 생성 - CREATE TABLE : 새로운 데이터베이스의 테이블을 생성 ALTER: 데이터베이스 객체를 변경 - ALTER TABLE : 이미 존재하는 데이터베이스 테이블을 변경하기 위해 사용 DROP: 데이터베이스 객체를 삭제 - DROP TABLE : 데이터베이스 테이블을 삭제 TRUNCATE: 데이터베이스 테이블의 모든 데이터를 삭제합니다. - TRUNCATE TABLE 문은 데이터베이스 테이블에서 모든 데이터를 삭제 RENAME: 데이터베이스 객체의 이름을 변경
DML / Data manipulation language(데이터 조작어)
데이터베이스 관리 시스템에서 사용되는 데이터 조작 언어
SELECT: 데이터베이스 테이블에서 데이터를 검색합니다. INSERT: 새로운 데이터를 데이터베이스 테이블에 삽입합니다. UPDATE: 데이터베이스 테이블의 기존 데이터를 업데이트합니다. DELETE: 데이터베이스 테이블에서 데이터를 삭제합니다.
# DB 리스팅
SHOW DATABASES;
# DB 사용
USE DB_Name;
# DB_Name이 있다면 삭제
DROP DATABASE IF EXISTS DB_Name;
# DB_Name으로 DB생성
CREATE DATABASE DB_Name;
# Table 리스팅
SHOW TABLES;
# 테이블의 구조 확인
DESC Table_Name;
# 테이블의 내용 확인
SELECT * FROM Table_Name;
ex) article의 데이터 중 조회수 가장 많은 게시물 3개 만 보여주세요.
SELECT * FROM article ORDER BY hit DESC LIMIT 3;
ex) article의 데이터 중 조회수가 10 이상 55 이하 인것만 보여주세요.
SELECT * FROM article WHERE hit >= 10 AND hit <= 55;
ex) article의 데이터 중 nickname이 '홍길'로 시작하는 게시물만 보여주세요.
SELECT * FROM article WHERE nickname LIKE '홍길%';
ex)article의 데이터 중 nickname이 '무명' 이거나 조회수가 55 이상인 게시물을 보여주세요.
SELECT * FROM article WHERE nickname = '무명' OR hit >= 55;
EX
# Table_Name으로 테이블 생셩
CREATE TABLE Table_Name (
title VARCHAR(100),
`body` TEXT
);
# Table_Name에 데이터 추가
INSERT INTO Table_Name
SET title = '제목1',
`body` = '내용1';
# 기존 데이터의 데이터 변경
UPDATE Table_Name
SET 변경내용
WHERE 변경대상;
ex) article 테이블에서 id가 NULL인 데이터를 id = 1로 설정
/ 1개만 id를 1로 변경(LIMIT 1)
UPDATE article
SET id = 1
WHERE id IS NULL
LIMIT 1;
# Table_Name에 새로운 칼럼 생성
ALTER TABLE Table_Name ADD COLUMN Column_Name Column의 속성;
ex) article에 int속성(INT)의 id라는(id) 칼럼을 첫번째로(FIRST) 생성
ALTER TABLE article ADD COLUMN id INT FIRST;
ex) article에 DATETIM의 regDate 칼럼을 id칼럼 뒤에 생성
ALTER TABLE article ADD COLUMN regDate DATETIME AFTER id;
# Table_Name에 칼럼 이름 수정
ALTER TABLE Table_Name CHANGE `수정할 칼럼이름` `수정될 칼럼이름` 칼럼의 속성;
ex) article의 writer-> nickname으로 변경
ALTER TABLE article CHANGE `writer` `nickname` VARCHAR(100) NOT NULL;
######### ALTER TABLE #########
# article의 id값을 기존 NULL값이 0으로 바뀐다.
ALTER TABLE article MODIFY id INT NOT NULL;
# article의 id값을 유니크한 성격 PRIMARY KEY 부여
# PRIMARY KEY 의 조건 중복이 있으면 안되고, 데이터가 비어있으면 안된다(NULL 불가)
ALTER TABLE article ADD PRIMARY KEY(id);
# article의 id값을 기존 NULL값을 0으로 바꾼후 / 자동으로 숫자가 증가하게 한다.
ALTER TABLE article MODIFY COLUMN id INT NOT NULL AUTO_INCREMENT;