기본적인 SELECT문 작성
SELECT 문 기본 형식 SELECT 나열할 컬럼 목록 FROM 가져올 테이블 [WHERE 가져올 행의 조건] [ORDER BY 정렬 키 목록]
SELECT * FROM Dept 열 제약조건 모든 열(*) * 는 열 제약이 전혀 없다는 것을 나타냄 테이블의 모든 열을 조회 이때 열들은 정의되어 있는 순서대로 나타남 예제 SELECT * FROM Dept
SELECT empno, ename, sal FROM Emp 열 제약조건 열 목록 모든 열(*) 대신 특정 열들의 목록 지정 가능 테이블의 모든 열들을 정의한 순서대로 나열 예제 SELECT empno, ename, sal FROM Emp
열 제약조건 열 별칭 지정 SELECT 컬럼명 as 별명1, 컬럼명2 as 별명2 FROM 테이블명 형식 별칭에 공백이나 특수 문자가 포함될 경우에는 ‘ ’, “ ” 또는 [ ]로 둘러싸야 한다.
열 제약조건 열 별칭 지정 SELECT empno AS 사번, ename AS 이름, sal AS salary FROM Emp 예제 SELECT empno AS 사번, ename AS 이름, sal AS salary FROM Emp
열 제약조건 열 별칭 지정 예제 SELECT empno 사번, ename 이름, sal salary FROM Emp
열 제약조건 열 별칭 지정 SELECT empno, ename, sal * 12 FROM Emp 계산된 파생 열 원래 테이블에 있던 열이 아니라 계산에 의해 새로 만들어진 열 예제 SELECT empno, ename, sal * 12 FROM Emp
열 제약조건 열 별칭 지정 SELECT empno, ename, sal * 12 AS 연봉 FROM Emp 계산된 파생 열 원래 테이블에 있던 열이 아니라 계산에 의해 새로 만들어진 열 예제 SELECT empno, ename, sal * 12 AS 연봉 FROM Emp
열 제약조건 상수 열 SELECT empno, ename, ‘연봉’, sal * 12 FROM Emp 상수 열 테이블 열 값 대신 모든 레코드에 동일한 상수 값을 출력하는 열 예제 SELECT empno, ename, ‘연봉’, sal * 12 FROM Emp
행 제약조건 비교 연산자 행 제약조건 SELECT 문으로 행들을 조회할 때 행을 제약하여 원하는 일부 행들만 결과집합으로 출력 열의 값이 특정 값과 일치하는지 또는 더 크거나 작은 지 비교 하는 데 쓰임
행 제약조건 비교 연산자 예제 SELECT * FROM Emp WHERE Job = ‘analyst’
행 제약조건 논리 연산자 논리 연산자 연산식들을 논리적으로 결합 NOT → AND → OR 순의 우선순위 있음 결합 순서를 바꾸려면 ‘( )’로 둘러싸야 함
행 제약조건 논리 연산자 SELECT * FROM Emp WHERE Job = ‘analyst’ and sal = 3000 예제 SELECT * FROM Emp WHERE Job = ‘analyst’ and sal = 3000
행 제약조건 논리 연산자 활용 Emp 테이블에서 job이 analyst이고 sal이 3000인 값의 ename과 sal 컬럼을 반환하되, 컬럼명을 name과 salary로 대신하여 반환하시오. Emp 테이블에서 job이 analyst이고 sal이 3000인 값의 ename, job , sal 컬럼을 반환하되, sal컬럼값에 12를 곱하여 반환하시오.
행 제약조건 논리 연산자 활용 Emp 테이블에서 job이 analyst이고 sal이 3000인 값의 ename과 sal 컬럼을 반환하되, 컬럼명을 name과 salary로 대신하여 반환하시오. SELECT ename AS name, sal AS salary FROM Emp WHERE job = ‘analyst’ AND sal = 3000
행 제약조건 논리 연산자 활용 Emp 테이블에서 job이 analyst이고 sal이 3000인 값의 ename, job , sal 컬럼을 반환하되, sal컬럼 값에 12를 곱하여 반환하시오. SELECT ename AS name, job, sal*12 AS salary FROM Emp WHERE job = ‘analyst’ AND sal = 3000
행 제약조건 문자열 패턴 매칭(LIKE 연산자) 문자열 패턴 매칭(pattern matching)을 해주는 연산자 소량의 문자열 검색에 많이 사용 형식 SELECT * FROM 테이블명 where 필드명 LIKE pattern pattern에는 와일드카드 문자가 포함된 문자열 상수가 옴
행 제약조건 문자열 패턴 매칭(LIKE 연산자) 와일드카드 문자 (p103)
행 제약조건 문자열 패턴 매칭(LIKE 연산자) Example 표현식 해당되는 것 해당되지 않는 것 book_ 해당되지 않는 것 book_ books/booka/booky book/booked book% book/books/booked abook/atbooks/adbooked %book% abook/abooks/book brook/brooks [st]ing sing/ting Ving/king/k/v/vin [b-f]ing Bing/cing/ding/eing/fing Aing/b/f/ging M[^c]% Mike/many/mickey Mcdonald/mcatur/m/mc
행 제약조건 문자열 패턴 매칭(LIKE 연산자) 예제 SELECT * FROM Emp where ename like ‘a%’
행 제약조건 문자열 패턴 매칭(LIKE 연산자) 활용 Emp 테이블에서 ename이 m으로 시작하는 ename을 찾으시오 Emp 테이블에서 ename이 a로 시작하고 a다음에 네 글자가 있는 ename을 찾으시오. Emp 테이블에서 ename의 내용 중 s가 있는 ename을 찾으시오.
행 제약조건 범위 검색(BETWEEN 연산자) SELECT * FROM 테이블명 where 필드명 between A AND B 최소값과 최대값 사이의 범위에 들어가는지 여부를 파악할 때 쓰임 형식 SELECT * FROM 테이블명 where 필드명 between A AND B A는 최소값, B는 최대값
행 제약조건 범위 검색(BETWEEN 연산자) 예제 SELECT * FROM Emp where sal between 1200 AND 1500
행 제약조건 범위 검색(BETWEEN 연산자) 활용 Emp에서 deptno가 10이상 20이하인 값들의 ename, job, deptno를 검색하시오. Emp에서 1981년부터 1985년 사이에 입사한 사람들의 ename, job, hiredate를 검색하시오.
행 제약조건 목록 검색(IN 연산자) 목록 안의 값 중 하나와 일치하는지 여부를 파악 형식 SELECT * FROM 테이블명 where 필드명 IN (값목록) 값목록은 보통 쉼표로 구분된 상수 값들이 옴 (예) col IN (1, 2, 4, 9)
행 제약조건 목록 검색(IN 연산자) 예제 SELECT * FROM Emp where job IN (salesman, analyst, student)
행 제약조건 목록 검색(IN 연산자) 활용 Emp에서 이름이 jones, smith 인 사람의 ename, job컬럼을 검색하시오. Emp에서 이름이 jone, smith가 아닌 사람의 ename, job을 검색하시오.
SELECT * FROM 테이블명 where 필드명 Not LIKE pattern 행 제약조건 Not 연산자 SELECT * FROM 테이블명 where 필드명 Not LIKE pattern SELECT * FROM 테이블명 where 필드명 Not Between a AND b SELECT * FROM 테이블명 where 필드명 Not IN (값1, 값2, …)
결과 집합 변경 행 정렬(ORDER BY 절) 행들을 특정 열(들)을 기준으로 정렬 할 때 사용 형식 SELECT * FROM 테이블명 where 조건 Order By 필드명 [ASC | DESC], … ASC는 오름차순 정렬, DESC는 내림차순 정렬을 지정 기본적으로 오름차순이므로 ASC는 생략해도 무관 1차 정렬 키, 2차 정렬 키
결과 집합 변경 행 정렬(ORDER BY 절) 예제 SELECT * FROM Emp Order By job DESC
결과 집합 변경 행 정렬(ORDER BY 절) 활용 Emp에서 봉급이 2000이하인 사람을 모두 찾아 고객사원번호가 큰 사람부터 작은 사람 순으로 검색하시오. Emp에서 job의 순서대로 오름차순 정렬한 후, 동일 값 발생시 이름순으로 오름차순 정렬하시오. Emp에서 부서번호가 20인 사람을 찾아 job컬럼으로 오름차순 정렬 후, sal 컬럼에 대해 내림차순 정렬하시오. Emp에서 부서번호가 30인 사람을 찾아 job, sal 컬럼에 대해 내림차순 정렬하시오.
결과 집합 변경 중복 행 제거(DISTINCT) SELECT Distinct 필드명, … FROM 테이블명 형식 SELECT Distinct 필드명, … FROM 테이블명
결과 집합 변경 중복 행 제거(DISTINCT) 활용 Emp에서 부서번호가 20이상인 사람의 job을 검색하시오.