데이터베이스

[DB]2. SELECT절

CodeJaram 2023. 5. 29. 15:36

데이터베이스 02 _ SELECT절

 

● DB: 구조화된 데이터의 집합

● DBMS: 데이터베이스관리시스템

● DB의 종류: Oracle, MySQL, MariaDB

 

1. SQL 의미와 종류(26p.)

-Structured Query Language(구조화된 질의 언어)

-데이터베이스를 위한 표준질의 언어

2. 자료형(39p.)

3. SQL 실행순서

4. 전체 데이터 출력하기(*)

SELECT *(asterisk) FROM 테이블 이름

[실행순서]

1. 테이블에서 데이터가져오기

2. 해당 테이블에서 전체컬럼 출력하기

--전체 컬럼 출력하기
select * from employees;

*sql문장은 대소문자 구별하지 않음

* 문자열은 ' '(작은따옴표)로 작성, 대소문자 구분

*sql문장의 마무리는 ;(세미콜론)으로 끝맺음

 

5. 원하는 컬럼 출력하기

SELECT 출력하고 싶은 컬럼 FROM 테이블 이름

[실행순서]

1. 테이블에서 데이터가져오기

2. 해당 테이블에서 원하는 컬럼 출력하기

--원하는 컬럼만 출력하기
select employee_id,last_name from employees;

*커서에 있는 문장 실행하므로 커서 확인

*sql문장 오류 발생 시 오타, 세미콜론 입력 확인

 

[실습1]

직원테이블의 직원ID, 이름, 입사일 출력하기

부서테이블에서 부서 ID, 부서명, 근무지ID 출력하기

--직원테이블의 직원ID, 이름, 입사일 출력하기
select employee_id, last_name, hire_date
from employees;

--부서테이블에서 부서 ID, 부서명, 근무지ID 출력하기
department_id, department_name, location_id 
from department_id;

 

6. 중복제거하기(DISTINCT)

SELECT DISTINCT FROM~

-컬럼이 1개인 경우: 컬럼에서 중복제거 후 출력

--컬럼이 1개인 경우
select distinct department_id from employees;

-컬럼이 여러 개인 경우: DEPARTMENT_ID가 같더라도 JOB_ID가 다르면 중복값이 출력

--컬럼 2개인 경우
select distinct job_id, department_id from employees;

 

[실습2]

직원테이블에서 입사일 출력 후 행의 개수 확인

직원테이블에서 입사일 중복 제거 출력 후 행의 개수 확인

--직원테이블에서 입사일 출력 후 행의 개수 확인(107행)
select hire_date from employees;

--직원테이블에서 입사일 중복 제거 출력 후 행의 개수 확인(98행)
select distinct hire_date from employees;

 

7. 별칭 설정하기(AS)

1)SELECT 컬럼 별칭

--select 컬럼 별칭
select employee_id 직원id from employees;

2)SELECT 컬럼 “별칭”

--select 컬럼 "별칭"
select employee_id "직원id" from employees;

3)SELECT 컬럼 AS 별칭

--select 컬럼 AS 별칭
select employee_id AS 직원id from employees;

-현업에서 선호하는 방식. 별칭을 한눈에 파악할 수 있음

-별칭에 “ “를 쓰는 경우 JAVA의 문자열과 겹칠 수 있음>작업효율 떨어짐

-” “를 쓰는 경우: 별칭에 띄어쓰기가 들어가는 등의 특수사항이 있을 때

 

4)SELECT 컬럼 AS “별칭”

--select 컬럼 AS "별칭"
select employee_id AS "직원id" from employees;

 

[실습3]

직원테이블에서 입사일, 입사일 다음날을 '입사일', '입사일 다음날'로 별칭 출력하기

--직원 테이블에서 입사일, 입사일 다음날을 '입사일', '입사일 다음날'로 별칭 출력하기
select hire_date 입사일, hire_date+1 입사일다음날 from employees;
select hire_date "입사일", hire_date+1 "입사일 다음날" from employees;
select hire_date AS 입사일, hire_date+1 AS 입사일다음날 from employees;
select hire_date AS "입사일", hire_date+1 AS "입사일 다음날" from employees;

 

8. Null

-데이터의 값이 완전히 비어있는 상태

-값이 존재하지 않거나 정해지지 않은 것

-NULL이 아닌 경우(NULL !): 0, 공백

-NULL과 연산하면 결과 값은 NULL

 

[실습4]

--직원테이블에서 직원 ID, 급여, 연봉 출력
--단, 연봉은 AnnSal로 출력

select employee_id, salary, salary*12 AS "AnnSal"
from employees;

*salary가 비어있는 사람은 AnnSal도 null값이 나온다. null에 연산을 하면 결과값은 null이기 때문이다.

'데이터베이스' 카테고리의 다른 글

[DB]6. JOIN  (0) 2023.06.05
[DB]5. GROP BY&HAVING절  (0) 2023.06.01
[DB]4. Oracle 함수  (0) 2023.05.31
[DB]3. WHERE절  (0) 2023.05.30
[DB]1. 데이터베이스 개요  (0) 2023.05.28