티스토리 뷰
DML 이란?
Data Manipulation Language의 약어이며 데이터 조작어라고 불립니다.
그래서 DML은 데이터를 조작하기 위한 용도입니다.
SELECT
표현법
칼럼 값은 소문자로 작성하고 나머지는 대문자로 작성하는 것이 관례입니다.
-- [사용법]
SELECT 컬럼 명[, 컬럼명...]
FROM 테이블 명
WHERE 조건식;
-- 작동 순서 : FROM → WHERE → SELECT
칼럼 값만 소문자(Java 연동할 때 데이터 넘겨주기 편하니까), 나머지는 대문자가 관례
DISTINCT
조회하고자 하는 칼럼에 중복된 값을 제외하고 딱 한번만 조회하고자 할 때 사용한다.
해당 칼럼명 앞에 기술하면 된다. 단, SELECT 절에 DISTINCT 구문은 단 한 개만 가능하다.
-- [표현법]
DISTINCT 칼럼명;
SELECT
DISTINCT 칼럼1, 칼럼2
FROM 테이블 명;
SELECT - WHERE
BETWEEN
비교하려는 값이 지정한 범위 안에 경계도 포함하여 가져온다.
SELECT
칼럼명1,
칼럼명2
FROM 테이블 명
WHERE
칼럼명 BETWEEN 3500000 AND 6000000;
-- 3500000 이상 6000000 이하의 값
LIKE, NOT LIKE
와일드 카드는 '%', '_'를 사용하고 있다.
와일드 카드 | 설명 |
% | 0 글자 이상을 의미한다. 비교할 대상 칼럼명 LIKE '문자%' → 칼럼 값 중에 '문자'로 시작하는 것을 조회한다. 비교할 대상 칼럼명 LIKE '%문자' → 칼럼 값 중에 '문자'로 끝나는 것을 조회한다. 비교할 대상 칼럼명 LIKE '%문자%' → 칼럼 값 중에 '문자'로 포함되는 것을 조회한다. |
_ | 딱 1글자를 의미한다. 비교할 대상 칼럼명 LIKE '_문자' → 해당 칼럼 값 중에 무조건 1글자가 존재하는 경우 조회 비교할 대상 칼럼명 LIKE '__문자' → 해당 칼럼 값 중에 무조건 2글자가 존재하는 경우 조회 |
-- NOT LIKE문
SELECT
칼럼명1,
칼럼명2
FROM 테이블 명
WHERE
NOT 칼럼명 LIKE '이%';
NULL, NOT NULL
해당 값이 NULL인지 아닌지 판단한다.
-- [표현법]
비교대상 칼럼 IS NULL -- 칼럼값이 NULL인 경우
비교대상 칼럼 IS NOT NULL -- 칼럼값이 NULL이 아닌 경우
-- NULL 사용
SELECT
칼럼명1
FROM 테이블 명
WHERE
칼럼명 IS NULL;
IN
비교 대상 칼럼 값에 내가 제시한 목록들(값들) 중에서 하나라도 일치하는 값이 있는지 판단한다.
-- [표현법]
비교대상 칼럼 IN (값1, 값2, 값3 ...)
SELECT
칼럼명1,
칼럼명2,
칼럼명3
FROM 테이블명
WHERE
칼럼명 IN (데이터1, 데이터2);
SELECT - ORDER BY
정렬을 해주는 기능입니다.
- ASC : 오름차순 (생략시 기본 값)
- DESC : 내림차순
정렬할 때 NULL이 있으면?
- NULLS FIRST : 해당 NULL 값들을 앞으로 배치하겠다. (내림 차순 정렬일 경우 기본값이다.)
- NULLS LAST : 해당 NULL 값들을 뒤로 배치하겠다. (오름차순 정렬일 경우 기본값이다.)
SELECT
emp_name AS "직원명",
salary AS "급여",
bonus AS "보너스"
FROM EMPLOYEE
ORDER BY BONUS DESC NULLS LAST, SALARY, EMP_ID DESC;
-- 1)보너스 내림차순이면서 NULL값 마지막으로 가고 같은값이면 2)급여로 오름차순, 3) 사번 내림차순
INSERT
데이터를 추가하는 구문이다.
- 만약 값을 부족하게 넣는 경우 : NOT ENOUGH VALUE 오류 발생!
- 만약 값을 더 많이 넣는 경우 : TOO MANY VALUES 오류 발생!
데이터를 추가하고 COMMIT을 해야 데이터가 완전히 들어간다.
[표현법 1번]
INSERT INTO 테이블명 VALUES(첫번째 칼럼의 값, 두번째 칼럼의 값, ...)
EX)
INSERT INTO MEMBER VALUES('user01','pass01','한국','1990-10-06');
[표현법 2번]
INSERT INTO 테이블명 (칼럼명1, 칼럼명2, 칼럼명3) VALUES(값1, 값2, 값3);
EX)
INSERT INTO MEMBER (MEM_ID, MEM_PWD, MEM_NAME) VALUES('user01','pass01','한국');
[표현법 3번]
INSERT INTO 테이블명 (서브쿼리);
Tip) 만약에 여러행을 한번에 INSERT 하고싶으면 표현법 2번에 INTO 이후로 , 를 사용하여 여러행을 넣을 수 있다.
UPDATE
Tip) WHERE 절 생략은 가능하나 생략 시 "모든" 행의 데이터가 변경되므로 주의 하도록 하자.
데이터를 수정하는 구문
[표현법]
UPDATE 테이블명
SET 칼럼명 = 바꿀값,
칼럼명 = 바꿀값,
칼럼명 = 바꿀값, ... --여러개의 칼럼 값들을 동시 변경 가능
WHERE 조건;
DELETE
Tip) WHERE 절 생략은 가능하나 생략 시 "모든" 행의 데이터가 삭제되므로 주의하자!!!!!
데이터를 행 단위로 삭제하는 구문
[표현법]
DELETE FROM 테이블명
WHERE 조건;
감사합니다.
'데이터 베이스' 카테고리의 다른 글
[Database] DDL 데이터 정의어 : 데이터베이스의 구조를 선언하다. (0) | 2023.11.16 |
---|
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Front
- 프론트
- Fetch
- 오라클
- 코딩테스트
- AJAX
- 개발자
- git
- java
- JavaScript
- Mac
- spring
- 템플릿
- 개발블로그
- 깃허브 액션
- Cors
- 네트워크
- 데이터 베이스
- 디자인패턴
- 자바스크립트
- DBeaver
- Spring Security
- 비동기
- 개발
- 프로세스
- 개발환경
- aws
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함