SQL문의 목적, 작성법, 별칭(AS)
Database 실습 환경
- DB Server : Oracle DB 11g
- DB Client : Oracle SQL Developer
- Host : Localhost
- CPU : Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz
- RAM : 4GB
- OS : Windows 7 Enterprise K - 64Bit
SQL : DB의 데이터를 제어하는 명령문
QUERY : SELECT
DML(데이터 조작) : INSERT, UPDATE, DELETE, MERGE, SELECT
TCL(트렌젝션 조작) : COMMIT, ROLLBACK, SAVEPOINT
DDL(테이블 생성, 삭제, 수정 등) : CREATE, DROP, ALTER, TRUNCATE...
DCL : GRANT, REVOKE
SQL문의 목적
SELECT를 이용한 특정 정보 검색
명령문과 그 순서
5 SELECT : 표현식 정의
1 FROM : 집합 정의
2 WHERE : 행 제한을 위한 조건식 정의
3 GROUP BY : 그룹 정의
4 HAVING : 행 제한을 위한 조건식 정의(그룹 함수)
6 ORDER BY : 정렬 정의(오름 및 내림)
SELECT와 FROM의 사용법
SELECT '테이블의 특정 컬럼을 가져옴'
FROM '정보를 가져오기 위한 테이블 명 '
예) emp테이블의 empno, ename, sal, deptno의 정보를 가져오는 SQL문
->
SELECT empno, ename, sal, deptno
FROM emp;
이 때, 컬럼 명을 적는 부분에 '*'을 입력하면 FROM에 해당하는 모든 컬럼 정보를 가져온다.
SQL문 작성
- 대,소 문자 구분 없음
- 여러 줄에 걸쳐서 작성 가능(가독성 증가)
- 절은 대개 별도의 줄에 입력
- 키워드는 약어 혹은 다른 절로 입력할 수 없음
- 명령문의 마지막은 세미콜론(;)으로 마침
- 주석 처리는 '--주석' 과같은 방식으로 작성
- 문단 단위 혹은 여러 줄 단위의 주석은 '/* */' 로 작성
산술식
- 산술 연산자를 사용하여 숫자 및 날짜 데이터로 표현
- 특정 컬럼이 숫자로 되어 있으면 4칙연산이 가능
- 날짜로 되어 있는 컬럼은 +, - 등의 연산만 가능
- 연산의 우선순위는 괄호'( )'를 이용해 조작 가능
Null 값의 정의
- Null은 사용할 수 없거나, 할당되지 않거나, 알 수 없거나, 적용할 수 없는 값
- Null은 0이나 공백과는 다름
- 차 후 함수(NVL)를 이용해 Null값이 있는 부분을 다른 특정 값으로 처리해서 SELECT 할 수 있음
- Null은 어떤 연산을 하던 Null로 리턴 시킴
컬럼의 별칭
- 열 alias 사용
- AS명령어를 이용해 앞의 컬럼 명을 AS뒤의 문자로 변경해서 출력할 수 있음
예) emp테이블의 empno를 ID로, ename을 NAME으로 별칭해서 출력시키는 방법
->
SELECT empno AS ID, ename AS NAME
FROM emp;
->
SELECT empno ID, enameNAME
FROM emp;
- 등과 같이 AS를 사용하지 않아도 된다. (일반적으로 잘 사용하지 않음)
- 큰 따옴표 " "로 묶인 문자는 출력할 때 대, 소문자를 구분해서 출력 해 줌
- 연산식을 컬럼에 숨기거나 여러 SQL문을 합쳐서 사용할 때 약어로 만들어서 사용이 가능 하도록 해 준다.
연결 연산자
- 열이나 문자열을 다른 열에 연결
- 컬럼과 컬럼 사이에 '||'으로 출력
- 결과는 열로 문자 표현식을 작성
리터럴 문자열
- SQL명령문에 포함된 문자, 숫자 또는 날짜
- 날짜 및 문자 값은 작은 따옴표로 묶어야 함
- 각 문자열은 반환되는 각 행에 한 번 출력 됨
예) 모든 행에 숫자 12를 함께 출력, 모든 행에 문자 'ABC'를 함께 출력
->
SELECT 12, employee_id, first_name, salary
FROM employees;
->
SELECT 'ABC', employee_id, first_name, salary
FROM employees;
예) EMPLOYEES테이블에 있는 LAST_NAME과 JOB_ID를 연결 출력 하는데
연결하는 중간에 ' is a '라는 문자열을 함께 출력
->
SELECT last_name || ' is a ' || job_id
AS "Employee Details"
FROM employees;
-- 리터럴 문자열에 작은 따옴표를 함께 출력하고 싶다면 2개를 연속으로 입력해야 함
-- 작은 따옴표롤 연속으로 사용하면 가독성이 떨어져 대체 인용(q)연산자를 사용한다.
대체 인용(q) 연산자
- q'[~~'~~'~~'~]'를 이용하여 SQL문의 가독성을 높힐 수 있음
중복 행
- 특정 컬럼에 있는 값이 중복되어 있는 행이 있는 경우
- 특정 종류만 출력하기 위해 모든 행을 출력하면 중복된 모든 값들도 함께 나옴
- DISTINCT를 이용하면 행 중복을 제거해서 특정 종류만 하나 씩 출력 해 줌
'Database - Oracle DB > 1주차(Database - Oracle DB)' 카테고리의 다른 글
[SQL] DB 스터디 - 05 (0) | 2019.01.03 |
---|---|
[SQL] DB 스터디 - 04 (0) | 2019.01.02 |
[SQL] Advanced SQL - 기본적인 SELECT 명령문 작성 (0) | 2019.01.02 |
[SQL] DB스터디 - 03 (0) | 2018.12.28 |
[SQL] DB스터디 - 02 (0) | 2018.12.27 |