• SQL 질의의 SELECT-FROM-WHERE 구조
• 모호한 애트리뷰트 이름과 재명명(별명)의 사용
SQL에서의 기본 질의
• WHERE 절의 생략과 ‘*’(별표)의 사용
• SQL 에서 집합으로서의 테이블
• 부분 문자열(substring) 비교, 산술 연산자,
정렬
• SELECT 문의 구조
SELECT <애트리뷰트 목록>
FROM <테이블 목록>
WHERE <조건>
SQL 질의의 SELECT-FROM-WHERE 구조
<애트리뷰트 목록> : 질의 결과에 나타나는 애 트리뷰트 이름 목록
<테이블 목록> : 질의의 대상이 되는 릴레이션 목록
<조건> : 질의 결과의 투플들이 만족해야 하는
• SQL 예제 - Selection 연산
Q1: 이름이 'John B. Smith'인 종업원의 생일과 주소를 검색하시오.
SQL 질의의 SELECT-FROM-WHERE 구조
SELECT FNAME, LNAME, BDATE, ADDRESS
FROM EMPLOYEE
WHERE FNAME="John"
WHERE FNAME="John"
AND MINIT="B"
AND LNAME="Smith";
• SQL 예제 - Selection 연산 ( * 모든 속성 display)
Q1_1: John Smith에 관한 모든 정보를 검색하시오. SELECT *
FROM EMPLOYEE
WHERE FNAME="John"
SQL 질의의 SELECT-FROM-WHERE 구조
WHERE FNAME="John"
AND MINIT="B"
AND LNAME="Smith";
• SQL 예제 – Selection 연산
Q2) 급여가 25000 이상인 종업원은 ? SELECT FNAME, LNAME, SEX, ADDRESS, SALARY FROM EMPLOYEE
WHERE SALARY > 25000;
SQL 질의의 SELECT-FROM-WHERE 구조
Q2_1) 급여가 25000 이상인 남자 종업원은 ?
SELECT FNAME, LNAME, SEX, ADDRESS, SALARY FROM EMPLOYEE
WHERE SALARY > 25000 AND SEX = ‘M’;
• Q3: Join 연산 – 직원과 그의 부서명은 ?
SELECT FNAME, LNAME, ADDRESS, DNAME FROM EMPLOYEE, DEPARTMENT
WHERE DNO = DNUMBER ;
SQL 질의의 SELECT-FROM-WHERE 구조
Employee Department
• Q3: Join 연산의 다른 표현
SQL 질의의 SELECT-FROM-WHERE 구조
SELECT FNAME, LNAME, ADDRESS, DNAME FROM EMPLOYEE, DEPARTMENT
WHERE DNO = DNUMBER ;
SELECT e.fname, e.minit, e.lname, d.dname
FROM ( employee AS e INNER JOIN department AS d ON e.dno = d.dnumber );
• Selection , Join 연산
Q3_1: 'Research' 부서에서 일하는 모든 종업원들의 이름과 주소는 ?
SQL 질의의 SELECT-FROM-WHERE 구조
SELECT FNAME, LNAME, ADDRESS, DNAME FROM EMPLOYEE, DEPARTMENT
WHERE DNUMBER=DNO AND DNAME=“Research”;
–WHERE 절에서 DNAME='Research‘는 DEPARTMENT에서 연구부서 선택
–DNUMBER=DNO는 DEPARTMENT와
EMPLOYEE 테이블을 결합하는 조건 (조인조건) 임
DEPARTMENT EMPLOYEE
• Q3_2: Join 조건이 없는 경우 => 카티전프 로덕트
SQL 질의의 SELECT-FROM-WHERE 구조
SELECT SSN, FNAME, LNAME, ADDRESS,DNUMBER,DNAME FROM EMPLOYEE, DEPARTMENT;