Data/DBMS

[DB] MySQL 기초 문법 정리

도구혜지루루 2023. 10. 24. 08:20
728x90
반응형
  • MySQL에서 키워드와 구문, 문자열은 대소문자를 구분하지 않는다.
  • MySQL에서 테이블 명과 필드의 이름은 대소문자를 구분한다.

 

 

 DB

 

DB 생성

 

CREATE DATABASE [DB 이름] CHARACTER SET [character set];

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

위에서 COLLATE의 utf8mb4_general_ci의 ci는 case_insensitive의 약자이며, 대소문자를 구분하지 않게 설정된다.

 

 

DB 선택

 

USE [DB이름];

예시)

USE Account;

 

 

DB 삭제

 

DROP DATABASE [DB 이름];

예시)

DROP DATABASE Account;

 

 

 테이블

 

테이블 생성

 

CREATE TABLE [테이블 이름] ([column1 name] [data type], ...);

예시)

CREATE TABLE user
(
	ID INT,
    
    	Name VARCAHR(30),
        
    	BirthDay DATE,
        
    	Age INT
);

 

 

테이블 삭제

 

DROP TABLE [테이블 이름];

예시)

DROP TABLE user;

 

 


 

테이블에 필드(열) 추가

 

ALTER TABLE [테이블 이름] ADD [column name] [data type];

예시)

ALTER TABLE user ADD PhoneNumber INT;

 

 

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

 

ALTER TABLE [테이블 이름] MODIFY COLUMN [column name] [data type];

예시)

ALTER TABLE user MODIFY ID VARCHAR(20);

 

 

테이블 필드(열) 삭제

 

ALTER TABLE [테이블 이름] DROP [column name];

예시)

ALTER TABLE user DROP Age;

 


 

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

 

INSERT INTO [테이블 이름] VALUES (value1, value2, value3...);

예시)

INSERT INTO user(ID, Name, BirthDay) VALUES (1, '홍길동', '0000-00-00');

 

 

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

 

SELECT * FROM [테이블 이름] WHERE [condition];

예시)

SELECT * FROM User WHERE id = 1 ORDER BY id LIMIT 2;

ORDERD BY에 DESC를 추가하면 데이터를 내림차순으로 나열한다.
Default 옵션은 오름차순(ASC)이다.

LIMIT 2는 상위 2개의 데이터만 가져오라는 뜻이다.

 

 

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

 

UPDATE [테이블 이름] SET [column name]=[value] WHERE [condition];

예시)

UPDATE user SET Age = 20 WHERE Name = '홍길동';

 

 

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

 

DELETE FROM [테이블 이름] WHERE [condition];

예시)

DELETE FROM user WHERE Name = '홍길동';

 


 

다중 테이블 연산

 

 Join

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

 

 

 Join 기본 문법

 

SELECT 테이블.조회할 필드, 테이블.조회할 필드, ...

FROM 기준 테이블

(INNER, LEFT, RIGHT FULL) JOIN 조인 테이블

ON 기준 테이블.기준 필드 = 조인 테이블.기준 필드;

 

예시)

SELECT users.id, users.name, accounts.info
FROM users
JOIN accounts ON users.id = accounts.id;

 

 

728x90
반응형