BackEnd/Database

[DB] SQL의 CRUD 구현 쿼리 (Feat. DML)

ryuneng 2025. 1. 20. 00:01
반응형

# 목적

: SQL의 CRUD 구현 쿼리와 사용예시 간단 정리




CRUD 란?

- Create(생성), Read(읽기), Update(갱신), Delete(삭제)의 약자
- 데이터베이스를 다루기 위한 4가지 작업




SQL의 CRUD 구현 쿼리

- SQL에서는 DML을 이용해 CRUD 작업을 구현함
- MVC패턴에서 DML을 구현하는 클래스 : DAO(Data Access Object) 클래스
* DML(Data Manipulation Language, 데이터 조작 언어) - SQL 명령어

- CRUD / DML 비교

CRUD 이름 기능 DML 명령어
Create 생성 INSERT
Read 읽기 SELECT
Update 갱신 UPDATE
Delete 삭제 DELETE




SQL 주요 쿼리

1. SELECT

- 테이블의 데이터 조회
- 사용법)

-- 1. 지정된 테이블의 모든 행, 모든 열 조회
SELECT *
FROM 테이블명;

-- 2. 지정된 테이블의 모든 행, 지정된 열 조회
SELECT 컬럼명, 컬럼명, 컬럼명, ... 컬럼명
FROM 테이블명;

-- 3. SELECT절에서 사칙연산 수행 가능
-- * 사칙연산에 사용되는 컬럼은 해당 컬럼의 값이 숫자값이어야 함
SELECT 컬럼명*숫자, 컬럼명*컬럼명, ...
FROM 테이블명;

-- 4. 컬럼에 별칭(Alias) 부여하기
SELECT 컬럼명 AS 별칭, 컬럼명 AS 별칭, ...
FROM 테이블명;

SELECT 컬럼명 별칭, 컬럼명 별칭, 컬럼명 별칭, ...
FROM 테이블명;

- 사용예시)

-- 1. 직원 테이블의 모든 행, 모든 열 조회하기
SELECT *
FROM EMPLOYEES;

-- 2. 직원 테이블의 직원아이디, 직원이름, 급여 조회하기
SELECT EMPLOYEE_ID, FIRST_NAME, SALARY
FROM EMPLOYEES;

-- 3. 직원 테이블에서 직원아이디, 직원이름, 급여, 연봉 조회하기
SELECT EMPLOYEE_ID, FIRST_NAME, SALARY, SALARY*12
FROM EMPLOYEES;

-- 4. 직원 테이블에서 직원아이디, 직원이름, 급여, 연봉 조회하기
-- 연봉은 급여*12로 계산한다.
-- 연봉의 별칭 : ANNUAL_SALARY
SELECT EMPLOYEE_ID, FIRST_NAME, SALARY, SALARY*12 ANNUAL_SALARY
FROM EMPLOYEES;

2. INSERT

- 테이블에 새로운 데이터 행 추가
- 사용법)

INSERT INTO 테이블명 (컬럼명, 컬럼명, 컬럼명)
VALUES              (값,    값,    값);
-- 생략된 컬럼에는 NULL 값이 저장되거나, 기본값이 저장된다.

- 사용예시)

INSERT INTO SAMPLE_BOOKS
(BOOK_NO, BOOK_TITLE, BOOK_WRITER, BOOK_PRICE)
VALUES
(10, '자바의 정석', '남궁성', 32000);

3. UPDATE

- 테이블의 데이터 변경
- 사용법)

UPDATE 테이블명
SET
    컬럼명 = 변경값,
    컬럼명 = 변경값,
    ...
[WHERE 조건식]
-- WHERE절 생략 시, 테이블의 모든 행에 대해서 지정된 컬럼의 값이 변경됨
-- WHERE절이 있는 경우, 조건식을 만족하는 행에 대해서만 지정된 컬럼의 값이 변경됨

- 사용예시)

-- 도서 테이블에서 책번호가 10인 책의 재고수량을 9권으로 변경하기
UPDATE SAMPLE_BOOKS
SET
    BOOK_STOCK = 9
WHERE BOOK_NO = 10;

-- 도서 테이블에서 책번호 12인 책의 가격을 10% 할인하고, 재고수량 1 감소시키기
UPDATE SAMPLE_BOOKS
SET
    BOOK_PRICE = BOOK_PRICE*0.9,
    BOOK_STOCK = BOOK_STOCK -1
WHERE BOOK_NO = 12;

4. DELETE

- 테이블에 저장된 특정 데이터 행 삭제
- 사용법)

DELETE FROM 테이블명
[WHERE 조건식]
-- WHERE절 생략 시, 테이블의 모든 행이 삭제됨
-- WHERE절이 있는 경우, 조건식을 만족하는 행만 삭제됨

- 사용예시)

-- 도서 테이블에서 책번호가 10인 책 정보(행) 삭제하기
DELETE FROM SAMPLE_BOOKS
WHERE BOOK_NO = 10;

5. CREATE

- 새로운 데이터베이스 객체 생성
- 사용법)

CREATE TABLE 테이블명 (
    컬럼명 데이터타입 제약조건,
    컬럼명 데이터타입,
    컬럼명 데이터타입(사이즈),
    컬럼명 데이터타입 DEFAULT 기본값
)

- 사용예시)

CREATE TABLE SAMPLE_BOOKS (
    BOOK_NO       NUMBER(6) PRIMARY KEY,
    BOOK_TITLE    VARCHAR2(255) NOT NULL,
    BOOK_WRITER   VARCHAR2(255),
    BOOK_PRICE    NUMBER(7, 0)  NOT NULL,
    BOOK_STOCK    NUMBER(3, 0)  DEFAULT 10,
    BOOK_REG_DATE DATE          DEFAULT SYSDATE
);

 


< 해당 글은 velog에서 이전하며 옮겨온 글로, 가독성이 좋지 않을 수 있는 점 양해 부탁드립니다. >

🔗 velog 버전 보기 : https://velog.io/@ryuneng2/DB-SQL-CRUD-DML