어제 자바가 끝나 오늘부터는 DB를 나가기 시작한다.
먼저 간단하게 용어 의미를 알고 가자면
DBMS란 데이터 추출, 조작, 정의, 제어를 할 수 있게 해주는 데이터 베이스 전용관리 프로그램이다.
관계형 데이터베이스에서 데이터를 조회하거나 조작하기 위해 사용하는 표준 검색 언어로 SQL을 사용할 것이다.
원하는 데이터를 찾는 방법이나 절차를 기술하는 것이 아닌 조건을 기술하여 작성한다.
데이터를 조회한 결과를 Result Set이라고 하는데 SELECT구문에 의해 조회된 행들의 집합을 의미한다.
Result Set은 0개 이상의 행이 포함 될 수 있고, 특정한 기준에 의해 정렬도 가능하다.
한 테이블의 특정 컬럼, 특정 행, 특정 행/컬럼 또는 여러 테이블의 특
정 행/컬럼 조회가 가능하다.
[작성법]
SELECT 컬럼명 [, 컬럼명, ...]
FROM 테이블명
WHERE 조건식;
SYSDATE : 시스템상의 현재 시간(날짜)를 나타내는 상수
SELECT SYSDATE FROM DUAL;
-- DUAL (DUmy tAbLe) 테이블 : 가짜 테이블(임시 조회용 테이블)
산술 연산시 일단위로 계산이 됌.
컬럼명 AS 별칭 : 별칭 띄어쓰기 X, 특수문자 X, 문자만 가능
컬럼명 AS "별칭" : 별칭 띄어쓰기, 특수문자, 문자 모두 가능
AS 생략 가능
JAVA 리터럴 : 값 자체를 의미
DB 리터럴 : 임의로 지정한 값을 기존 테이블에 존재하는 값처럼 사용하는 것 --> (필수) DB의 리터럴 표기법은 '' 홑따옴표
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 이하
비교하려는 값이 특정한 패턴을 만족시키면 조회하는 연산자
[작성법]
WHERE 컬럼명 LIKE '패턴이 적용된 값'
LIKE의 패턴을 나타내는 문자(와일드 카드)
--> '%' : 포함
--> '_' : 글자수
'%' 예시
-- 'A%' : A로 시작하는 문자열
-- '%A' : A로 끝나는 문자열
-- '%A%' : A를 포함하는 문자열
'_' 예시
-- 'A_' : A로 시작하는 두 글자 문자열
-- '____A' : A로 끝나는 5글자 문자열
-- '__A__' : 3번째 문자가 A인 다섯글자 문자열
-- '_____' : 다섯글자 문자열
ESCAPE 문자 뒤에 작성된 _ 는 일반 문자로 탈출한다는 뜻
#, ^ 사용가능
EX)
SELECT EMP_NAME, EMAIL
FROM EMPLOYEE
WHERE EMAIL LIKE '___#_%' ESCAPE '#';
-- WHERE EMAIL LIKE '___^_%' ESCAPE '^'; 위와 같은 문장
비교하려는 값과 목록에 작성괸 값 중 일치하는 것이 있으면 조회하는 연산자
[작성법]
WHERE 컬럼명 IN(값1, 값2, 값3...)
WHERE 컬럼명 = '값'
OR 컬럼명 = '값2'
OR 컬럼명 = '갑3';
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명 포함
SELECT문의 조회 결과 (RESULT SET)를 정렬할 때 사용하는 구문
SELECT문 해석 시 가장 마지막에 해석된다!
3. SELECT 절
1. FROM 절
2. WHERE 절
4. ORDER BY 컬럼명 | 별칭 | 컬럼순서