1 / 27

8. 데이터 검색

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

lotta
Download Presentation

8. 데이터 검색

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 8. 데이터 검색

  2. SQL-SELECT문 • SELECT 절: 검색대상 컬럼명들 • 관계 대수의 projection 연산자 • FROM절: 검색대상 테이블명 • WHERE절: 검색조건 • 관계 대수의 selection 연산자 • 교수(professor) 테이블에서 봉급(salary)이 400이상인 교수의profname을 검색 =

  3. SELECT절 – DISTINCT 키워드 • SELECT절과 관계대수의 project연산자는 좀 다름. • SELECT절은 결과의 중복 허용(default) • Project 연산자는 결과가 집합임으로 중복 불가. • 310이 두번 나옴. DISTINCT 키워드

  4. SELECT절 – AS키워드 • AS 키워드 • 결과의 컬럼이름을 다르게 보이게 함. • parent 테이블에 phone이라는 컬럼이 있는데 이를phonenum이란 이름으로 보여라 • AS 키워드는10장에서 다룰 집단함수의 값의 이름을 새롭게 지정하는데 유용하게 쓰일 수 있음. 왜냐하면 집단함수 이름은 예약어로 설정되어 자유롭게 사용하기 어렵기 때문

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

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

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

  8. SQL 연산자 • BETWEEN~ AND~ • 특정 컬럼의상한값과하한값을표시 • salary BETWEEN 300 AND 450 • salary >= 300 AND salary <= 450 이란 의미 • Professor 테이블에서 salary가 300 이상이고 450 이하인 교수들의 정보를 검색해보자

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

  10. LIKE • 문자열 타입에 사용되는 연산자로 부분 문자열 검색을 제공 • %와 _를 사용하여 임의의 문자열 일치를 검색 • %는 임의의 문자열(길이가 0인 경우도 포함)이란 의미 • _는 임의의 한 문자란 의미 • 성이 김인 교수들의 정보를 검색해 보자

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

  12. SQL 함수 • 타입 변환 함수 • TO_CHAR(), TO_NUMBER(), TO_DATE()함수 • TO_DATE()함수는 문자열을 날짜 타입으로 변환해주는 함수로날짜와 관련된 연산에서 중요한 역할 • TO_DATA()함수는 문자열 또는 값을 형식에 맞추어 날짜 타입으로 변환해 준다. • 날짜 형식에는 다음과 같은 종류가 있다. • YYYY는 년도 4자리, • YY 는 연도 두 자리, • MM은 월 2자리, • MON은 월의 축약형 알파벳 표현 (한글 오라클의 경우 “X월”로 출력) • MONTH 는 월의 알파벳 표현 (한글 오라클의 경우 “X월”로 출력) • DDD 일의 연중 날짜 표현 • DD 월중 날짜 표현 • D 주중 일 표현 • DAY 일에 해당하는 요일 표현

  13. SQL 함수 • sysdate : 현재 날짜를 나타내는 키워드 • 현재 날짜를 요일-일(2자리)-월(알파벳)-년(4자리) 형태로 출력해 보자 • dual은 dummy table이다.

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

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

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

  17. CASE함수 • DECODE함수의 확장형 • DECODE에서는 = 비교만 가능 • CASE함수에서는 다양한 조건으로 검색할 수 있음 • 구조 • CASE WHEN 표현식1 THEN 결과1 WHEN 표현식2 THEN 결과2 … ELSE default값 END

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

  19. ORDER BY 절 • 실행의 결과를 사용자가 보기 좋도록 정렬하여 결과를 출력 • ORDER BY 컬럼명1 [ASC|DESC],…, 컬럼명n [ASC|DESC] • 학생 테이블에서 이름순으로 정렬하여 학생 정보를 출력해 보자.

  20. 집합 연산자 • 집합 연산자 • 테이블을 구성하는 행집합에 대해 테이블의 부분 집합을 결과로 반환하는 연산자 • 합병 가능 : 집합 연산의 대상이 되는 두 테이블의 칼럼수가 같고, 대응되는 칼럼끼리 데이터 타입이 동일 5장. 조건 건색 및 행의 정렬

  21. UNION 연산 실습 테이블 • parentid가 1인 학생들의 정보를 추출하여 studenetparent1 테이블을 만들자 • 학생 테이블에서deptno가 2인 학생들의 정보를 이용하여 studentdeptno2테이블을 생성

  22. UNION • SQL의 FROM은 필수절 • 따라서 studentparent1 UNION studentdeptno2 라고 쓸수 없음. • 김태정 학생인 1번만 나옴

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

  24. INTERSECT, MINUS • 교집합 • INTERSECT를 이용하면studentparent1테이블과 studentdeptno2에 공통으로 나타나는 학생 정보를 검색할 수 있다 • 차집합 • MINUS

  25. 합병가능 • 합집합 호환성이란 3가지 조건을 만족해야 한다. • 두 테이블의 컬럼 수가 같아야 한다. • 대응되는 컬럼 별 타입(또는 도메인)이 같아야 한다. • 대응되는 컬럼 별 의미가 같아야 한다. • 위 2가지는 DBMS가 검사. 3번째는 사람이 검사해야 함.

  26. OUTER UNION • Outer UNION 기법 • UNION Compatable하지 않는 두 SQL 실행 결과를 UNION 하여야 할 경우 • 두 SQL column 수나 타입 불일치 하는 column들에 대하여서는 NULL 값을 추가하여 실행 결과의 column 수와 타입을 명시적으로 일치 시키는 방법

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

More Related