지금 국비로 스프링기반으로 배우는 웹개발자 과정을 배우고 있다.
초반 수업 했던 공부는 낯썰어 많이 공부를 못했다가, 지금은 되게 후회중이다...
공부좀 더 할걸 그랬다면서... 그래서 제대로되게 공부를 하고자 이렇게 tistory를 시작했다.
기록을 하기 위해서다. 언제든지 다시 볼 수 있게끔.. 제대로 공부할것이다.
데이터베이스란?
- 데이터를 관리하는 시스템
SQL(Structured Query Language)이란?
- 다양한 객체를 생성 및 제어하는 역할을 한다
SQL 명령어 유형
유형 | 명령문 |
DQL : Data Query Language (질의어) | SELECT(데이터 검색 시 사용) |
DML : Data Manipulation Language (데이터 조작어) 데이터 변경 시 사용 |
INSERT(데이터 입력) UPDATE(데이터 수정) DELETE(데이터 삭제) |
DDL : Data Definition Language (데이터 정의어) 객체 생성 및 변경시 사용 |
CREATE(데이터베이스 생성) ALTER(데이터베이스 변경) DROP(데이터베이스 삭제) RENAME(데이터베이스 객체이름 변경) 더보기
TRUNCATE(데이터베이스 저장 공간 삭제) 선생님께 묻기 |
TCL : Transaction Control Language (트랜잭션 처리어) |
COMMIT(트랜잭션의 정상적인 종료 처리) ROLLBACK(트랜잭션 취소) SAVEPOINT(트랜잭션 내에 임시 저장점 설정) |
DCL : Data Control Language (데이터 제어어) |
GRANT(데이터베이스에 대한 일력의 권한 부여) REVOKE(데이터베이스에 대한 일련의 권한 취소) |
SELECT
-- 중복되는 부서 번호를 한 번씩만 출력하기
SELECT DISTINCT DEPTNO
FROM EMP;
특정 조건의 데이터만 조회하는 WHERE절
SELECT * COLUMN1, COLUMN2...,COLUMNN
FROM TABLE_NAME
WHERE 조건절;
조건절의 구성
WHERE SAL >= 500;
1.컬럼 2.연산자 3.비교대상값
-- 급여가(SAL)가 500이상인 사원 출력하기
SELECT *
FROM EMP
WHERE SAL >=500;
날짜데이터 조회
-- 입사일(HIREDATE)이 2019년 1월 1일 이전인 사원만 출력하기
SELECT *
FROM EMP
WHERE HIRDATE < TO_DATE('2019/01/01', 'YYYY/MM/DD');
논리연산자
연산자 | 의미 |
AND |
두 가지 조건을 모두 만족해야만 검색할 수 있습니다
-- 부서번호가 10이고, 직급이 '과장'인 사원만 출력하기 SELECT * FROM EMP WHERE DEPTNO=10 AND JOB='과장'; |
OR |
두 가지 조건 중에서 한 가지만 만족하더라도 검색할 수 있습니다.
-- 부서번호가 10이거나, 직급이 '과장'인 사원만 출력하기 SELECT * FROM EMP WHERE DEPTNO=10 OR JOB='과장'; |
NOT <> |
조건에 만족하지 못하는 것만 검색합니다.
-- NOT 연산자를 이용하여, 10번 부서에 소속된 사원만 제외하고 출력하기 SELECR * FROM EMP WHERE NOT DEPTNO=10;
-- <>연산자를 이용하여, 10번 부서에 소속된 사원만 제외하고 출력하기 SELECT * FROM EMP WHERE DEPTNO <> 10; |
-- 급여가 400에서 500사이인 사원 출력하기
SELECT *
FROM EMP
WHERE SAL >= 400 AND SAL <=500;
-- 급여가 400미만이거나 500초과인 사원 출력하기
SELECT *
FROM EMP
WHERE SAL < 400 OR SAL >500;
-- 커미션이 80이거나, 100이거나, 200인 사원 출력하기
SELECT *
FROM EMP
WHERE COMM = 80 OR COMM = 100 OR COMM = 200;
-- NOT BETWEEN AND 연산자를 이용하여, 급여가 400미만이거나 500초과인 사원 출력하기
SELECT *
FROM EMP
WHERE SAL NOT BETWEEN 400 AND 500;
IN연산자(~중 어느 하나만 만족하더라도 출력하도록 하는)
형식 : COLUMN_NAME IN(A, B, C)
-- IN연산자를 사용하여, 커미션이 80이거나, 100이거나, 200인 사원 출력하기
SELECT *
FROM EMP
WHERE COMM IN(80, 100, 200);