340 likes | 621 Vues
기본적인 SELECT 문 작성. SELECT 문. 기본 형식. SELECT 문 기본형식. SELECT 나열할 컬럼 목록 FROM 가져올 테이블 [ WHERE 가져올 행의 조건 ] [ ORDER BY 정렬 키 목록 ]. 열 제약조건. 모든 열 (*). * 는 열 제약이 전혀 없다는 것을 나타냄 테이블의 모든 열을 조회 이때 열들은 정의되어 있는 순서대로 나타남 예제 SELECT * FROM Dept. 열 제약조건. 열 목록. 모든 열 (*) 대신 특정 열들의 목록 지정 가능
E N D
SELECT 문 • 기본 형식 • SELECT 문 기본형식 SELECT나열할 컬럼 목록 FROM가져올 테이블 [WHERE가져올 행의 조건] [ORDER BY정렬 키 목록]
열 제약조건 • 모든 열(*) • * 는 열 제약이 전혀 없다는 것을 나타냄 • 테이블의 모든 열을 조회 • 이때 열들은 정의되어 있는 순서대로 나타남 • 예제 SELECT * FROM Dept
열 제약조건 • 열 목록 • 모든 열(*) 대신 특정 열들의 목록 지정 가능 • 테이블의 모든 열들을 정의한 순서대로 나열 • 예제 SELECT empno, ename, salFROM Emp
열 제약조건 • 열 별칭 지정 • 형식 SELECT 컬럼명 as별명1, 컬럼명2 as별명2FROM 테이블명 • 별칭에 공백이나 특수 문자가 포함될 경우에는‘ ’, “ ”또는 [ ]로 둘러싸야 한다.
열 제약조건 • 열 별칭 지정 • 예제 SELECT empno AS 사번, ename AS 이름, sal AS salaryFROM Emp
열 제약조건 • 열 별칭 지정 • 예제 SELECT empno 사번, ename 이름, sal salaryFROM Emp
열 제약조건 • 열 별칭 지정 • 계산된 파생 열 • 원래 테이블에 있던 열이 아니라 계산에 의해 새로 만들어진 열 • 예제 SELECT empno, ename, sal * 12FROM Emp
열 제약조건 • 열 별칭 지정 • 계산된 파생 열 • 원래 테이블에 있던 열이 아니라 계산에 의해 새로 만들어진 열 • 예제 SELECT empno, ename, sal * 12 AS 연봉FROM Emp
열 제약조건 • 상수 열 • 상수열 • 테이블 열 값 대신 모든 레코드에 동일한 상수 값을 출력하는 열 • 예제 SELECT empno, ename, ‘연봉’, sal * 12 FROM Emp
행 제약조건 • 비교 연산자 • 행 제약조건 • SELECT 문으로 행들을 조회할 때 행을 제약하여 원하는 일부 행들만 결과집합으로 출력 • 비교 연산자 • 열의 값이 특정 값과 일치하는지 또는 더 크거나 작은 지 비교 하는 데 쓰임
행 제약조건 • 비교 연산자 • 예제 SELECT * FROM EmpWHERE Job = ‘analyst’
행 제약조건 • 논리 연산자 • 논리 연산자 • 연산식들을 논리적으로 결합 • NOT → AND → OR 순의 우선순위 있음 • 결합 순서를 바꾸려면 ‘( )’로 둘러싸야 함
행 제약조건 • 논리 연산자 • 예제 SELECT * FROM EmpWHERE 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 EmpWHERE 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 EmpWHERE job = ‘analyst’ AND sal = 3000
행 제약조건 • 문자열 패턴 매칭(LIKE연산자) • 문자열 패턴 매칭(pattern matching)을 해주는 연산자 • 소량의 문자열 검색에 많이 사용 • 형식 SELECT * FROM 테이블명where 필드명 LIKE pattern • pattern에는 와일드카드 문자가 포함된 문자열 상수가 옴
행 제약조건 • 문자열 패턴 매칭(LIKE연산자) • 와일드카드 문자 (p103)
행 제약조건 • 문자열 패턴 매칭(LIKE연산자) • Example
행 제약조건 • 문자열 패턴 매칭(LIKE연산자) • 예제 SELECT * FROM Empwhere enamelike ‘a%’
행 제약조건 • 문자열 패턴 매칭(LIKE연산자) • 활용 • Emp 테이블에서 ename이 m으로 시작하는 ename을 찾으시오 • Emp 테이블에서 ename이 a로 시작하고 a다음에 네 글자가 있는 ename을 찾으시오. • Emp 테이블에서 ename의 내용 중 s가 있는 ename을 찾으시오.
행 제약조건 • 범위 검색(BETWEEN연산자) • 최소값과 최대값 사이의 범위에 들어가는지 여부를 파악할 때 쓰임 • 형식 SELECT * FROM 테이블명where 필드명 between A AND B • A는 최소값, B는 최대값
행 제약조건 • 범위 검색(BETWEEN연산자) • 예제 SELECT * FROM Empwhere salbetween 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 Empwhere jobIN (salesman, analyst, student)
행 제약조건 • 목록 검색(IN연산자) • 활용 • Emp에서 이름이 jones, smith 인 사람의 ename, job컬럼을 검색하시오. • Emp에서 이름이 jone, smith가 아닌 사람의 ename, job을 검색하시오.
행 제약조건 • 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 EmpOrder By jobDESC
결과 집합 변경 • 행 정렬(ORDER BY 절) • 활용 • Emp에서 봉급이 2000이하인 사람을 모두 찾아 고객사원번호가 큰 사람부터 작은 사람 순으로 검색하시오. • Emp에서 job의 순서대로 오름차순 정렬한 후, 동일 값 발생시 이름순으로 오름차순 정렬하시오. • Emp에서 부서번호가 20인 사람을 찾아 job컬럼으로 오름차순 정렬 후, sal 컬럼에 대해 내림차순 정렬하시오. • Emp에서 부서번호가 30인 사람을 찾아 job, sal 컬럼에 대해 내림차순 정렬하시오.
결과 집합 변경 • 중복 행 제거(DISTINCT) • 중복된 레코드들을 하나씩만 나타나게 하려면 열 목록에 DISTINCT를 사용 • 형식 SELECT Distinct필드명, …FROM 테이블명
결과 집합 변경 • 중복 행 제거(DISTINCT) • 활용 • Emp에서 부서번호가 20이상인 사람의 job을 검색하시오. • Emp에서 부서번호가 20이상인 사람의 job을 검색하되 중복을 제거하시오.