[SQL] 기본 문법 정리
Oracle XE와 Oracle SQL Developer를 사용하여 공부했으며
(오라클 홈페이지에서 다운 받을 수 있다),
Oracle Standard Edition에 기본적으로 존재하는 샘플 데이터 베이스인
SCOTT 계정을 사용하였다.
1. Oracle XE 설치와 기본 셋팅
- SQL*PLUS 실행 방법
처음에는 보안 상의 이유로 system 등을 제외한 계정은 막혀있을 수 있다.
따라서 system 계정으로 로그인 한다(암호는 설치 시 설정한 암호).
- cmd에서
> sqlplus / sysdba
- 사용자 목록 확인
> SELECT username, default_tablespace, account_status FROM DBA_USERS;
Expired & Locked로 표시되는 사용자는 계정을 풀기 전에는 로그인이 되지 않는다.
- 계정 Unlock
> create user scott identified by tiger;
- 계정 권한 부여
> grant connect, resource to scott;
- scott 계정으로 로그인
> conn scott
- 테이블 구조 확인
> desc emp
> desc dept
> desc bonus
> desc salgrade
-------------------------------------------------------------------------------------------------------------------------
2. 기본 문법
⨳ DATA는 대소문자를 구별하지만 SYNTAX는 구별하지 않는다.
2.1. SELECT
SELECT [열 리스트]
[FROM 테이블 리스트 ]
[WHERE 조건]
[GROUP BY 열 리스트 [HAVING 조건]]
[ORDER BY 열 리스트 [ASC | DESC]];
2.1.1 기본 SELECT : 특정 column만 선택(projection)
> SELECT ename FROM emp;
> SELECT ename, job, comm FROM emp;
2.1.2. AS(ALIAS): column 이름 변경
> SELECT ename 이름 FROM emp;
2.1.3 DISTNCT: 중복 제거
> > SELECT DISTINCT ename FROM emp;
2.1.4 산술 연산 가능
> SELECT ename, (sal + 500) * 12 FROM emp;
2.1.5 NVL(expr 1, expr 2): expr1이 NULL이면 expr2를 출력 (⨳ 데이터 타입에 주의)
> SELECT sal, comm, (sal+NVL(comm,0))*12 FROM emp;
NVL2(e1, e2, e3): e1이 NULL이면 e2, NOT NULL이면 e3
NULLIF(e1, e2): e1과 e2가 같으면 NULL, 아니면 e1
COALESCE(e1, e2, ... en): 첫 NOT NULL인 식 출력, 없으면 en
2.1.6 Literal
SELECT ename || ' is a ' || empno;
2.2 WHERE
2.2.1. 연산자 정리
=, !=, >, <, <=, >=
IN
BETWEEN a AND b
LIKE
IS NULL, IS NOT NULL
AND, OR
NOT
ANY, ALL
EXIST
2.2.1.1 =, !=, >, <, <=, >=
> SELECT ename FROM emp WHERE ename = 'SMITH';
2.2.1.2 LIKE
%: 임의 길이의 문자열(공백 가능)
_: 한 글자
> SELECT ename FROM emp WHERE ename like 'SM%';
> SELECT ename FROM emp WHERE ename like 'SMIT_';
2.2.2. ORDER BY
ASC: 오름차순(기본값)
DESC: 내림차순
> SELECT * FROM emp ORDER BY deptno, sal DESC
0 comments