AUTO_INCREMENT
NOT NULL
UNIQUE
PRIMARY KEY
FOREIGN KEY
CASCADE
CREATE TABLE IF NOT EXISTS 만들 테이블명 ( );
ALTER TABLE MANAGER MODIFY COLUMN id bigint auto_increment;
ALTER TABLE EXAM ADD PRIMARY KEY(student_code, exam_seq); ALTER TABLE EXAM ADD CONSTRAINT exam_fk_student_code FOREIGN KEY(student_code) REFERENCES STUDENT(student_code);
EXAM 테이블에 PRIMARY KEY(pk) 설정
EXAM 테이블에 FOREIGN KEY 설정
exam_fk_student_code : FOREIGN KEY의 제약 조건에 이름을 정해주는 것(임시로 적은 것)
REFERENCES STUDENT(student_code) : STUDENT의 student_code를 참조
INSERT INTO MAJOR VALUES('m1', '스프링', '남병관'); INSERT INTO MAJOR VALUES('m2', '노드', '강승현'); INSERT INTO MAJOR VALUES('m3', '플라스크', '이범규'); INSERT INTO MAJOR VALUES('m4', '루비온레일즈', '차은서'); INSERT INTO MAJOR VALUES('m5', '라라벨', '구름'); INSERT INTO MAJOR VALUES('m6', '리엑트', '임민영'); INSERT INTO MAJOR VALUES('m7', '뷰', '김서영'); INSERT INTO STUDENT(student_code, name, gender, major_code) VALUES('s12', '권오빈', 'M', 'm3');
values 뒤에 소괄호 후 데이터를 넣어주게 되면 MAJOR 전체 데이터를 다 넣는 것
테이블 이름 뒤에 소괄호 후 데이터를 넣어주게 되면 STUDENT의 필드들을 넣을 수 있음
INSERT INTO STUDENT VALUES('s0', '수강생', '20220331', 'M', '01000000005', 'm1'); UPDATE STUDENT SET major_code= 'm2' where student_code= 's0';
's0'의 수강생 추가
student_code = 's0'인 수강생의 major_code를 'm2'로 바꿈
DELETE FROM STUDENT WHERE student_code = 's0';
WHERE : 조건을 달 수 있음
WHERE student_code = 's0' : 해당 필드값이 's0'인 그 row를 지움
SELECT * FROM STUDENT; SELECT * FROM STUDENT WHERE STUDENT_CODE = 's1'; // s1만 보겠다 SELECT name, major_code FROM STUDENT WHERE student_code = 's1';
' * ' : 모든 column을 다 볼 수 있음
전체 column을 보고 싶지는 않고 이름과 major_code만 보고 싶을 때는 * 대신 필드명을 적어주면 됨
나누어진 테이블을 하나로 합치기 위해 데이터베이스가 제공하는 기능
ON 이라는 키워드를 통해 기준이 되는 컬럼을 선택하여 2개의 테이블을 합쳐 줌
적어도 하나의 컬럼을 서로 공유하고 있어야 하기 때문에 테이블에 외래 키가 설정 되어 있다면 해당 컬럼을 통해 JOIN을 하면 조건을 충족할 수 있음
❗️ JOIN을 하기 위해 외래 키를 설정하는 것이 항상 좋은 선택이 아닐 수도 있음
외래 키를 설정하면 데이터 무결성을 확인하는 추가 연산이 발생함
또한 무결성을 지켜야하기 때문에 상황에 따라 개발하는데 불편할 수 있음