본문 바로가기
Programming/MySQL

MySQL Query 문 정리

by Rayched 2023. 5. 20.

1. Database

① DB 생성

CREATE DATABASE (DB이름);
#(DB이름)이라는 데이터베이스를 하나 생성한다.

 

② 전체 DB 조회

SHOW DATABASES;
#전체 데이터베이스를 조회한다.

 

③ DB 사용

USE (DB명);
#(DB명)이라는 데이터베이스를 사용, 선택한다.

 

④ DB 삭제

DROP DATABASE (DB명);
#(DB명)이라는 이름의 데이터베이스를 삭제한다.
#해당 DB가 없으면 에러 발생함.

DROP DATABASE IF EXISTS (DB명);
#IF EXISTS 절을 통해 삭제하려는 DB가 존재하지 않을 때
#발생하는 에러를 방지할 수 있다.
#Exist => 존재하다, 실존하다

2. Table

① Table 생성

CREATE TABLE article (id INT, title VARCHAR(100), `body` TEXT);
#create table 테이블명 (`컬럼1 이름` `데이터타입`, `컬럼2 이름` `데이터타입`);
#article이라는 테이블을 만들고, id, title, `body` Column도 같이 생성

② 전체 Table 조회 / 특정 Table 구조 확인

(1). DB 내 전체 Table 조회하기

SHOW TABLES;
#DB 내 전체 테이블 조회

a2라는 DB에 존재하는 테이블 목록을 확인한다.

 

(2). 특정 Table의 구조 확인

DESCRIBE article;
#describe `테이블 명`;
#"describe => desc"로 간략화 가능 
#article 테이블의 구조를 확인한다.

예제로 만든 article 테이블의 구조


③ Table 삭제

DROP TABLE article;
DROP TABLE IF EXISTS article;
#DROP TABLE (테이블 명);
#if exists 절을 통해 삭제하려는 DB나 Table이 존재하지 않아서 발생하는
#에러를 방지할 수 있다.

④ Table Column 추가 / 수정 / 삭제 (ALTER TABLE)

특정 테이블에서 Column을 추가하거나 혹은 기존에 존재하는 Column을 수정하거나 삭제하고 싶을 때

사용하는 것이 'ALTER TABLE' 구문이다.

여기서 Alter라는 단어는 "바꾸다.", "고치다."라는 뜻을 가지고 있다.

이를 통해서 해당 구문은 테이블을 바꾸거나 고치는 역할을 한다는 것을 알 수 있다.

 

(1). Column 추가

ALTER TABLE article ADD COLUMN regDate DATETIME NOT NULL;
#alter table (테이블명) add column (컬럼 명)(컬럼 타입);

수정 전 / 수정 후


(2). Column 수정

 - 컬럼 변경 (Modify)

#컬럼 타입 변경 (int → int unsigned)

ALTER TABLE article MODIFY COLUMN id INT UNSIGNED NOT NULL;
#ALTER TABLE (테이블명) MODIFY COLUMN (수정할 컬럼명)(수정할 컬럼 타입);
#modify => 수정하다, 바꾸다

수정 전 / 수정 후

 

 - 컬럼 이름까지 변경

#컬럼 이름까지 변경
#이름: id → user_id
#타입: int → int unsigned

ALTER TABLE article CHANGE COLUMN id user_id INT UNSIGNED NOT NULL;
#ALTER TABLE (테이블명) CHANGE COLUMN (수정 전 컬럼명)(수정 후 컬럼명)(수정할 컬럼 타입);

수정 전 / 수정 후


(3). Column 삭제

#컬럼 삭제
#regDate 컬럼을 삭제해주세요.

ALTER TABLE article DROP COLUMN regDate;
#ALTER TABLE (테이블명) DROP COLUMN (삭제할 컬럼명)

수정 전 / 수정 후


3. Data

① 데이터 추가

#데이터 추가
#(제목1, 내용1, 작성 일자 현재)
#(제목2, 내용2, 작성 일자 현재)
#(제목3, 내용3, 작성 일자 2023.05.21)

INSERT INTO article SET title = '제목1', `body` = '내용1', regDate = NOW();
INSERT INTO article SET title = '제목2', `body` = '내용2', regDate = NOW();
INSERT INTO article SET title = '제목3', `body` = '내용3', regDate = '2023-05-21 00:00:00';
#INSERT INTO (테이블명) SET (컬럼 명1) = (데이터1), (컬럼 명2) = (데이터2);

/* 
article table
[id] [title] [`body`] [regDate]
*/

② 데이터 조회

(1). 데이터 부분 조회 (title과 regDate만 조회하기)

#제목과 작성일만 조회하기 (title, regDate)
SELECT title, regDate FROM article;

#SELECT (컬럼 명) FROM (테이블 명)

title, regDate 컬럼에 입력한 데이터만 조회했다.

 

(2). 데이터 전체 조회 (전체 컬럼에 입력된 데이터 조회)

#전체 (*)
SELECT * FROM article;

#SELECT (컬럼 명) FROM (테이블 명)
#(컬럼 명)에 '*'를 추가하면, 테이블 내에 존재하는
#전체 컬럼의 내용을 조회할 수 있다.

article 테이블의 전체 컬럼 내용을 조회하였다.


③ 데이터 수정

#데이터 수정하기 (Update)
#('제목1' 게시물 내용을 "첫번째 게시물입니다."로 수정하기)

UPDATE article SET `body` = '첫번째 게시물입니다.' WHERE id = 1;
#UPDATE (테이블명) SET (수정할 컬럼 명) = (수정할 내용);

'제목1' 게시물의 내용을 수정하였다. (전 / 후)


④ 데이터 삭제

#데이터 삭제하기 (Delete)
#id가 3번인 게시물 삭제하기

DELETE FROM article WHERE id = 3;
#DELETE FROM (테이블 명)
#WHERE (조건식)

게시물 id가 3번인 데이터를 삭제하였다. (전 / 후)

여기서 사용한 WHERE 절은 SELECT, UPDATE, DELETE 구문 등에서

특정 데이터에 대한 조건을 설정할 때 사용하는 절이다.

WHERE 뒤에 오는 조건식이 1, 참이면 해당 구문을 실행한다.