기본적인 SELECT 문 작성

34
Hwang Yeon-Ja 기기기기 SELECT 기 기기

description

기본적인 SELECT 문 작성. SELECT 문. 기본 형식. SELECT 문 기본형식. SELECT 나열할 컬럼 목록 FROM 가져올 테이블 [ WHERE 가져올 행의 조건 ] [ ORDER BY 정렬 키 목록 ]. 열 제약조건. 모든 열 (*). * 는 열 제약이 전혀 없다는 것을 나타냄 테이블의 모든 열을 조회 이때 열들은 정의되어 있는 순서대로 나타남 예제 SELECT * FROM Dept. 열 제약조건. 열 목록. 모든 열 (*) 대신 특정 열들의 목록 지정 가능 - PowerPoint PPT Presentation

Transcript of 기본적인 SELECT 문 작성

Page 1: 기본적인  SELECT 문 작성

Hwang Yeon-Ja

기본적인 SELECT 문 작성

Page 2: 기본적인  SELECT 문 작성

기본 형식SELECT 문

• SELECT 문 기본형식

2

SELECTSELECT 나열할 컬럼 목록 나열할 컬럼 목록

FROMFROM 가져올 테이블 가져올 테이블

[[WHEREWHERE 가져올 행의 조건가져올 행의 조건 ]]

[[ORDER BYORDER BY 정렬 키 목록정렬 키 목록 ]]

SELECTSELECT 나열할 컬럼 목록 나열할 컬럼 목록

FROMFROM 가져올 테이블 가져올 테이블

[[WHEREWHERE 가져올 행의 조건가져올 행의 조건 ]]

[[ORDER BYORDER BY 정렬 키 목록정렬 키 목록 ]]

Page 3: 기본적인  SELECT 문 작성

모든 열 (*)

열 제약조건

• * * 는 열 제약이 전혀 없다는 것을 나타냄– 테이블의 모든 열을 조회– 이때 열들은 정의되어 있는 순서대로 나타남

• 예제

SELECT * SELECT * FROM DeptFROM Dept

3

Page 4: 기본적인  SELECT 문 작성

열 목록열 제약조건

• 모든 열 (*) 대신 특정 열들의 목록 지정 가능– 테이블의 모든 열들을 정의한 순서대로 나열

• 예제

SELECT empno, ename, salSELECT empno, ename, salFROM EmpFROM Emp

4

Page 5: 기본적인  SELECT 문 작성

열 별칭 지정열 제약조건

• 형식

SELECT SELECT 컬럼명 컬럼명 asas 별명별명 1, 1, 컬럼명컬럼명 2 2 asas

별명별명 22

FROM FROM 테이블명테이블명– 별칭에 공백이나 특수 문자가 포함될 경우에는

‘ ’‘ ’ , “ ”“ ” 또는 [ ][ ] 로 둘러싸야 한다 .

5

Page 6: 기본적인  SELECT 문 작성

열 별칭 지정열 제약조건

• 예제

SELECT empno AS SELECT empno AS 사번사번 , ename AS , ename AS 이름이름 , ,

sal AS salary sal AS salaryFROM EmpFROM Emp

6

Page 7: 기본적인  SELECT 문 작성

열 별칭 지정열 제약조건

• 예제

SELECT empno SELECT empno 사번사번 , ename , ename 이름이름 , , sal salary sal salary

FROM EmpFROM Emp

7

Page 8: 기본적인  SELECT 문 작성

열 별칭 지정열 제약조건

• 계산된 파생 열– 원래 테이블에 있던 열이 아니라 계산에 의해 새로

만들어진 열

• 예제

SELECT empno, ename, sal * 12SELECT empno, ename, sal * 12FROM EmpFROM Emp

8

Page 9: 기본적인  SELECT 문 작성

열 별칭 지정열 제약조건

• 계산된 파생 열– 원래 테이블에 있던 열이 아니라 계산에 의해 새로

만들어진 열

• 예제

SELECT empno, ename, sal * 12 AS SELECT empno, ename, sal * 12 AS 연봉연봉FROM EmpFROM Emp

9

Page 10: 기본적인  SELECT 문 작성

상수 열열 제약조건

• 상수 열– 테이블 열 값 대신 모든 레코드에 동일한 상수 값을

출력하는 열

• 예제

SELECT empno, ename, ‘SELECT empno, ename, ‘ 연봉연봉’’ , sal * 12 , sal * 12 FROM EmpFROM Emp

10

Page 11: 기본적인  SELECT 문 작성

비교 연산자행 제약조건

• 행 제약조건– SELECT 문으로 행들을 조회할 때 행을 제약하여 원하는

일부 행들만 결과집합으로 출력• 비교 연산자

