SQL (Structured Query Language) :
데이터베이스를 구축하고 활용하기 위해 사용 되는 언어로 데이터베이스 하부언어 이며 구조화 질의어 라고도 한다.
▶기본
select 선택하고 싶은 row from 테이블 명;
-- : 주석처리
# : 주석처리
/* */ : 두줄 이상의 주석처리
* : 모든 열 선택
; : 를 붙여서 끝났다는 걸 표시
대소문자를 구분하지 않는다
▶열 선택 및 열 별칭 정의
select last_name, salary, salary+300 as increase salary
from employees;
#선택 된 열은 last_name 과 salary 그리고 salary에 300을 더한 값이다.
사실 salary에 300을 더한 값은 employees 테이블에 없지만
이렇게 데이터베이스에 저장 된 값들을 통해 찾는 결과 값이 있을때에는 해당 구문처럼 사용 해도 된다.
연산자 우선 순위는 산수와 같으며 원하다면 () 도 사용가능하다.
또한, 없는 열을 억지로 생성 해준 것이기 때문에 이름은 원래 salary+300 이렇게 표시 되는 것이 맞으나
as increase salary 로 인해 increase salary 열로 보여 지게 된다.
이러한 행위를 열의 별칭 사용이라고 하는데 몇가지 더 방법이 있으니 살펴 보자
select last_name 1) as name 2) name 3) "Your Name"
from employees;
3가지 경우가 있는데 1번은 as 를 붙여 별칭 정의 2번은 그냥 냅다 별칭을 써줘서 정의
3번은 대소문자를 구분하는 문자로 별칭을 정의 해주었다.
보통 sql 에서는 문자에 ' ' 를 쓰지만 대소문자를 구분 해주고 싶다면 " " 를 써서 작성 해주어야 한다.
▶연결 연산자 사용 및 리터럴 문자열
select last_name || 'is a ' || job_id as "Employee Details"
from employees;
||은 연결 연산이다. 두개의 행을 합치고 싶을 때 사용해주면 좋다.
'is a' 는 리터럴 문자열인데 여기서 리터럴이란 select절에 임의의 문자열 값을 의미한다.
|| 이게 없었다면 두 열을 연결 해주지는 않았을 것이다
#리터럴 문자열의 예시를 조금 더 보자면
select last_name, hire_date, '재직중' 근부여부
from employees;
||이 없으니 연결 되지 않고 따로 분리되어 리터럴 문자열이 사용 된 것을 확인 할 수 있다.
▶중복 행 제거
select distinct department_id
from employees;
#distinct는 중복행을 제거한다
중복 행을 제거 하지 않았을 때와 했을 때의 인출 된 행이 다른 것을 알 수 있다.
▶테이블 구조 표시
describe employees
# ';' 를 써도 되고 안 써도 된다.
'SQL' 카테고리의 다른 글
SQL 문법 _ 오라클 9i introduction 2장 문제 (0) | 2023.03.19 |
---|---|
SQL 문법 _ ③ order by (0) | 2023.03.19 |
SQL 문법 _ ② where (0) | 2023.03.19 |
SQL 문법 _ 오라클 9i introduction 1장 문제 (0) | 2023.03.14 |
RDBMS 관계형 데이터베이스 관리 시스템 (0) | 2023.03.14 |