기본적인 select 문 작성
Post on 18-Jan-2016
97 Views
Preview:
DESCRIPTION
TRANSCRIPT
Hwang Yeon-Ja
기본적인 SELECT 문 작성
기본 형식SELECT 문
• SELECT 문 기본형식
2
SELECTSELECT 나열할 컬럼 목록 나열할 컬럼 목록
FROMFROM 가져올 테이블 가져올 테이블
[[WHEREWHERE 가져올 행의 조건가져올 행의 조건 ]]
[[ORDER BYORDER BY 정렬 키 목록정렬 키 목록 ]]
SELECTSELECT 나열할 컬럼 목록 나열할 컬럼 목록
FROMFROM 가져올 테이블 가져올 테이블
[[WHEREWHERE 가져올 행의 조건가져올 행의 조건 ]]
[[ORDER BYORDER BY 정렬 키 목록정렬 키 목록 ]]
모든 열 (*)
열 제약조건
• * * 는 열 제약이 전혀 없다는 것을 나타냄– 테이블의 모든 열을 조회– 이때 열들은 정의되어 있는 순서대로 나타남
• 예제
SELECT * SELECT * FROM DeptFROM Dept
3
열 목록열 제약조건
• 모든 열 (*) 대신 특정 열들의 목록 지정 가능– 테이블의 모든 열들을 정의한 순서대로 나열
• 예제
SELECT empno, ename, salSELECT empno, ename, salFROM EmpFROM Emp
4
열 별칭 지정열 제약조건
• 형식
SELECT SELECT 컬럼명 컬럼명 asas 별명별명 1, 1, 컬럼명컬럼명 2 2 asas
별명별명 22
FROM FROM 테이블명테이블명– 별칭에 공백이나 특수 문자가 포함될 경우에는
‘ ’‘ ’ , “ ”“ ” 또는 [ ][ ] 로 둘러싸야 한다 .
5
열 별칭 지정열 제약조건
• 예제
SELECT empno AS SELECT empno AS 사번사번 , ename AS , ename AS 이름이름 , ,
sal AS salary sal AS salaryFROM EmpFROM Emp
6
열 별칭 지정열 제약조건
• 예제
SELECT empno SELECT empno 사번사번 , ename , ename 이름이름 , , sal salary sal salary
FROM EmpFROM Emp
7
열 별칭 지정열 제약조건
• 계산된 파생 열– 원래 테이블에 있던 열이 아니라 계산에 의해 새로
만들어진 열
• 예제
SELECT empno, ename, sal * 12SELECT empno, ename, sal * 12FROM EmpFROM Emp
8
열 별칭 지정열 제약조건
• 계산된 파생 열– 원래 테이블에 있던 열이 아니라 계산에 의해 새로
만들어진 열
• 예제
SELECT empno, ename, sal * 12 AS SELECT empno, ename, sal * 12 AS 연봉연봉FROM EmpFROM Emp
9
상수 열열 제약조건
• 상수 열– 테이블 열 값 대신 모든 레코드에 동일한 상수 값을
출력하는 열
• 예제
SELECT empno, ename, ‘SELECT empno, ename, ‘ 연봉연봉’’ , sal * 12 , sal * 12 FROM EmpFROM Emp
10
비교 연산자행 제약조건
• 행 제약조건– SELECT 문으로 행들을 조회할 때 행을 제약하여 원하는
일부 행들만 결과집합으로 출력• 비교 연산자
– 열의 값이 특정 값과 일치하는지 또는 더 크거나 작은 지 비교 하는 데 쓰임
11
비교 연산자행 제약조건
• 예제
SELECT * SELECT * FROM EmpFROM EmpWHERE Job = ‘analyst’WHERE Job = ‘analyst’
12
논리 연산자행 제약조건
• 논리 연산자 – 연산식들을 논리적으로 결합– NOT → AND → OR 순의 우선순위 있음– 결합 순서를 바꾸려면 ‘ ( )’ 로 둘러싸야 함
13
논리 연산자행 제약조건
• 예제
SELECT * SELECT * FROM EmpFROM EmpWHERE Job = ‘analyst’ WHERE Job = ‘analyst’ and and sal = 3000sal = 3000
14
논리 연산자행 제약조건
• 활용– Emp 테이블에서 job 이 analyst 이고 sal 이 3000 인
값의 ename 과 sal 컬럼을 반환하되 , 컬럼명을 name과 salary 로 대신하여 반환하시오 .
– Emp 테이블에서 job 이 analyst 이고 sal 이 3000 인 값의 ename, job , sal 컬럼을 반환하되 , sal 컬럼값에 12 를 곱하여 반환하시오 .
15
논리 연산자행 제약조건
• 활용– 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
논리 연산자행 제약조건
• 활용– 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
문자열 패턴 매칭 (LIKELIKE 연산자 )
행 제약조건
• 문자열 패턴 매칭 (pattern matching) 을 해주는 연산자• 소량의 문자열 검색에 많이 사용• 형식
SELECT * FROM SELECT * FROM 테이블명테이블명where where 필드명 필드명 LIKE patternLIKE pattern– pattern 에는 와일드카드 문자가 포함된 문자열 상수가 옴
18
• 와일드카드 문자 (p103)
문자열 패턴 매칭 (LIKELIKE 연산자 )
행 제약조건
19
• 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
• 예제
SELECT * SELECT * FROM EmpFROM Empwherewhere ename ename likelike ‘a%’ ‘a%’
문자열 패턴 매칭 (LIKELIKE 연산자 )
행 제약조건
21
• 활용– Emp 테이블에서 ename 이 m 으로 시작하는 ename 을
찾으시오– Emp 테이블에서 ename 이 a 로 시작하고 a 다음에 네
글자가 있는 ename 을 찾으시오 .– Emp 테이블에서 ename 의 내용 중 s 가 있는 ename
을 찾으시오 .
문자열 패턴 매칭 (LIKELIKE 연산자 )
행 제약조건
22
• 최소값과 최대값 사이의 범위에 들어가는지 여부를 파악할 때 쓰임
• 형식
SELECT * FROM SELECT * FROM 테이블명테이블명where where 필드명 필드명 between A AND Bbetween A AND B– A 는 최소값 , B 는 최대값
범위 검색 (BETWEENBETWEEN 연산자 )
행 제약조건
23
• 예제
SELECT * SELECT * FROM EmpFROM Empwherewhere sal sal betweenbetween 1200 1200 ANDAND 1500 1500
범위 검색 (BETWEENBETWEEN 연산자 )
행 제약조건
24
• 활용– Emp 에서 deptno 가 10 이상 20 이하인 값들의 ename,
job, deptno 를 검색하시오 .– Emp 에서 1981 년부터 1985 년 사이에 입사한 사람들의
ename, job, hiredate 를 검색하시오 .
범위 검색 (BETWEENBETWEEN 연산자 )
행 제약조건
25
• 목록 안의 값 중 하나와 일치하는지 여부를 파악• 형식
SELECT * FROM SELECT * FROM 테이블명테이블명where where 필드명 필드명 IN (IN ( 값목록값목록 ))– 값목록은 보통 쉼표로 구분된 상수 값들이 옴– ( 예 ) col IN (1, 2, 4, 9)
목록 검색 (ININ 연산자 )
행 제약조건
26
• 예제
SELECT * FROM Empwhere job IN (salesman, analyst, student)
목록 검색 (ININ 연산자 )
행 제약조건
27
• 활용– Emp 에서 이름이 jones, smith 인 사람의 ename, job
컬럼을 검색하시오 .– Emp 에서 이름이 jone, smith 가 아닌 사람의 ename, job
을 검색하시오 .
목록 검색 (ININ 연산자 )
행 제약조건
28
• 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
• 행들을 특정 열 ( 들 ) 을 기준으로 정렬 할 때 사용• 형식
SELECT * FROM SELECT * FROM 테이블명테이블명where where 조건조건Order By Order By 필드명 필드명 [ASC | DESC], …[ASC | DESC], …– ASC 는 오름차순 정렬 , DESC 는 내림차순 정렬을 지정– 기본적으로 오름차순이므로 ASC 는 생략해도 무관– 1 차 정렬 키 , 2 차 정렬 키
행 정렬행 정렬 (ORDER BY (ORDER BY 절절 ))
결과 집합 변경
30
• 예제
SELECT * FROM EmpSELECT * FROM EmpOrder By Order By jobjob DESCDESC
행 정렬행 정렬 (ORDER BY (ORDER BY 절절 ))
결과 집합 변경
31
• 활용– Emp 에서 봉급이 2000 이하인 사람을 모두 찾아
고객사원번호가 큰 사람부터 작은 사람 순으로 검색하시오 .
– Emp 에서 job 의 순서대로 오름차순 정렬한 후 , 동일 값 발생시 이름순으로 오름차순 정렬하시오 .
– Emp 에서 부서번호가 20 인 사람을 찾아 job 컬럼으로 오름차순 정렬 후 , sal 컬럼에 대해 내림차순 정렬하시오 .
– Emp 에서 부서번호가 30 인 사람을 찾아 job, sal 컬럼에 대해 내림차순 정렬하시오 .
행 정렬행 정렬 (ORDER BY (ORDER BY 절절 ))
결과 집합 변경
32
• 중복된 레코드들을 하나씩만 나타나게 하려면 열 목록에 DISTINCT 를 사용
• 형식
SELECT SELECT DistinctDistinct 필드명필드명 , …, …FROM FROM 테이블명테이블명
중복 행 제거중복 행 제거 (DISTINCT)(DISTINCT)
결과 집합 변경
33
• 활용– Emp 에서 부서번호가 20 이상인 사람의 job 을
검색하시오 .– Emp 에서 부서번호가 20 이상인 사람의 job 을 검색하되
중복을 제거하시오 .
중복 행 제거중복 행 제거 (DISTINCT)(DISTINCT)
결과 집합 변경
34
top related