▶ SQL(Structured Query Language)
- 데이터베이스에 데이터를 질의 , 등록 , 수정 , 삭제 등을 요청하기 위한 표준언어
- DML(Data Manipulation Language) INSERT, UPDATE, DELETE, SELECT
- Table 에 Data 추가 , 수정 , 삭제 , 조회 - DDL(Data Definition Language) CREATE, ALTER, DROP, TRUNCATE
- Database 스키마 (Database 나 Table 등 생성 및 변경 - DCL(Data Control Language) GRANT, REVOKE
- 사용자에게 권한을 주거나 권한을 없애는 것과 같은 Data 접근을 제어하기 위한 언어 . - TCL(Transaction Control Language) COMMIT, ROLLBACK, SAVEPOINT
- Transaction 을 관리하는 언어
▶ Select
Select 기본 구문 - 연산자, 컬럼 별칭
select 컬럼명1 , 컬럼명2, 컬럼명3, .... =>조회할 컬럼명
from 테이블명 =>조회할 테이블 명
- 테이블에 있는 모든 컬럼을 조회 => *
- select 조회할컬럼명 as 별칭(alias)
- 별칭(alias) : 조회결과의 컬럼명.
- as는 생략가능
- 별칭에 컬럼명으로 못사용하는 문자(공백)를 쓸 경우 " "로 감싼다.
- 더미테이블: select의 from절을 만들기 위해 사용되는 가짜 테이블명. : FROM dual;
- distinct : 중복제거
▶ 연산자
- 산술연산자: +, - , *, /
- 문자열 합치기: ||
-> '문자열A'||'문자열B' => '문자열A문자열B' - 연산은 그 컬럼의 모든 값들에 일률적으로 적용된다.
- 같은 컬럼을 여러번 조회할 수 있다.
- 컬럼 + 값 : 컬럼의 모든값에 더한다.
- 컬럼 * 컬럼 : 같은 행의 값끼리 곱한다.
▶ 날짜
- sysdate: sql문 실행시점의 일시.=>type: date
- date + 정수 : 정수 일(day) 후 날짜
date - 정수 : 정수 일(day) 전 날짜 - date - date: 몇일 차이
- date는 +/- 만 가능.
- number값/date 값과 null을 계산하면 결과는 null. null(모르는 값, 값이 없다)
- || : 문자열을 붙일때 사용
- 값||null => null은 무시
▶ like (어떤 문자가 포함된 것을 조회할 때 사용)
- XXX 로 시작하는 : 'XXX%'
- XXX 로 끝나는 : '%XXX'
- XXX가 들어간 : '%XXX%'
- 글자수 : _
- like 연산시. %나 _앞에 escape 에서 지정한 문자(#)을 붙이면 리터럴임을 가리킨다.
ex) where emp_name like '%#%%' escape '#'; - ' #% #_ ' => %, _ 자체
▶ WHERE 조건이 여러개인 경우
- AND OR
- 참 and 참 -> 참: 조회 결과 행
- 거짓 or 거짓 -> 거짓: 조회 결과 행이 아님.
- 연산 우선순위 : and > or
- where 조건1 and 조건2 or 조건3
1. 조건 1 and 조건2
2. 1결과 or 조건3 - or를 먼저 하려면 where 조건1 and (조건2 or 조건3)
▶ Order By
- select문에 가장 마지막에 오는 구절.
- order by 정렬기준컬럼 정렬방식 [, 정렬기준컬럼 정렬방식,...]
- 정렬기준컬럼
- 컬럼이름.
- select절에 선언된 순서.
- 별칭이 있을 경우 별칭. - 정렬방식
- asc : 오름차순 (기본-생략가능)
- desc : 내림차순 - 문자열: 숫자 < 대문자 < 소문자 < 한글
- date : 과거 < 미래
▶ NULL 값 order by
- ASC : 마지막. order by 컬럼명 asc nulls first
- DESC : 처음. order by 컬럼명 desc nulls last
- nulls first, nulls last ==> 오라클 문법.
- 컬럼 순서로 지정할 경우는 select 절에 선언한 컬럼 순서 기준.
order by dept_name nulls first;
order by dept_name desc nulls last;
- asc : nulls first
- desc : nulls last
▶ 치환변수
select * from emp
where emp_id=&id;
select * from emp
where emp_name='&name'
and emp_id=&id;
select * from emp
where emp_name='&name';
-- 치환변수를 사용하지 않겠다. (off), 사용하겠다. (on)
set define off;
set define on;
728x90
반응형
'SQL & DB > Oracle' 카테고리의 다른 글
[SQL] DML / DDL (0) | 2020.06.10 |
---|---|
[SQL] 서브쿼리(Sub Query), 집합연산자(결합쿼리) (0) | 2020.06.10 |
[SQL] 조인(Join) (0) | 2020.06.09 |
[SQL] 함수/집계함수(Having, Groupby) (0) | 2020.06.09 |