수민

[호붕싸 모각코 7차]

뽑삥 2025. 4. 4. 23:06
SQL 명령어의 종류

 

1. DDL (Data Definition Language): 데이터 정의
: DDL은 데이터베이스나 테이블의 구조를 정의하거나 변경하는 데 사용


• CREATE: 데이터베이스나 테이블을 생성

-- 데이터베이스 생성
CREATE DATABASE mydb;

-- 테이블 생성
CREATE TABLE books (
    id INT PRIMARY KEY,
    title VARCHAR(100),
    author VARCHAR(50),
    price DECIMAL(10, 2)
);


• ALTER: 테이블 구조를 변경

-- books 테이블에 author 열 추가
ALTER TABLE books ADD COLUMN author VARCHAR(50);

-- books 테이블에서 price 열 삭제
ALTER TABLE books DROP COLUMN price;

-- books 테이블에서 title 열의 데이터 타입을 변경
ALTER TABLE books MODIFY COLUMN title VARCHAR(150);


• DROP: 데이터베이스나 테이블을 삭제

-- books 테이블 삭제
DROP TABLE books;

-- mydb 데이터베이스 삭제
DROP DATABASE mydb;


• RENAME: 데이터베이스나 테이블 이름을 변경

-- books 테이블 이름을 book_list로 변경
RENAME TABLE books TO book_list;

-- mydb 데이터베이스 이름을 newdb로 변경
RENAME DATABASE mydb TO newdb;


• COMMENT: 데이터베이스 객체에 주석을 추가

-- books 테이블에 주석 추가
COMMENT ON TABLE books IS '책 정보를 저장하는 테이블';

-- books 테이블의 title 열에 주석 추가
COMMENT ON COLUMN books.title IS '책의 제목을 저장하는 열';


• TRUNCATE: 테이블의 모든 데이터를 삭제 (구조는 유지).

-- books 테이블의 모든 데이터 삭제
TRUNCATE TABLE books;

 


2. DML (Data Manipulation Language): 데이터 조작
: DML은 데이터베이스에 저장된 데이터를 조작하는 데 사용


• INSERT: 데이터를 추가

-- books 테이블에 새로운 책 정보를 추가
INSERT INTO books (bookname, price) VALUES ('SQL Guide', 20000);

-- 여러 행을 한 번에 추가
INSERT INTO books (bookname, price) 
VALUES 
    ('MySQL Basics', 15000),
    ('Advanced SQL', 25000);


• DELETE: 데이터를 삭제

-- 가격이 30000원 이상인 책을 books 테이블에서 삭제
DELETE FROM books WHERE price > 30000;

-- 책 제목이 'SQL Guide'인 데이터를 삭제
DELETE FROM books WHERE bookname = 'SQL Guide';

 

• UPDATE: 데이터를 수정

-- 'SQL Guide' 책의 가격을 25000원으로 수정
UPDATE books SET price = 25000 WHERE bookname = 'SQL Guide';

-- 모든 책의 가격에 10%를 인상
UPDATE books SET price = price * 1.1;


• MERGE: 데이터를 삽입하거나 업데이트 (조건에 따라)

-- books 테이블에 새로운 책을 삽입하거나 이미 존재하는 책의 가격을 업데이트
MERGE INTO books b
USING (SELECT 'SQL Guide' AS bookname, 22000 AS price FROM dual) new_data
ON (b.bookname = new_data.bookname)
WHEN MATCHED THEN
    UPDATE SET b.price = new_data.price
WHEN NOT MATCHED THEN
    INSERT (bookname, price) VALUES (new_data.bookname, new_data.price);


• CALL: PL/SQL이나 Java로 작성된 프로시저를 호출

-- 'update_book_price'라는 프로시저를 호출하여 책 가격을 수정
CALL update_book_price('SQL Guide', 23000);


• EXPLAIN PLAN: 쿼리 실행 계획을 확인

-- SELECT 쿼리 실행 계획 확인
EXPLAIN PLAN FOR 
SELECT * FROM books WHERE price > 20000;

-- 실행 계획을 조회
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);


• LOCK TABLE: 테이블을 잠가 다른 사용자가 접근하지 못하게 함

-- books 테이블을 잠그고 다른 사용자가 수정하지 못하게 함
LOCK TABLE books IN EXCLUSIVE MODE;

 

 

3. 쿼리: 데이터 조회
: 쿼리는 데이터를 조회하는 데 사용되며 가장 많이 사용되는 명령어는 SELECT임


• SELECT: 데이터를 조회

-- books 테이블에서 bookname과 price 열을 조회
SELECT bookname, price FROM books;


• DML과 혼동 주의: SELECT는 데이터를 조회하는 명령어로 DML이 아니라 별도의 “쿼리”로 분류

 

작성자 신수민
소 감 오늘 공부한 명령어들을 잘 활용하면 효율적으로 데이터 작업을 수행할 수 있을 것 같다.
일 시 2025. 4. 4. (금) 18:00 ~ 21:00
장 소 미래관 429호 자율주행스튜디오
참가자 명단 신수민, 임혜진, 배세은, 김윤희 (총 4명)
사 진

 

 

 


'수민' 카테고리의 다른 글

[호붕싸 모각코 9차]  (0) 2025.05.02
[호붕싸 모각코 8차]  (0) 2025.04.11
[호붕싸 모각코 6차]  (0) 2025.03.31
[호붕싸 모각코 5차]  (0) 2025.03.24
[호붕싸 모각코 4차]  (0) 2025.03.23