Oracle 2

KDG·2021년 1월 18일
0

테이블 구조 확인

DESC [테이블명]

현재 계정의 테이블 목록 보기

SELECT * FROM tab;

데이터를 조회하기 위한 SELECT 문

  • SELECT 문의 형식 및 실행 순서
SELECT [DISTINCT] { *(전체) | 컬럼[alias]...}   --- 5
FROM 테이블 이름                           --- 1
[WHERE 조건]                              --- 2 
[GROUP BY 그룹으로 묶일 컬럼]               --- 3
[HAVING 조건]                             --- 4
[ORDER BY 정렬할 컬럼]                     --- 6

  • 컬럼에 별칭(ALIAS) 지정
    기존 컬럼명에 새로운 별칭을 지정하거나 컬럼명 사이에 공백이나 특수문자를 추가하는 방법
* 1. 컬럼명과 별칭 사이에 띄어쓰기를 사용해 별칭을 지정
SELECT 컬럼이름1 컬럼별칭1, 컬럼이름2 컬럼별칭2 
FROM table

* 2. 컬럼명과 별칭 사이에 AS를 추가해 별칭을 지정
SELECT 컬럼이름1 AS 컬럼별칭1, 컬럼이름2 AS 컬럼별칭2 
FROM table

* 3. 컬럼명과 별칭 사이에 공백을 추가하거나 특수문자($, _ 등), 대소문자를 구분해야 하는 경우 ""를 사용해 별칭을 지정
SELECT 컬럼이름1 "컬럼 별칭1", 컬럼이름2 "Column Alias2" 
FROM table

조건 지정 WHERE 절

  • 조건을 지정해 원하는 데이터만 선택적으로 추출하기 위해 사용
  • 비교 연산자

  • 논리 연산자

  • 문자, 날짜 데이터
    찾을 문자나 날짜를 ' ' 작은따옴표로 묶어주고 검색한다.
SELECT * FROM employee WHERE ename = 'SCOTT';  문자 검색

SELECT * FROM employee WHERE hiredate <= '1981/01//01';  날짜 검색
  • BETWEEN 연산자 사용 조건 검색
    특정값이 하한값(A)와 상한값(B) 사이에 포함되는 로우를 검색하기 위한 연산자
    값 사이에 AND로 구분
SELECT * FROM employee WHERE salary BETWEEN 1000 AND 1500;
  • IN 연산자 사용 조건 검색
    특정값이 IN으로 묶은 값 안에 하나라도 포함되면 검색가능(OR)
SELECT * FROM employee WHERE salary IN (300, 500, 1400);
salary 값이 300, 500, 1400중 하나라도 맞으면 검색된다.
  • LIKE 연산자와 와일드카드
    지정한 문자 패턴을 찾는 것으로 부분적으로 일치하면 검색 가능

* 이름이 'F'로 시작하는 사람 출력
SELECT * FROM employee WHERE ename LIKE 'F%';

* 이름에 'M'이 포함되어 있는 사람 출력
SELECT * FROM employee WHERE ename LIKE '%M%';

* 이름이 'N'으로 끝나는 사람 출력
SELECT * FROM employee WHERE ename LIKE '%N';

* 이름의 두 번째 글자가 'A'인 사람 출력
SELECT * FROM employee WHERE ename LIKE '_A%';

* 이름의 세 번째 글자가 'A'인 사람 출력
SELECT * FROM employee WHERE ename LIKE '__A%';
  • NULL 값 검색
    오라클은 =비교연산자로 NULL값을 검색할 수 없다.
    IS NULL 연산자와 IS NOT NULL 연산자 사용
SELECT * FROM employee WHERE ename IS NULL;
SELECT * FROM employee WHERE ename IS NOT NULL;

ORDER BY로 정렬

데이터의 출력 순서를 특정 칼럼을 기준으로 순서대로 나열하기 위해 사용

  • 오름차순 정렬 ASC (기본값)
  • 내림차순 정렬 DESC
SELECT * FROM employee ORDER BY salary ASC;   오름차순
SELECT * FROM employee ORDER BY salary DESC;  내림차순

** 참고

  • 성윤정 『데이터베이스 성능의 최적화 Oracle 11g 프로그래밍』, 북스홀릭(2011)

0개의 댓글