SQL

[Oracle] 기본 이해하기

ㄷㅐ장님 2021. 12. 21. 17:59

select 문

: 데이터베이스에 있는 데이터를 검색하는 문

 

주석 달기

/*
select 열이름1, 열이름2 --단일행 주석
from 테이블명;
*/ --여러행 주석

desc 테이블명 : 테이블의 구조 확인

NOT NULL : null값을 허용하지 않는다(필수 항목)

NUMBER : 숫자 유형

VARCHAR2 : 문자유형

DATE : 날짜유형

null : null은 사용할 수 없거나, 할당되지 않았거나, 알 수 없거나, 적용할 수 없는 값

-null은 0, 공백이 아님. 계산해도 무조건 null값

 

열별칭 : 열 이름을 다른 이름으로 바꿔서 출력

-열 이름 바로 뒤에 입력해야함. as 키워드 사용 가능.

-열별칭에 숫자/공백/특문(_,$,# 제외) 포함, 대소문자를 구분하려면 "큰 따옴표"를 묶어야 한다.

select 열수식 (as) "열별칭"
from 테이블명;

 

산술연산자 *  /  +  -

number : * / + - 가능

date : + - 가능

char(문자) : 사칙연산 불가

사칙연산은 우선순위 적용. 단, 우선순위를 제어하려면 괄호 이용

 

연결연산자 ||

: 열이나 문자열을 다른 열에 연결. 결과 열은 문자식으로 생성된다.

select 열이름1 || 열이름2
from 테이블명;

 

리터럴 문자열

-숫자, 날짜, 문자는 '작은 따옴표'로 묶어야 한다.

- ' 를 문자로 표현하려면 앞에 한 번 더 ' 쓰거나

q'[문자열]'

q'<문자열>'

q'(문자열)'

q'!문자열!'

q'{문자열}' 사용

select 'My name''s' || 열이름
from 테이블명;

select q'[My name's ]' || 열이름
from 테이블명;

 

중복행 제거 Distinct

select절에 한 번만 사용 가능

select distinct 열이름
from 테이블명;

select distinct 열이름1, 열이름2 --열이름1 데이터값과 열이름2 데이터값이 같은 중복이여야 제거됨
from 테이블명;

[문제1] employees 테이블에서 employee_id, last_name과 first_name은 연결해서 표시하고(공백으로 구분) 열 별칭은 화면예 처럼 보고서 작성해 주세요.

Emp#   Employee Name

100        King Steven

101        Kochhar Neena

102        De Haan Lex

...

select employee_id "Emp#", last_name || ' ' || first_name "Employee Name"
from employees;

[문제2] employees 테이블에서 컬럼중에 last_name, job_id를 연결해서 표시하고(쉼표와 공백으로 구분) 열 별칭은 화면예 처럼 보고서 작성하세요.

Employee and Title

Abel, SA_REP

Ande, SA_REP

...

select last_name || ', ' || job_id "Employee and Title"
from employees;

[문제3] departments 테이블에 있는 데이터에서 department_name , manager_id 컬럼을 가지고 화면 결과 처럼 출력하는 쿼리문장을 만드세요.

Department and Manager

Administration Department's Manager Id: 200

Marketing Department's Manager Id: 201

Purchasing Department's Manager Id: 114

...

select department_name || q'[ Department's Manager Id: ]' || manager_id "Department and Manager"
from departments;