아이디 | 이름 | 전화번호 | 그룹 | column 명 |
---|---|---|---|---|
ka123 | 카즈하 | 010-7777-7777 | 르세라핌 | 1 row |
kim123 | 김채원 | 010-6666-6666 | 르세라핌 | 2 row |
sa123 | 사쿠라 | 010-8888-8888 | 르세라핌 | 3 row |
heo123 | 허윤진 | 010-0000-0000 | 르세라핌 | 4 row |
hong123 | 홍은채 | 010-1111-1111 | 르세라핌 | 5 row |
SQL 안에는 다양한 형태의 명령어들이 있다.
‘Data Definition Language’ 의 약자로 테이블이나 관계의 구조를 생성하는데 사용합니다
CREATE DATABASE 데이터베이스이름;
CREATE TABLE 테이블이름
(
필드이름1 필드타입1,
필드이름2 필드타입2,
...
);
ALTER TABLE 테이블이름 ADD 필드이름 필드타입;
ALTER TABLE 테이블이름 DROP 필드이름;
ALTER TABLE 테이블이름 MODIFY COLUMN 필드이름 필드타입;
DROP DATABASE 데이터베이스이름;
DROP TABLE 테이블이름;
TRUNCATE DATABASE 데이터베이스이름;
TRUNCATE TABLE 테이블이름;
‘Data Manipulation Language*’ 의 약자로 테이블에 데이터를 검색, 삽입, 수정, 삭제하는데 사용
INSERT : 테이블에 새로운 row를 추가할 수 있습니다.
INSERT INTO 테이블이름(필드이름1, 필드이름2, 필드이름3, ...) VALUES(데이터값1, 데이터값2, 데이터값3, ...);
INSERT INTO 테이블이름 VALUES(데이터값1, 데이터값2, 데이터값3, ...);
SELECT : 테이블의 row를 선택할 수 있습니다.
SELECT 필드이름 FROM 테이블이름 [WHERE 조건];
UPDATE : 테이블의 row의 내용을 수정할 수 있습니다.
UPDATE 테이블이름 SET 필드이름1=데이터값1, 필드이름2=데이터값2, ... WHERE 필드이름=데이터값;
DELETE : 테이블의 row를 삭제할 수 있습니다.
AUTO_INCREMENT : 컬럼의 값이 중복되지 않게 1씩 자동으로 증가하게 해줘 고유번호를 생성해 줍니다.
CREATE TABLE 테이블이름
(
필드이름 필드타입 AUTO_INCREMENT,
// id bigint AUTO_INCREMENT,
...
);
NOT NULL : 해당 필드는 NULL 값을 저장할 수 없게 됩니다.
CREATE TABLE 테이블이름
(
필드이름 필드타입 NOT NULL,
...
);
UNIQUE : 해당 필드는 서로 다른 값을 가져야만 합니다.
CREATE TABLE 테이블이름
(
필드이름 필드타입 UNIQUE,
...
);
PRIMARY KEY : 해당 필드가 NOT NULL과 UNIQUE 제약 조건의 특징을 모두 가지게 됩니다.
CREATE TABLE 테이블이름
(
필드이름 필드타입 PRIMARY KEY,
...
);
- 데이터의 중복 방지
- 데이터를 매우 빠르게 찾을 수 있다. PK를 설정하면 DBMS는 인덱스를 만들기 때문. 데이터 조회 시에 훨씬 편해짐.
FK 를 가지는 테이블이 참조하는 기준 테이블의 열은 반드시 PK, UNIQUE 제약조건이 설정되어 있어야 합니다.
CREATE TABLE 테이블이름
(
필드이름 필드타입,
...
FOREIGN KEY(필드이름)
REFERENCES 테이블이름(필드이름)
);
❗ FOREIGN KEY 이해하기
FOREIGN KEY 즉, 외래키는 두개의 테이블을 연결하는 다리 역할을 해주는 키입니다.