SQL & DB/Oracle

[SQL] Basic

YSY^ 2020. 5. 27. 16:28

▶ 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