27
8. 데데데 데데

8. 데이터 검색

  • Upload
    lotta

  • View
    61

  • Download
    0

Embed Size (px)

DESCRIPTION

8. 데이터 검색. SQL-SELECT 문. SELECT 절 : 검색대상 컬럼명들 관계 대수의 projection 연산자 FROM 절 : 검색대상 테이블명 WHERE 절 : 검색조건 관계 대수의 selection 연산자 교수 (professor) 테이블에서 봉급 (salary) 이 400 이상인 교수의 profname 을 검색. =. SELECT 절 – DISTINCT 키워드. SELECT 절과 관계대수의 project 연산자는 좀 다름 . - PowerPoint PPT Presentation

Citation preview

Page 1: 8.  데이터 검색

8. 데이터 검색

Page 2: 8.  데이터 검색

SELECT 절 : 검색대상 컬럼명들◦ 관계 대수의 projection 연산자

FROM 절 : 검색대상 테이블명 WHERE 절 : 검색조건

◦ 관계 대수의 selection 연산자◦ 교수 (professor) 테이블에서 봉급 (salary) 이 400이상인 교수의 profname 을 검색

SQL-SELECT 문

=

Page 3: 8.  데이터 검색

SELECT 절과 관계대수의 project 연산자는 좀 다름 .◦ SELECT 절은 결과의 중복 허용 (default)◦ Project 연산자는 결과가 집합임으로 중복 불가 .

◦ 310 이 두번 나옴 . DISTINCT 키워드

SELECT 절 – DISTINCT 키워드

Page 4: 8.  데이터 검색

AS 키워드 ◦ 결과의 컬럼이름을 다르게 보이게 함 .

parent 테이블에 phone 이라는 컬럼이 있는데 이를 phonenum 이란 이름으로 보여라

AS 키워드는 10 장에서 다룰 집단함수의 값의 이름을 새롭게 지정하는데 유용하게 쓰일 수 있음 .왜냐하면 집단함수 이름은 예약어로 설정되어 자유롭게 사용하기 어렵기 때문

SELECT 절 – AS 키워드

Page 5: 8.  데이터 검색

테이블에 저장된 데이터 중 원하는 데이터만을 선택적으로 검색하는 기능을 제공◦ 비교 연산자 , 논리 연산자 , SQL 연산자 등을 사용◦ 비교 연산자

WHERE 절

Page 6: 8.  데이터 검색

student 테이블에서 학과 번호 (deptno) 가 2 보다 큰 학생들의 이름을 검색해 보자 .

비교 연산자 = 같다

!=, <> 다르다

> 크다

>= 크거나 같다

< 작다

<= 작거나 같다

Page 7: 8.  데이터 검색

AND, OR, NOT 학생 (student) 테이블에서 학번 (snum) 이 7이상이고 학과 번호 (deptno) 가 2 보다 큰 학생들의 이름을 검색해 보자

논리연산자

Page 8: 8.  데이터 검색

BETWEEN~ AND~◦ 특정 컬럼의 상한값과 하한값을 표시◦ salary BETWEEN 300 AND 450

salary >= 300 AND salary <= 450 이란 의미◦ Professor 테이블에서 salary 가 300 이상이고 450 이하인 교수들의 정보를 검색해보자

SQL 연산자

Page 9: 8.  데이터 검색

IN◦ 특정 컬럼의 값이 IN 에 기술된 값들 중 하나이면 참◦ 교수번호 (profno) 가 10 이거나 30 이거나 50 인 교수들의 정보를 검색해 보자 .

Page 10: 8.  데이터 검색

LIKE◦ 문자열 타입에 사용되는 연산자로 부분 문자열 검색을 제공◦ % 와 _ 를 사용하여 임의의 문자열 일치를 검색

% 는 임의의 문자열 ( 길이가 0 인 경우도 포함 ) 이란 의미 _ 는 임의의 한 문자란 의미

◦ 성이 김인 교수들의 정보를 검색해 보자

Page 11: 8.  데이터 검색

IS NULL◦ 일반적으로 NULL 값에 어떤 연산을 할 경우 그 결과는 항상 거짓이다 . ◦ IS NULL 연산자는 컬럼 값 중 NULL 값을 가지는 경우에만 참이 되는 연산자이다

Page 12: 8.  데이터 검색

타입 변환 함수◦ TO_CHAR(), TO_NUMBER(), TO_DATE() 함수◦ TO_DATE() 함수는 문자열을 날짜 타입으로 변환해주는 함수로 날짜와 관련된 연산에서 중요한 역할◦ TO_DATA() 함수는 문자열 또는 값을 형식에 맞추어 날짜 타입으로 변환해 준다 .

◦ 날짜 형식에는 다음과 같은 종류가 있다 . YYYY 는 년도 4 자리 , YY 는 연도 두 자리 , MM 은 월 2 자리 , MON 은 월의 축약형 알파벳 표현 ( 한글 오라클의 경우 “ X 월”로 출력 ) MONTH 는 월의 알파벳 표현 ( 한글 오라클의 경우 “ X 월”로 출력 ) DDD 일의 연중 날짜 표현 DD 월중 날짜 표현 D 주중 일 표현 DAY 일에 해당하는 요일 표현