– 열의 값이 특정 값과 일치하는지 또는 더 크거나 작은 지 비교 하는 데 쓰임

11

Page 12: 기본적인  SELECT 문 작성

비교 연산자행 제약조건

• 예제

SELECT * SELECT * FROM EmpFROM EmpWHERE Job = ‘analyst’WHERE Job = ‘analyst’

12

Page 13: 기본적인  SELECT 문 작성

논리 연산자행 제약조건

• 논리 연산자 – 연산식들을 논리적으로 결합– NOT → AND → OR 순의 우선순위 있음– 결합 순서를 바꾸려면 ‘ ( )’ 로 둘러싸야 함

13

Page 14: 기본적인  SELECT 문 작성

논리 연산자행 제약조건

• 예제

SELECT * SELECT * FROM EmpFROM EmpWHERE Job = ‘analyst’ WHERE Job = ‘analyst’ and and sal = 3000sal = 3000

14

Page 15: 기본적인  SELECT 문 작성

논리 연산자행 제약조건

• 활용– Emp 테이블에서 job 이 analyst 이고 sal 이 3000 인

값의 ename 과 sal 컬럼을 반환하되 , 컬럼명을 name과 salary 로 대신하여 반환하시오 .

– Emp 테이블에서 job 이 analyst 이고 sal 이 3000 인 값의 ename, job , sal 컬럼을 반환하되 , sal 컬럼값에 12 를 곱하여 반환하시오 .

15

Page 16: 기본적인  SELECT 문 작성

논리 연산자행 제약조건

• 활용– Emp 테이블에서 job 이 analyst 이고 sal 이 3000 인

값의 ename 과 sal 컬럼을 반환하되 , 컬럼명을 name과 salary 로 대신하여 반환하시오 .

– SELECT ename AS name, sal AS salary SELECT ename AS name, sal AS salary FROM EmpFROM EmpWHERE job = ‘analyst’ AND sal = 3000WHERE job = ‘analyst’ AND sal = 3000

16

Page 17: 기본적인  SELECT 문 작성

논리 연산자행 제약조건

• 활용– Emp 테이블에서 job 이 analyst 이고 sal 이 3000 인

값의 ename, job , sal 컬럼을 반환하되 , sal 컬럼 값에 12 를 곱하여 반환하시오 .

– SELECT ename AS name, job, sal*12 AS SELECT ename AS name, job, sal*12 AS salary salary FROM EmpFROM EmpWHERE job = ‘analyst’ AND sal = 3000WHERE job = ‘analyst’ AND sal = 3000

17

Page 18: 기본적인  SELECT 문 작성

문자열 패턴 매칭 (LIKELIKE 연산자 )

행 제약조건

• 문자열 패턴 매칭 (pattern matching) 을 해주는 연산자• 소량의 문자열 검색에 많이 사용• 형식

SELECT * FROM SELECT * FROM 테이블명테이블명where where 필드명 필드명 LIKE patternLIKE pattern– pattern 에는 와일드카드 문자가 포함된 문자열 상수가 옴

18

Page 19: 기본적인  SELECT 문 작성

• 와일드카드 문자 (p103)

문자열 패턴 매칭 (LIKELIKE 연산자 )

행 제약조건

19

Page 20: 기본적인  SELECT 문 작성

• Example

문자열 패턴 매칭 (LIKELIKE 연산자 )

행 제약조건

20

표현식 해당되는 것 해당되지 않는 것

book__ books/booka/booky book/booked

book%% book/books/bookedabook/atbooks/adbooked

%%book%% abook/abooks/book brook/brooks

[st][st]ing sing/ting Ving/king/k/v/vin

[b-f][b-f]ing Bing/cing/ding/eing/fing Aing/b/f/ging

M[^c][^c]%% Mike/many/mickey Mcdonald/mcatur/m/mc

Page 21: 기본적인  SELECT 문 작성

• 예제

SELECT * SELECT * FROM EmpFROM Empwherewhere ename ename likelike ‘a%’ ‘a%’

문자열 패턴 매칭 (LIKELIKE 연산자 )

행 제약조건

21

Page 22: 기본적인  SELECT 문 작성

• 활용– Emp 테이블에서 ename 이 m 으로 시작하는 ename 을

찾으시오– Emp 테이블에서 ename 이 a 로 시작하고 a 다음에 네

글자가 있는 ename 을 찾으시오 .– Emp 테이블에서 ename 의 내용 중 s 가 있는 ename

을 찾으시오 .

문자열 패턴 매칭 (LIKELIKE 연산자 )

행 제약조건

22

Page 23: 기본적인  SELECT 문 작성

• 최소값과 최대값 사이의 범위에 들어가는지 여부를 파악할 때 쓰임

• 형식

SELECT * FROM SELECT * FROM 테이블명테이블명where where 필드명 필드명 between A AND Bbetween A AND B– A 는 최소값 , B 는 최대값

