개발 공부
SQL연습
king yun bell
2022. 12. 26. 17:46
- 제약조건
AUTO_INCREMENT : 컬럼의 값이 중복되지 않게 1씩 자동으로 증가하게 해줘 고유번호를 생성해 줍니다.
NOT NULL : 해당 필드는 NULL 값을 저장할 수 없게 됩니다.
UNIQUE : 해당 필드는 서로 다른 값을 가져야만 합니다.
PRIMARY KEY : 해당 필드가 NOT NULL과 UNIQUE 제약 조건의 특징을 모두 가지게 됩니다.
FOREIGN KEY : 하나의 테이블을 다른 테이블에 의존하게 만들며 데이터의 무결성을 보장해 줍니다.
CASCADE : FOREIGN KEY 로 연관된 데이터를 삭제,변경할 수 있습니다.
- 코드
1.테이블 생성(CREATE)
CREATE TABLE IF NOT EXISTS MAJOR
(
major_code varchar(100) primary key comment '주특기코드',
major_name varchar(100) not null comment '주특기명',
tutor_name varchar(100) not null comment '튜터'
)
STUDENT 테이블 생성(MAJOR테이블에 foreign key 추가 (의존하게 만듦))
CREATE TABLE IF NOT EXISTS STUDENT
(
student_code varchar(100) primary key comment '수강생코드',
name varchar(100) not null comment '이름',
birth varchar(8) null comment '생년월일',
gender varchar(1) not null comment '성별',
phone varchar(11) null comment '전화번호',
major_code varchar(100) not null comment '주특기코드',
foreign key(major_code) references major(major_code)
)
EXAM 테이블 생성
CREATE TABLE IF NOT EXISTS EXAM
(
student_code varchar(100) not null comment '수강생코드',
exam_seq int not null comment '시험주차',
score decimal(10,2) not null comment '시험점수',
result varchar(1) not null comment '합불'
)
2.ALTER
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);
3. INSERT
INSERT INTO MAJOR VALUES('m1', '스프링', '남병관');
4.UPDATE
UPDATE STUDENT SET major_code= 'm2' where student_code= 's0';
5.SELECT
//STUDENT 전체 불러오기
SELECT * FROM STUDENT;
//특정 STUDENT row 불러오기
SELECT * FROM STUDENT WHERE STUDENT_CODE = 's1';
//특정 STUDENT row의 특정 칼럼 불러오기
SELECT name, major_code FROM STUDENT WHERE student_code = 's1';
6.JOIN(합치기)
SELECT s.name, s.major_code, m.major_name FROM STUDENT s JOIN MAJOR m ON s.major_code = m.major_code;
SELECT s.name, s.major_code, m.major_name FROM STUDENT s, MAJOR m WHERE s.major_code = m.major_code;
//둘다 같은동작을 함.