[DB] 문법 정리

Yumya's record·2025년 3월 19일

SKALA

목록 보기
10/25
post-thumbnail

☄️ DB 문법 정리 ☄️

CREATE

테이블 생성
컬럼 이름, 타입, 제약 사항, 기본키/외래키 정의

CREATE TABLE <table_name> (
	<column_name> <type|table_constraint>
)


ex.
CREATE TABLE users (
	user_id INT PRIMARY KEY
    user_name VARCHAR NOT NULL,
    user_age BIGINT NULL,
    user_likes BIGINT DEFAULT 0,
    FOREIGN KEY (board_id) REFERENCES boards(board_id)
)

SELECT

테이블, 데이터 조회

SELECT <columns> FROM <table_name> <conditions>


ex.
SELECT * FROM users //전체 유저 조회
SELECT * FROM users WHERE user_name = '예시'

ALTER

ADD

컬럼(속성) 추가

ALTER TABLE <table_name> ADD COLUMN <column_name> <type>


ex.
ALTER TABLE users ADD COLUMN user_nickname VARCHAR

MODIFY

컬럼 변경

ALTER TABLE <table_name> MODIFY COLUMN <new_type|contraint>


ex.
ALTER TABLE users MODIFY COLUMN user_age INT NOT NULL

CHANGE

컬럼 이름 변경

ALTER TABLE <table_name> CHANGE COLUMN <pre_column_name> <new_column_name> <type|table_constraint>


ex.
ALTER TABLE users CHANGE COLUMN user_likes likes BIGINT DEFAULT 0

DROP

컬럼 삭제

ALTER TABLE <table_name> DROP COLUMN <column_name>


ex.
ALTER TABLE users DROP COLUMN like

RENAME

테이블 이름 변경

ALTER TABLE <table_name> RENAME <new_table_name>


ex.
ALTER TABLE users RENAME user_tb

INSERT

데이터(행) 삽입

INSERT INTO <table_name> (<columns>) VALUES (<values>)


ex.
INSERT INTO user_tb(user_name, user_age) VALUES ('예시', 100) 

UPDATE

데이터(행) 수정

UPDATE <table_name> SET <column_name> = <new_value> WHERE <condition>


ex.
UPDATE user_tb SET user_age = 25 WHERE user_name = '예시'

DELETE

데이터 삭제

DELETE FROM <table_name> WHERE <condition>


ex.
DELETE FROM user_tb WHERE user_name = 예시

DROP

테이블 삭제

DROP TABLE <table_name>

ex.
DROP TABLE user_tb

VIEW

가상 테이블

CREATE VIEW <view_name> AS <query> WITH CHECK OPTION


ex.
CREATE VIEW user_view AS SELECT * FROM user_tb WHERE user_id < 10 WITH CHECK OPTION

WITH CHECK OPTION

제약조건을 이용해 데이터 필터링
뷰 생성 시 WHERE 조건절에 사용된 컬럼에 적용
WHERE 조건절에 사용된 컬럼값 변경을 막아 동일한 뷰를 공유하도록 함

INDEX

테이블 FK에 인덱스를 생성

CREATE INDEX <index_name> ON <table_name> (<column>)


ex.
CREATE INDEX idx_user_name ON user_tb(user_name)

GRANT

권한 부여

GRANT <privileges> ON <schema> TO <user>
GRANT <privileges> ON <schema> TO <user> WITH GRANT OPTION


ex.
GRANT ALL PRIVILGES TO 'user'@'%' // user에게 대한 모든 권한 부여
GRANT SELECT, UPDATE ON db.* TO developer WITH GRANT OPTION
// 개발자에게 db에 대한 select, update 권한 부여,
// 이때 개발자는 다른 사용자에게 select, update 권한 부여 가능

WITH GRANT OPTION

권한을 부여 받는 사람이 다른 사용자에게 해당 권한 부여가 가능하도록 하는 설정


참고-MySQL ALTER

profile
🍀 ٩(ˊᗜˋ*)و 🍀

0개의 댓글