수업 후 바로 미니 프로젝트를 준비하느라 다소 늦었지만 오늘 다시 살펴보며 복습했다.
1. 다중으로 프라이머리키 주기
create table student1(
id int,
name varchar(255),
age int,
major varchar(255),
birth date,
primary key(id, name) // 이렇게 넣어주면 된다.
);
create table student1(
id int,
name varchar(255),
age int,
major varchar(255),
birth date,
create_at datetime default now(),
primary key(id, name)
);
insert into student1(id, name) values (1, "골드");
select * from student1;
select *
from student1 as s, majors as m
where s.id = m.student_id;
select * from student1 as s
inner join majors as m
on s.id = m.student_id;
둘 다 교집합을 출력하는 것이다.
left join을 하면 교집합 뿐만 아니라 겹치지 않는 왼쪽 부분도 출력하는 것.
on 뒤에 조건을 적어서 사용.
4.foreign key- 외래키 사용할 때 쓴다. 참조해서 사용하는 키.
create table majors(
id int primary key auto_increment,
-- student_id int,
major varchar(255)
);
//major만 들어갈 수 있게 만든것. 완전히 분리가 된거다.
//이제 이걸 어떻게 연결을 시킬것인가?
create table student_major(
student_id int,
major_id int,
id int primary key auto_increment,
primary key(student_id,major_id),
foreign key (student_id) references student1(id),
foreign key (major_id) references major(id)
);
//이렇게 연결해주는 테이블을 하나 더 만들어서 연결한다.
//1.
create table student1(
id int ,
name varchar(255),
create_at datetime default now(),
primary key(id)
//2.
create table majors(
id int primary key auto_increment,
major varchar(255)
);
//3. 연결해주는 테이블
create table student_major(
student_id int,
major_id int,
primary key(student_id, major_id),
foreign key(student_id) references student1(id),
foreign key(major_id) references majors(id)
);