DB조인문 연습

bitna's study note·2022년 11월 7일
0

SQL

목록 보기
11/12

11월 8일

모회사 면접을 보러 갔다가 DB조인문에 대한 문제가 나와서
공부할겸 만들어 봤음

*전공테이블

create table DEPT(
dept_no VARCHAR2(50),
dept_name VARCHAR2(100)
);

select * from DEPT;
insert into DEPT(dept_no,dept_name) values('D200','전자공학과');
insert into DEPT(dept_no,dept_name) values('D100','컴퓨터공학과');

drop table DEPT;

*학생테이블

create table STU(
dept_no VARCHAR2(50),
stu_no NUMBER(10,0),
stu_name VARCHAR2(100)
);

select * from STU; 
insert into STU(dept_no,stu_no,stu_name) values ('D100',123,'홍길동');
insert into STU(dept_no,stu_no,stu_name) values ('D200',124,'김자바');
insert into STU(dept_no,stu_no,stu_name) values ('D100',125,'이신림');

drop table STU;

전공에서 '컴퓨터공학과'에 해당하는 학생이름을 구하기

select DISTINCT stu_name from STU inner join DEPT on STU.dept_no = STU.dept_no where STU.dept_no='D100';

해당 inner join문이다. 여기서 값이 중복이 되기 때문에 DISTINCT를 붙여 중복된 값을 제거함.

*1:N 관계
데이터베이스에서는 통으로 테이블 하나로 구성한것보다 여러 정보를 주제에 따라 분리해서 저장하는게 효율적.
필요에 따라 테이블을 조인하여 필요한 데이터를 추출하면 됨.

이때 두테이블을 조인을 위해서는 테이블이 1:N 관계로 연결되어야 함.
1:N 관계란 한쪽테이블에 하나의 값만 존재해야 하지만 연결된 다른 테이블에서 여러개의 값이 존재할 수 있는 관계
두테이블의 조인을 위해서는 pk-fk 키 관계로 맺어져야함.

profile
좋은개발자가 되기위한 삽질기록 노트

0개의 댓글

관련 채용 정보