본문 바로가기
SQL

[질의구조] SELECT-FROM-WHERE 와 Selection, Join

by 빅데이터1020 2020. 7. 17.
SMALL

충북대학교 조완섭 교수님의 '데이터베이스 시스템' 과목의 < ch.4 SQL > 에서 복습하고 싶은 내용을 정리한 글입니다.

http://www.kocw.net/home/search/kemView.do?kemId=1197402

 

데이터베이스시스템

빅데이터 시대를 맞이하여 데이터 관리기술의 중요성이 더욱 강조되고 있다. 데이터베이스 시스템은 데이터를 저장하고 관리하는 가장 기본적인 패키지로써 기존의 데이터 뿐 아니라 다양한 ��

www.kocw.net

 

SQL문의 구조

SELECT   <애트리뷰트 목록>

FROM    <테이블 목록>

WHERE   <조건>

 

 

교재의 기본 데이터테이블로 조건을 만족하는 SQL문을 작성하는 예제를 연습해봅니다~!

 

SELECTION 연산

[Q. 1] 이름이 'John B. Smith'인 종업원의 생일과 주소를 검색하라

SELECT   FNAME, LNAME, BDATE, ADDRESS
FROM    EMPLOYEE
WHERE  FNAME = "John" AND MINIT="B" AND LNAME = "Smith";

 

[Q. 2] John Smith에 관한 모든 정보를 검색하라

SELECT  *
FROM    EMPLOYEE
WHERE  FNAME = "John" AND MINIT="B" AND LNAME = "Smith";

 

[Q. 3] 급여가 25,000 이상인 종업원의 이름, 성별, 주소, 급여를 검색하라

SELECT  FNAME, LNAME, SEX, ADDRESS, SALARY
FROM    EMPLOYEE
WHERE  SALARY > 25000;

 

[Q. 4] 급여가 25,000 이상인 남자 종업원의 이름, 성별, 주소, 급여를 검색하라

SELECT  FNAME, LNAME, SEX, ADDRESS, SALARY
FROM    EMPLOYEE
WHERE  SALARY > 25000 AND SEX = 'M';

 

JOIN 연산

[Q. 5] 직원과 그의 주소 및 부서명은?

SELECT  FNAME, LNAME, ADDRESS, DNAME
FROM   EMPLOYEE, DEPARTMENT
WHERE  DNO = DNUMBER;

또는

SELECT  E.FNAME, E.LNAME, E.ADDRESS, D.DNAME
FROM  (EMPLOYEE AS E INNER JOIN DEPARTMENT AS D ON E.DNO = D.DNUMBER);

 

[Q. 6] 'Research' 부서에서 일하는 모든 종업원들의 이름과 주소는?

SELECT  FNAME, LNAME, ADDRESS, DNAME
FROM   EMPLOYEE, DEPARTMENT
WHERE  DNO = DNUMBER AND DNAME = "Research";

*WHERE절에서 DNAME="Research"는 DEPARTMENT에서 연구부서를 선택한 것

*DNUMBER=DNO는 DEPARTMENT와 EMPLOYEE 테이블을 결합하는 조인조건임

 

[Q. 7] Join 조건이 없으면 카티전프로덕트!

SELECT  FNAME, LNAME, ADDRESS, DNAME
FROM   EMPLOYEE, DEPARTMENT

*카티전 곱으로 테이블이 생성됨

 

[Q. 8] 3 Way Join - Stafford에 위치한 모든 프로젝트에 대하여 프로젝트 번호, 담당부서 번호, 부서 관리자의 성, 주소, 생일을 검색하라

SELECT  PNUMBER, DNUM, LNAME, ADDRESS, BDATE
FROM   PROJECT, DEPARTMENT, EMPLOYEE
WHERE  DNUM = DNUMBER AND MGRSSN = SSN AND PLOCATION = "Stafford";

*두개의 조인조건을 수행함

 DNUM = DNUMBER는 프로젝트와 담당부서를 조인

 MGRSSN = SSN은 부서와 관리자정보를 조인

 

 

 

 

LIST