230803 TIL Chapter 17. 데이터베이스 ( DB ) , DML , SELECT

최규연·2023년 8월 3일
0

TIL

목록 보기
17/57

어제 자바가 끝나 오늘부터는 DB를 나가기 시작한다.

먼저 간단하게 용어 의미를 알고 가자면

  • DATA : 관찰 결과로 나타난 정량적, 정성적인 실제 값을 뜻한다
  • 정보 : 데이터를 기반으로 의미를 부여한 것
  • Data Base : 한 조직의 여러 응용시스템들이 공용으로 사용되기 위해 최소 중복으로 통합, 저장된 운영 데이터의 집합

DBMS ( Data Base Management System )

DBMS란 데이터 추출, 조작, 정의, 제어를 할 수 있게 해주는 데이터 베이스 전용관리 프로그램이다.

DBMS 기능 4가지

  1. 데이터 추출 = 데이터 조회
  2. 데이터 조작 ( DML ) = 데이터 삽입, 수정, 삭제
  3. 데이터 정의 ( DDL ) = 데이터 구조(table)에 대한 삭제, 변경
  4. 데이터 제어 ( DCL ) = 데이터 보안, 무결성

DBMS 사용 이점

  1. 데이터 독립화
  2. 데이터 중복 최소화, 데이터 무결성(일관성, 정확성) 보장
  3. 데이터 보안 향상
  4. 관리 편의성 향상

DML ( SELECT )

관계형 데이터베이스에서 데이터를 조회하거나 조작하기 위해 사용하는 표준 검색 언어로 SQL을 사용할 것이다.
원하는 데이터를 찾는 방법이나 절차를 기술하는 것이 아닌 조건을 기술하여 작성한다.

SELECT

데이터를 조회한 결과를 Result Set이라고 하는데 SELECT구문에 의해 조회된 행들의 집합을 의미한다.
Result Set은 0개 이상의 행이 포함 될 수 있고, 특정한 기준에 의해 정렬도 가능하다.
한 테이블의 특정 컬럼, 특정 행, 특정 행/컬럼 또는 여러 테이블의 특
정 행/컬럼 조회가 가능하다.

[작성법]

SELECT 컬럼명 [, 컬럼명, ...]
FROM 테이블명
WHERE 조건식;

날짜 (DATE) 타입 조회

SYSDATE : 시스템상의 현재 시간(날짜)를 나타내는 상수

SELECT SYSDATE FROM DUAL;
-- DUAL (DUmy tAbLe) 테이블 : 가짜 테이블(임시 조회용 테이블)

산술 연산시 일단위로 계산이 됌.


컬럼 별칭 지정

컬럼명 AS 별칭 : 별칭 띄어쓰기 X, 특수문자 X, 문자만 가능
컬럼명 AS "별칭" : 별칭 띄어쓰기, 특수문자, 문자 모두 가능
AS 생략 가능


리터럴

JAVA 리터럴 : 값 자체를 의미
DB 리터럴 : 임의로 지정한 값을 기존 테이블에 존재하는 값처럼 사용하는 것 --> (필수) DB의 리터럴 표기법은 '' 홑따옴표


DISTINCT

DISTINCT : 조회 시 컬럼에 포함된 중복 값을 한번만 표기
주의사항 1) DISTINCT 구문 SELECT 마다 딱 한번씩만 작성 가능
주의사항 2) DISTINCT 구문 SELECT 제일 앞에 작성되어야 한다.


해석 순서 (번호 순)

3. SELECT 절 : SELECT 컬럼명
1. FROM 절 : FROM 테이블명
2. WHERE 절(조건절) : WHERE 컬럼명 연산자 값;
4. ORDER BY 컬럼명 | 별칭 | 컬럼 순서 [ASC | DESC] [NULLS FIRST | LAST]

연결 연산자

'||'를 사용하여 여러 컬럼을 하나의 컬럼인 것처럼 연결하거나 컬럼과 리터럴을 연결한다.


대입 연산자, 논리 연산자

대입 연산자 : :=
논리 연산자 : AND, OR, NOT


비교 연산자

비교 연산자 : >, <, >=, <=, = (같다), !=, <> (같지 않다)
BETWEEN 숫자 X AND 숫자 Y = X 이상 Y 이하

LIKE

비교하려는 값이 특정한 패턴을 만족시키면 조회하는 연산자
[작성법]

WHERE 컬럼명 LIKE '패턴이 적용된 값'
 LIKE의 패턴을 나타내는 문자(와일드 카드)
--> '%' : 포함
--> '_' : 글자수

'%' 예시
-- 'A%' : A로 시작하는 문자열
-- '%A' : A로 끝나는 문자열
-- '%A%' : A를 포함하는 문자열

'_' 예시
-- 'A_' : A로 시작하는 두 글자 문자열
-- '____A' : A로 끝나는 5글자 문자열
-- '__A__' : 3번째 문자가 A인 다섯글자 문자열
-- '_____' : 다섯글자 문자열

ESCAPE

ESCAPE 문자 뒤에 작성된 _ 는 일반 문자로 탈출한다는 뜻
#, ^ 사용가능
EX)

SELECT EMP_NAME, EMAIL
FROM EMPLOYEE
WHERE EMAIL LIKE '___#_%' ESCAPE '#';
-- WHERE EMAIL LIKE '___^_%' ESCAPE '^'; 위와 같은 문장

IN

비교하려는 값과 목록에 작성괸 값 중 일치하는 것이 있으면 조회하는 연산자

[작성법]

WHERE 컬럼명 IN(1,2,3...)

WHERE 컬럼명 = '값'
		OR 컬럼명 = '값2'
		OR 컬럼명 = '갑3';

NULL 처리 연산자

JAVA에서 NULL : 참조하는 객체가 없음을 의미하는 값
DB에서 NULL : 컬럼에 값이 없음을 의미하는 값

1) IS NULL : NULL인 경우 조회
2) IS NOT NULL : NULL이 아닌 경우

SELECT EMP_ID, EMP_NAME, DEPT_CODE
FROM EMPLOYEE
WHERE DEPT_CODE NOT IN('D1', 'D6', 'D9') -- 12명
OR DEPT_CODE IS NULL; -- 부서코드 없는 2명 포함

ORDER BY 절

SELECT문의 조회 결과 (RESULT SET)를 정렬할 때 사용하는 구문
SELECT문 해석 시 가장 마지막에 해석된다!

3. SELECT 절
1. FROM 절
2. WHERE 절
4. ORDER BY 컬럼명 | 별칭 | 컬럼순서

연산자 우선 순위

0개의 댓글