• SQL 2010.03.22
728x90
SQL   Structured  Query Language : 구조적 질의어

table 의 정의 : 행 (row)과 열 (column)의 집합(set) 
table 은 논리적 객체이다.
행을 Data , 열  Structure 이라고도 부른다.

검색 : select 
조작 DML(insert, update, delete) : 행을 조작하는 언어
Object 조작 : DDL (create, alter, drop) : 객체(table ,index,view)를 조작하는 언어
User권한 조작 : DCL (grant  xxx to user, revoke xxx from user)


Select 형식 :
Select 
from
[where]
[group by]
[having]
[order by]

project : select 절의 열 선택
selection : where절의  행 선택
join : from절에 쓴다..  table1, table2

distinct : 중복제거

구문 : 대소문자 무관
저장된 정보 : 대소문자 구별

null 과 null은 같지않다.   null* 100 = null 

sql 에서 os명령어 사용시에는 ! 를 붙인다.

EXPERT> select distinct department_id from employees;

DEPARTMENT_ID
-------------

           90
           20
          110
           50
           80
           60
           10

8 rows selected.

EXPERT> select last_name, job_id, salary, hire_date
  2  from employees
  3  where salary>=10000;

LAST_NAME                 JOB_ID         SALARY HIRE_DATE
------------------------- ---------- ---------- ---------- ---------
King                      AD_PRES         24000 1987-06-17  00:00:00
Kochhar                   AD_VP           17000 1989-09-21  00:00:00
De Haan                   AD_VP           17000 1993-01-13  00:00:00
Zlotkey                   SA_MAN          10500 2000-01-29  00:00:00
Abel                      SA_REP          11000 1996-05-11  00:00:00
Hartstein                 MK_MAN          13000 1996-02-17  00:00:00
Higgins                   AC_MGR          12000 1994-06-07  00:00:00

7 rows selected.

--저장
EXPERT> save emp_sal_10000.sql
Created file emp_sal_10000.sql

--확인
EXPERT> !ls
afiedt.buf  creuser.sql  Desktop  emp_sal_10000.sql  sqlnet.log

--내용확인
EXPERT> get emp_sal_10000.sql
  1  select last_name, job_id, salary, hire_date
  2  from employees
  3* where salary>=10000
EXPERT> @emp_sal_10000.sql

LAST_NAME                 JOB_ID         SALARY HIRE_DATE
------------------------- ---------- ---------- -------------------
King                      AD_PRES         24000 1987-06-17 00:00:00
Kochhar                   AD_VP           17000 1989-09-21 00:00:00
De Haan                   AD_VP           17000 1993-01-13 00:00:00
Zlotkey                   SA_MAN          10500 2000-01-29 00:00:00
Abel                      SA_REP          11000 1996-05-11 00:00:00
Hartstein                 MK_MAN          13000 1996-02-17 00:00:00
Higgins                   AC_MGR          12000 1994-06-07 00:00:00

7 rows selected.

EXPERT>/    --내용확인
EXPERT>run -- 쿼리수행 and 내요확인

EXPERT> alter session set nls_date_format='DD-MON-RR';  날자형식 설정
임시로 설정됨

where id=10 or id=20 or id=30;   ==> where id in(10,20,30)
where first_name like '%a'   a로 끝나는

  1  select employee_id, last_name, job_id
  2  from employees
  3* where job_id like '%SA\_%' escape '\'
EXPERT> /

EMPLOYEE_ID LAST_NAME                 JOB_ID
----------- ------------------------- ----------
        149 Zlotkey                   SA_MAN
        174 Abel                      SA_REP
        176 Taylor                    SA_REP
        178 Grant                     SA_REP

sorting

select last_name, job_id, department_id, hire_date startdate
from employees
order by startdate desc
             hire_date
             4
             4 desc | asc           default  asc
sorting by multiple columns

1차 정렬 후 중복된 결과 끼리만 2차 정렬 수행

치환변수
&    : 한번사용하고 버림
&&  :  session이 유지되어있는 동안까지 저장 (select절에서 정의)
define : session이 유지되어있는 동안까지 저장 ( SQL> define ~ )  고정된 type
accept : session이 유지되어있는 동안까지 저장 (SQL> Accept ~) 사용자 정의 치환 변수

+ Recent posts