오늘은 어쩌다보니 강의만 보게되서 SQL 강의 내용 정리하려한다.
CREATE TABLE IF NOT EXISTS "테이블명"
(만들 데이터);
=> "테이블명" 라는 테이블이 존재하지 않는다면 만들어라
CREATE TABLE IF NOT EXISTS MANAGER
(
id bigint primary key comment '수강생코드',
컬럼명 자료형 기타 구분 이름
name varchar(100) not null,
student_code varchar(100) not null
);
CREATE TABLE IF NOT EXISTS MANAGER
(
CONSTRAINT manager_fk_student_code FOREIGN KEY(student_code) references student(student_code)
=> CONSTRAINT KEY의 이름 FOREIGN KEY(FOREIGN KEY로 쓸 컬럼) references 참조할 테이블 명(연결되는 컬럼명)
);
ALTER TABLE 테이블명 modify column id bigint auto_increment;
ALTER TABLE exam DROP CONSTRAINT exam_fk_student_code;
=> ALTER TABLE 테이블명 DROP CONSTRAINT 키이름;
ALTER TABLE exam ADD CONSTRAINT exam_fk_student_code
FOREIGN KEY(student_code) REFERENCES student(student_code) on DELETE cascade;
=> ALTER TABLE 테이블명 ADD CONSTRAINT 키 이름 FOREIGN KEY(key 값이된 컬럼) REFERENCES 연결된 테이블(이 테이블의 key 컬럼) on DELETE cascade;
* ()안에 전체 컬럼값을 다 넣어야 함
INSERT INTO MANAGER values(1,'managerA','s1');
* 원하는 컬럼값만 insert (id는 자동증가 걸어놈)
INSERT INTO MANAGER(name, student_code) values('managerA','s1');
Q. 새개의 테이블을 join하고 매니저가 'managerA' 인 것만 가져옴
SELECT s.name, e.exam_seq, e.score
FROM manager m join student s on m.student_code = s.student_code
join exam e on s.student_code = e.student_code
where m.name ='managerA';
DELETE FROM student where student_code = 's1';