MySQL 기초 문법 정리

Taeha Kim·2020년 8월 29일
14

Database

목록 보기
2/8
post-thumbnail

MySQL은 가장 널리 사용되고 있는 관계형 데이터베이스 관리 시스템(RDBMS, Relational DataBase Management System)입니다.

  • MySQL에서 키워드와 구문, 문자열은 대소문자를 구분하지 않습니다.
  • MySQL에서 테이블 명과 필드의 이름은 대소문자를 구분합니다.

기초 문법

데이터 베이스 생성

CREATE DATABASE [database name] CHARACTER SET [character set];

예시) 
    
CREATE DATABASE Account CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

위에서 COLLATE의 ci는 case-insensitive의 약자이며, 대소문자를 구분하지 않게 설정됩니다.

데이터베이스 선택

USE [database name];

예시) 
    
USE Account;

데이터베이스 삭제

DROP DATABASE [database name];

예시) 
    
DROP DATABASE Account;

테이블 생성

CREATE TABLE [table name] ([column1 name][datatype], …);

예시
 
CREATE TABLE User
(

    ID INT,

    Name VARCHAR(30),

    BirthDay DATE,
    
    Age INT

);

테이블 삭제

DROP TABLE [table name];

예시
 
DROP TABLE User;

테이블에 필드(열) 추가

ALTER TABLE [table name] ADD [column name][datatype];

예시) 
    
ALTER TABLE User ADD PhoneNumber INT;

테이블 필드(열) 타입 변경

ALTER TABLE [table name] MODIFY COLUMN [column name][datatype];

예시) 
    
ALTER TABLE User MODIFY ID VARCHAR(20);

테이블 필드(열) 삭제

ALTER TABLE [table name] DROP [column name];

예시) 
    
ALTER TABLE User DROP Age;

테이블에 레코드(행) 추가

INSERT INTO [table name] VALUES (value1, value2, value3…);

예시) 
    
INSERT INTO User(ID, Name, BirthDay) VALUES(1, '김태하', '1992-11-04');

테이블의 레코드(행) 선택

SELECT * FROM [table];

예시) 
    
SELECT * FROM User;

테이블의 레코드(행) 내용 수정

UPDATE [table] SET [column]=[value] WHERE [condition];

예시) 
    
UPDATE User SET Age = 30 WHERE Name = '김태하';

테이블의 레코드(행) 삭제

DELETE FROM [table] WHERE [condition];

예시) 
    
DELETE FROM User WHERE Name = '김태하';

다중 테이블 연산

Join

  • Join은 두 개의 table들을 연결(join)해서 두 table의 레코드를 읽어 들이고 싶을 때 사용합니다.

  • INNER JOIN: 기준이 되는 테이블 (left table)과 join이 걸리는 테이블(right table) 양쪽 모두에 matching되는 row만 select가 됨.

  • LEFT JOIN: 기준이 되는 테이블 (left table)의 모든 row와 join이 걸리는 테이블(right table)중 left table과 matching되는 row만 select가 됨.

  • RIGHT JOIN: join이 걸리는 테이블(right table)의 모든 row와 기준이 되는 테이블 (left table)에서 right table과 matching되는 row만 select가 됨.

  • FULL (OUTER) JOIN: 기준이 되는 테이블 (left table)과 join이 걸리는 테이블(right table) 양쪽 모두의 모든 row를 select 한다.

Join 기본 문법

SELECT
테이블이름.조회할 테이블,
테이블이름.조회할 테이블
FROM 기준테이블 이름
(INNER, LEFT, RIGHT FULL) JOIN 조인테이블 이름
ON 기준테이블이름.기준키 = 조인테이블이름.기준키;

예시) 

SELECT users.id, users.name, users.age, users.gender, accounts.account_type 
FROM users JOIN accounts ON accounts.id = users.account_id;
profile
함께 성장하는 개발자가 되고 싶습니다.

5개의 댓글

comment-user-thumbnail
2020년 12월 22일

도움이 된 누군가입니다! 잘 보고 갑니다 ㅎㅎ

1개의 답글
comment-user-thumbnail
2021년 1월 19일

까먹어서 다시 공부 중인데 도움이 많이 됐습니다! 감사합니다 :D

답글 달기
comment-user-thumbnail
2021년 3월 22일

도움 되었습니다! 감사합니다. : )

답글 달기
comment-user-thumbnail
2021년 8월 27일

JOIN 이해 힘들었는데 감사합니다..ㅠㅠ

답글 달기