복습
- 지난 시간 INSERT INTO 까지
- 1program - 1user
DB를 배우는 목적
- Java에서 DBMS에 CRUD(JDBC, Java DataBase Connectivity)
준비물: table, 사용자, sequence(,뷰, index)
Read(SELECT, 조회)
- data를 원하는 목적에 맞게 탐색(filtering)
- 없는 항목 조회 시 ERROR!
SELECT POINT FROM PRODUCT;
- 조건, group, sort
> 일반 조회
전체 데이터 조회
SELECT * FROM TABLE_NAME;
특정 항목 조회
SELECT ITEM FROM TABLE_NAME
SELECT NAME, MADE, EXPIRE, EXPIRE - MADE FROM PRODUCT;
Alias(별칭)
SELECT NAME, MADE, EXPIRE, EXPIRE - MADE 유통기한 FROM PRODUCT;
SELECT NAME, MADE, EXPIRE, EXPIRE - MADE AS 유통기한 FROM PRODUCT;
> WHERE(Filter, 조건 조회)
AND, OR
- 다중 조건
WHERE TYPE = '과자' AND PRICE > 2000
NOT
- 조건 앞에 명시
-- NOT 조건 || NOT IN () || NOT LIKE
()
- 조건 결합
WHERE TYPE = '과자' OR (PRICE >= 1000 AND PRICE < 2000)
BETWEEN
문자 조건
- 일치 검색
- 유사 검색
- LIKE
- Wildcard(%, _) 사용
WHERE NAME LIKE '스크류%';
- REGEXP_LIKE(TARGET, 'REGEX');
- INSTR(TARGET, 'WORD')
TARGET에 WORD가 있다면 INDEX 반환(1~, 없으면 0)
+ 조건에 따른 속도
- 시작단어 filtering:
WHERE TARGET LIKE 'WORD%'
is better
- 특정단어 포함 filtering:
WHERE INSTR(TARGET, 'WORD') > 0
is better
> 날짜 조회
- 기본 형식 YYYY-MM-DD HH24:MI:SS
- 날짜끼리 산술, 비교연산 가능
EXTRACT(YEAR FROM MADE)
- YEAR, MONTH, DAY, HOUR, MINUTE, SECOND
- DATE를 원하는 서식의 문자열로 casting
TO_CHAR(MADE, 'YYYY-MM-DD HH24:MI:SS')
- 문자열을 DATE로 casting
TO_DATE('2023-01-26', 'YYYY-MM-DD')
- 시간을 지정해주지 않으면 0시 0분 0초로 초기화
SYSDATE
- 현재 시각의 DATE Object
SYSDATE - 365
, SYSDATE - 5/24/60
> 정렬
UPDATE(수정)
DELETE(삭제)
JDBC
- JDBC: 자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API