Structured Query Language
인터프린터 언언
한 줄씩 번역되고 빈번한 수정이 있을 때 효과적이다.
번역과 동시에 바로 실행된다.(번역 파일이 존재하지 않는다.)
DDL(Data Definition Language)
DML(Data Mainpulation Language)
DCL(Data Control Language)
TCL(Transaction Control Language)
데이터베이스 생성, 삭제, 사용
create database 데이터베이스명;
create database PMS;
drop database PMS;
use PMS;
테이블 생성, 수정, 삭제
# 생성
create table Car(
brand varchar(300),
color varchar(300),
price int
);
#수정
#테이블 명 바꾸기
alter table Car rename to CAR;
#컬럼 추가
alter table CAR add(caridx int primary key);
#컬럼 수정
alter table CAR modify caridx bigint;
#컬럼명 수정
alter table CAR change caridx carid int;
#컬럼 삭제
alter table CAR drop price;
foreign key 적용하기
먼저 2개의 테이블을 생성해보자
#부모테이블
create table owner(
id varchar(300) primary key,
name varchar(300),
phone varchar(300),
age int,
addr varchar(1000)
);
#자식테이블
create table Car(
carnum varchar(300) primary key,
brand varchar(300),
color varchar(300),
price int,
id varchar(300),
);
어떤 자동차가 누구의 소유주인지 알려면 자동차에 소유주를 구분할 수 있어야 한다.
따라서 소유주를 나타내는 고유 식별번호를 자동차의 고유식별 번호에 foreign key를 참조하여 넣게 되면 car테이블의 고유 식별 번호를 이용하면 소유주 테이블에 접근 할 수 있다.
#자식테이블
create table Car(
carnum varchar(300) primary key,
brand varchar(300),
color varchar(300),
price int,
id varchar(300),
constraint car_owner_fk foreign key(id) references owner(id)
);
이러한 테이블 간의 관계는 부모-자식 테이블의 관계라고 하며 이러한 확장성으로 관계형 데이터베이스라고 한다.
참고적으로 데이터를 수정하려면 자식을 먼저 수정해야 참조오류를 발생하지 않는다.
학생정보 시간표 과목정보 리스트
-------------------------------------------------------
학번 수업코드 과목코드 수업코드
학생명 과목코드 과목명 학번
소속학과 정원 학과
학년 강의실
핸드폰번호 수업시간
담당교수
학생정보 시간표 과목정보 리스트
-------------------------------------------------------
학번(pk) 수업코드(pk) 과목코드(pk) 수업코드(pk)
학생명 과목코드(fk) 과목명 학번
소속학과 정원 학과
학년 강의실
핸드폰번호 수업시간
담당교수
create table student(
student_number int primary key,
name varchar(300),
major varchar(300),
glade int,
phonenumber int
);
create table subject_info(
subjectcode int primary key,
name varchar(300),
major varchar(300)
);
create table timetable(
classcode int primary key,
subjectcode int,
professor varchar(300),
personnel int,
classroom varchar(300),
classtime varchar(300),
constraint timetable_subject_fk foreign key(subjectcode) references subject_info(subjectcode)
);
create table study_list(
classcode int primary key,
student_number int,
constraint study_list_timetable_fk foreign key(classcode) references timetable(classcode),
constraint study_list_student_fk foreign key(student_number) references student(student_number)
);