범위 검색 (BETWEENBETWEEN 연산자 )

행 제약조건

23

Page 24: 기본적인  SELECT 문 작성

• 예제

SELECT * SELECT * FROM EmpFROM Empwherewhere sal sal betweenbetween 1200 1200 ANDAND 1500 1500

범위 검색 (BETWEENBETWEEN 연산자 )

행 제약조건

24

Page 25: 기본적인  SELECT 문 작성

• 활용– Emp 에서 deptno 가 10 이상 20 이하인 값들의 ename,

job, deptno 를 검색하시오 .– Emp 에서 1981 년부터 1985 년 사이에 입사한 사람들의

ename, job, hiredate 를 검색하시오 .

범위 검색 (BETWEENBETWEEN 연산자 )

행 제약조건

25

Page 26: 기본적인  SELECT 문 작성

• 목록 안의 값 중 하나와 일치하는지 여부를 파악• 형식

SELECT * FROM SELECT * FROM 테이블명테이블명where where 필드명 필드명 IN (IN ( 값목록값목록 ))– 값목록은 보통 쉼표로 구분된 상수 값들이 옴– ( 예 ) col IN (1, 2, 4, 9)

목록 검색 (ININ 연산자 )

행 제약조건

26

Page 27: 기본적인  SELECT 문 작성

• 예제

SELECT * FROM Empwhere job IN (salesman, analyst, student)

목록 검색 (ININ 연산자 )

행 제약조건

27

Page 28: 기본적인  SELECT 문 작성

• 활용– Emp 에서 이름이 jones, smith 인 사람의 ename, job

컬럼을 검색하시오 .– Emp 에서 이름이 jone, smith 가 아닌 사람의 ename, job

을 검색하시오 .

목록 검색 (ININ 연산자 )

행 제약조건

28

Page 29: 기본적인  SELECT 문 작성

• SELECT * FROM 테이블명where 필드명 Not LIKE Not LIKE pattern

• SELECT * FROM 테이블명where 필드명 Not Between Not Between a AND b

• SELECT * FROM 테이블명where 필드명 Not IN Not IN ( 값 1, 값 2, …)

Not Not 연산자연산자행 제약조건

29

Page 30: 기본적인  SELECT 문 작성

• 행들을 특정 열 ( 들 ) 을 기준으로 정렬 할 때 사용• 형식

SELECT * FROM SELECT * FROM 테이블명테이블명where where 조건조건Order By Order By 필드명 필드명 [ASC | DESC], …[ASC | DESC], …– ASC 는 오름차순 정렬 , DESC 는 내림차순 정렬을 지정– 기본적으로 오름차순이므로 ASC 는 생략해도 무관– 1 차 정렬 키 , 2 차 정렬 키

행 정렬행 정렬 (ORDER BY (ORDER BY 절절 ))

결과 집합 변경

30

Page 31: 기본적인  SELECT 문 작성

• 예제

SELECT * FROM EmpSELECT * FROM EmpOrder By Order By jobjob DESCDESC

행 정렬행 정렬 (ORDER BY (ORDER BY 절절 ))

결과 집합 변경

31

Page 32: 기본적인  SELECT 문 작성

• 활용– Emp 에서 봉급이 2000 이하인 사람을 모두 찾아

고객사원번호가 큰 사람부터 작은 사람 순으로 검색하시오 .

– Emp 에서 job 의 순서대로 오름차순 정렬한 후 , 동일 값 발생시 이름순으로 오름차순 정렬하시오 .

– Emp 에서 부서번호가 20 인 사람을 찾아 job 컬럼으로 오름차순 정렬 후 , sal 컬럼에 대해 내림차순 정렬하시오 .

– Emp 에서 부서번호가 30 인 사람을 찾아 job, sal 컬럼에 대해 내림차순 정렬하시오 .

행 정렬행 정렬 (ORDER BY (ORDER BY 절절 ))

결과 집합 변경

32

Page 33: 기본적인  SELECT 문 작성

• 중복된 레코드들을 하나씩만 나타나게 하려면 열 목록에 DISTINCT 를 사용

• 형식

SELECT SELECT DistinctDistinct 필드명필드명 , …, …FROM FROM 테이블명테이블명

중복 행 제거중복 행 제거 (DISTINCT)(DISTINCT)

결과 집합 변경

33

Page 34: 기본적인  SELECT 문 작성

• 활용– Emp 에서 부서번호가 20 이상인 사람의 job 을

검색하시오 .– Emp 에서 부서번호가 20 이상인 사람의 job 을 검색하되

중복을 제거하시오 .

중복 행 제거중복 행 제거 (DISTINCT)(DISTINCT)

결과 집합 변경

34