본문 바로가기
Programming/Database

[Database] DML(Data Manipulation Language)

by 공부합시다홍아 2023. 12. 1.
 

Oracle Database 설치 및 동작 확인

설치 방법 Database Software Downloads | Oracle 대한민국 Run the Oracle Database Enterprise Edition Container Image with Docker Contains Oracle Database Enterprise Edition 21c running on Oracle Linux 7. Ideal for macOS, Linux, and other platforms. U

hong-study.tistory.com


데이터 조작 언어 ( DML, Data Manipulation Language )

데이터베이스 내의 데이터를 조작하는 데 사용되는 SQL(Structured Query Language)의 하위 집합이다. 
DML 문은 데이터베이스에서 데이터를 삽입, 업데이트 및 삭제하는 데 사용한다. 

  • SELECT : 데이터 조회
  • INSERT : 데이터 삽입
  • UPDATE : 데이터 수정
  • DELETE : 데이터 삭제

SELECT 

이 문은 데이터베이스에 있는 하나 이상의 테이블에서 데이터를 검색하는 데 사용된다. 

 SELECT * FROM;
SELECT * FROM EMPLOYEES;
SELECT * FROM DEPARTMENTS;
SELECT * FROM JOBS;

SELECT EMPLOYEE_ID, FIRST_NAME, EMAIL FROM EMPLOYEES;

SELECT HIRE_DATE, LAST_NAME, EMPLOYEE_ID FROM EMPLOYEES;

SELECT 문 내에서 숫자의 연산이 가능하다.
SELECT FIRST_NAME, SALARY, SALARY+10000 FROM EMPLOYEES;

SELECT FIRST_NAME, SALARY, SALARY-5000 FROM EMPLOYEES;

SELECT FIRST_NAME, SALARY, SALARY*2 FROM EMPLOYEES;

SELECT FIRST_NAME, SALARY, SALARY/2 FROM EMPLOYEES;
Column alias : 별칭 설정
SELECT FIRST_NAME AS 이름, SALARY AS 급여,SALARY+SALARY*0.1 AS "최종 급여" FROM EMPLOYEES;
문자열 연결(더하기) : \\  두 개를 이용하여 연결
SELECT FIRST_NAME ||' '|| LAST_NAME FROM EMPLOYEES;
DISTINCT 절 : 중복되는 행을 제거
SELECT DISTINCT FIRST_NAME FROM EMPLOYEES;

SELECT DISTINCT FIRST_NAME, LAST_NAME, DEPARTMENT_ID FROM EMPLOYEES;
ROWID : 데이터의 주소를 반환
ROWNUM : 쿼리에 의해 출력되는 행의 번호를 출력
SELECT FIRST_NAME, ROWID, ROWNUM FROM EMPLOYEES;

WHERE : 조건 절
SELECT FIRST_NAME, LAST_NAME, JOB_ID FROM EMPLOYEES WHERE JOB_ID = 'IT_PROG';

SELECT * FROM EMPLOYEES WHERE FIRST_NAME = 'steven';

SELECT * FROM EMPLOYEES WHERE SALARY >= 15000;

SELECT * FROM EMPLOYEES WHERE SALARY < 10000;

SELECT * FROM EMPLOYEES WHERE DEPARTMENT_ID <> 100;

SELECT * FROM EMPLOYEES WHERE HIRE_dATE = '03/06/17';
BETWEEN AND 연산자 ( 이상 이하 표현 )
SELECT * FROM EMPLOYEES WHERE SALARY BETWEEN 10000 AND 15000;

SELECT * FROM EMPLOYEES WHERE HIRE_DATE BETWEEN '03/03/01' AND '08/03/01';
IN 절 : 목록에 있는 값들과 비교
SELECT * FROM EMPLOYEES WHERE DEPARTMENT_ID IN(80,90,100);
SELECT * FROM EMPLOYEES WHERE JOB_ID IN('FI_ACCOUNT', 'SA_MAN');
LIKE
검색 스트링 값에 대한 와일드카드 검색을 위해
▶ 검색 조건은 리터럴 문자나 숫자를 포함할 수 있다.
▶ %(percent)는 문자가 없거나 또는 하나 이상을 뜻함
▶ _(under score)는 하나의 문자를 나타낸다.
SELECT * FROM EMPLOYEES WHERE HIRE_DATE LIKE '03%';
>>> 03으로 시작하는 모든 값 출력

SELECT * FROM EMPLOYEES WHERE HIRE_DATE LIKE '%01';
>>> 01로 끝나는 모든 값 출력

SELECT * FROM EMPLOYEES WHERE HIRE_DATE LIKE '%05%';
>>> 05가 포함된 모든 단어 출력

SELECT * FROM EMPLOYEES WHERE JOB_ID LIKE '%MAN%';
>>> 해당 문자가 포함된 모든 단어 출력

SELECT * FROM EMPLOYEES WHERE HIRE_DATE LIKE '___05%';
>>> 네번째 글자가 05로 시작하는 모든 단어 출력

SELECT * FROM EMPLOYEES WHERE EMAIL LIKE '_A%';
>>> 두 번째 글자가 A로 시작하는 모든 단어 출력
 INSERT

이 문은 테이블에 새로운 데이터를 삽입하는 데 사용된다.

INSERT INTO 고객(ID, 이름, 주소) VALUES (1, 'John Smith', '123 Main St');
UPDATE

이 문은 테이블의 기존 데이터를 수정하는 데 사용된다.

UPDATE SET 주소 = '456 Park Ave' WHERE id = 1;
DELETE

이 문은 테이블에서 데이터를 삭제하는데 사용된다.

DELETE FROM WHERE id = 1;

 

728x90

'Programming > Database' 카테고리의 다른 글

[Database] 함수 : 문자형  (0) 2023.12.01
[Database] DML TEST  (0) 2023.12.01
Oracle Database 설치 및 동작 확인  (0) 2023.11.30
데이터베이스 9 : 제약조건  (0) 2020.06.11
데이터베이스8 : 인덱스와 시퀀스  (0) 2020.06.10