Computers/Databases

seoul accord - day 2. SQL 기본

emzei 2012. 10. 21. 19:57

 기본 SELECT 

 

◆ SELECT

      ◇ syntax

-select

-from

-where

-group by (having)

-order by (asc/desc)

 

      ◇ format

SELECT *|{[DISTINCT] column|expression [alias],...}

FROM table;

* 표준에 맞게 작성하자!


 

◆ NULL

      ◇ DBMS마다 NULL 처리 방식이 다름

ex. ORDER BY했을 때 NULL이 먼저 나오는 경우 VS. NULL이 마지막에 나오는 경우

      ◇ NVL(expr1, expr2) : expr1 이 NULL이면 expr2 출력

- oracle 내장 함수. 표준은 아님

      ◇ equal 갖고 비교할 수 없다

      ◇ 비교하려면 IS NULL, IS NOT NULL 이용

 

◆ Column Alias

      ◇ 컬럼의 제목 변경

      ◇ 큰 따옴표(" ")를 사용하여 alias 내에 공백이나 특수문자를 포함할 수 있다. (큰 따옴표--- oracle 경우)

      ◇ format

– SELECT ename name FROM emp;

– SELECT ename as name FROM emp;

– SELECT ename “as” FROM emp;

– SELECT (sal + comm) “Annual Salary” FROM emp

 

 

◆ Literal

      ◇ SELECT 절에 사용되는 문자, 숫자, Date 타입 등의 상수

      ◇ Date 타입이나 문자열은 작은따옴표 (‘ ‘)로 둘러싸야 함 

      ◇ 문자열 결합(Concatunation) 연산자: ||   --- oracle의 경우

      ◇ ex.

– SELECT ename, 1000, SYSDATE FROM emp;

(참고) SYSDATE -- oracle에서만 가능

 

 

 

◆ WHERE

      ◇ 연산자

– =, !=, >, <, <=, >=  // 단일 항목에 대해

– IN : 집합에 대해

– BETWEEN a AND b : a 와 b 사이

– LIKE: 문자열 관련

– IS NULL, IS NOT NULL

– AND, OR

– NOT

– ANY, ALL : 집합 중 어느한열, 집합 중 모든 열 (다른 비교연산자

와 함께 사용)

– EXIST: 결과 Row가 하나라도 있나? (subquery에서)

 

 

◆ LIKE

      ◇ wildcard

- % : 임의의 길이의 문자열 (공백 문자 가능)

- _  : 한 글자

 

      ◇ escape

- ESCAPE 뒤의 문자열~ wildcard가 아닌 것을 해석

(예) ename LIKE ‘KOR/%%’ ESCAPE ‘/’ : ‘KOR%’로 시작하는 모든 문자열

 

 

 

 

 

 

 

 

 SINGLE ROW FUNCTION 

 DBMS에 따른 꼭 manual 살피기

◆ links

http://www.scribd.com/doc/20121666/DBMS-Manual

http://altibase.net/74


◆SQL Function

      ◇ Single Row Function : 하나의 Row를 입력받는 함수

- 숫자 / 문자 / 날짜 / 변환 / 기타 함수

      ◇ Aggregation Function : 집합함수

      ◇ Analytic Function : 분석함수

      ◇ Regular Expression : 정규표현식 (Oracle 10g 이상)





 




◆ JOIN

      ◇ 종류

- Cross (= Cartesian Product)

- Inner 

- Outer / Left Outer / Right Outer / Full Outer

- Theta : 조건에 의한 조인

- Equi : theta join 과, 조건이 같은 !

- Natual : equi 조인과, 동일한 Column 명 합쳐짐

- Self : 자기자신

 

 

 

 

◆ DDL (Date Definition Language)

      ◇ Create table

      ◇ Alter table

- alter table [table_name] ( ADD / MODIFY / DROP / SET UNUSED / DROP UNUSED COLUMNS) ;

      ◇ Drop table - table 통째로 지움

      ◇ rename

      ◇ truncate - attribute만 남기고 데이터만 지움 --- rollback 불가

(비교) delete - 데이터 지움 --- rollback 가능 --- DML만 가능

      ◇ comment

 

      ◇ Naming rules

      ◇ Data types --- 표준이 없다. DBMS 의존적

* VARCHAR --- 가변길이 ~ 왜 길이 표시? DBMS가 최악의 케이스 (최대크기)에 대한 알고리즘을 선택하여 동작.

* NUMBER --- 10진수 (2진수가 아니다) --- 10진수 형식으로 저장

 

      ◇ Constraints (제약조건)

- NOT NULL

- UNIQUE

- PRIMARY KEY

- FOREIGN KEY

- CHECK

 

* ADD / DROP CONSTRAINTS

* ENABLE / DISABLE CONSTRAINTS

* CASCADE CONSTRAINTS

 

      ◇ DATA Dictionary  

 

 

 

◆ DML

      ◇ INSERT / DELETE / UPDATE

 

 

 

 

◆ Aggregate Function

      ◇ AVG, COUNT, MAX, MIN, SUM, STDDEV, VARIANCE

      ◇ 주의@ GROUP BY와 AGGREGATE FUNCTION에 언급되지않은 ATTRIBUTE를 SELECT하면 ERROR

 

      

 

◆ SUBQUERY

      ◇ MULTI-ROW QUERY

      ◇ CORRELATED QUERY

      ◇ TOP-K QUERY - ORACLE 지원 ㄴㄴ

      ◇ RANK

      

 

 

◆ Recursion

      ◇ with절 이용

      ◇ oracle --- hierarchical query

 

'Computers > Databases' 카테고리의 다른 글

seoul accord - day 3. 데이터 모델링 (Data modeling)  (0) 2012.10.21
sqlplus 터미널 사이즈 변경  (0) 2012.10.21
seoul accord - day1  (0) 2012.10.21
ch5. advanced SQL  (0) 2012.10.21
ch4. intermediate SQL  (0) 2012.10.21