SQL 함수

Page 13: 8.  데이터 검색

sysdate : 현재 날짜를 나타내는 키워드◦ 현재 날짜를 요일 - 일 (2 자리 )- 월 ( 알파벳 )- 년 (4 자리 ) 형태로 출력해 보자

dual 은 dummy table 이다 .

SQL 함수

Page 14: 8.  데이터 검색

TO_DATE() 함수를 이용하여 2007 년 5 월 1 일을 기준으로 각 교수의 근무 기간을 일수로 출력하는 SQL 문을 작성해 보자

Page 15: 8.  데이터 검색

DECODE 함수와 CASE 문◦ 프로그래밍 언어의 IF 또는 SWITCH 문과 동일한 효과◦ DECODE( 컬럼명 , 값 1, 결과 1, 값 2, 결과 2, … 값 n, 결과 n, default 값 )◦ 컬럼의 값이 값 1 과 같으면 결과 1 이 반환 , 값 2 와 같으면 결과 2 가 반환 . 어떠한 값하고도 일치하지 않으면 default 값이 반환 . 이 default 값을 생략 가능

일반함수

컬럼명

결과 1값 1

결과 결과 3값 2 값 3 . . .

결과 ndefault

Page 16: 8.  데이터 검색

DECODE 함수를 이용하여 학생들의 학과 번호에 따라서 학생들의 전공을 출력해 보자 .

Page 17: 8.  데이터 검색

DECODE 함수의 확장형◦ DECODE 에서는 = 비교만 가능◦ CASE 함수에서는 다양한 조건으로 검색할 수 있음◦ 구조

CASE WHEN 표현식 1 THEN 결과 1 WHEN 표현식 2 THEN 결과 2 … ELSE default 값 END

CASE 함수

Page 18: 8.  데이터 검색

학생 정보 테이블에서 CASE 문을 이용하여score 컬럼에 대하여 4.0 보다 크면 A, 3.0 보다 크면 B, 2.0 보다 크면 C, 1.0 보다 크면 D, 이외에는 F 가 출력되는 SQL 을 작성해 보자

Page 19: 8.  데이터 검색

실행의 결과를 사용자가 보기 좋도록 정렬하여 결과를 출력 ORDER BY 컬럼명 1 [ASC|DESC],…, 컬럼명 n [ASC|

DESC]

학생 테이블에서 이름순으로 정렬하여 학생 정보를 출력해 보자 .

ORDER BY 절

Page 20: 8.  데이터 검색

5 . 장 조건 건색 및 행의 정렬-

20 -

집합 연산자 집합 연산자

◦ 테이블을 구성하는 행집합에 대해 테이블의 부분 집합을 결과로 반환하는 연산자◦ 합병 가능 : 집합 연산의 대상이 되는 두 테이블의 칼럼수가 같고 , 대응되는 칼럼끼리 데이터 타입이 동일

Page 21: 8.  데이터 검색

parentid 가 1 인 학생들의 정보를 추출하여 stu-denetparent1 테이블을 만들자

학생 테이블에서 deptno 가 2 인 학생들의 정보를 이용하여 studentdeptno2 테이블을 생성

UNION 연산 실습 테이블

Page 22: 8.  데이터 검색

SQL 의 FROM 은 필수절 따라서 studentparent1 UNION studentdeptno2 라고 쓸수 없음 .

김태정 학생인 1 번만 나옴

UNION

Page 23: 8.  데이터 검색

UNION ALL – 중복 허용◦ 김태정 학생 두번 나옴 .

UNION ALL

Page 24: 8.  데이터 검색

교집합◦ INTERSECT 를 이용하면 studentparent1 테이블과 student-

deptno2 에 공통으로 나타나는 학생 정보를 검색할 수 있다

차집합 MINUS

INTERSECT, MINUS

Page 25: 8.  데이터 검색

합집합 호환성이란 3 가지 조건을 만족해야 한다 .◦ 두 테이블의 컬럼 수가 같아야 한다 .◦ 대응되는 컬럼 별 타입 ( 또는 도메인 ) 이 같아야 한다 .◦ 대응되는 컬럼 별 의미가 같아야 한다 .

위 2 가지는 DBMS 가 검사 . 3 번째는 사람이 검사해야 함 .

합병가능

Page 26: 8.  데이터 검색

Outer UNION 기법◦ UNION Compatable 하지 않는 두 SQL 실행 결과를

UNION 하여야 할 경우◦ 두 SQL column 수나 타입 불일치 하는 column 들에 대하여서는 NULL 값을 추가하여 실행 결과의 column 수와 타입을 명시적으로 일치 시키는 방법

OUTER UNION

Page 27: 8.  데이터 검색

학생 테이블에서 학번 , 이름 , 학과번호를 검색하고 교수 테이블에서 교수번호 , 교수명 , 직급을 검색하여 그 결과를 OUTER UNION 하자 .