MySQL 문법

yejichoi·2023년 3월 13일
0

Database

목록 보기
2/31
post-thumbnail

MySQL은 키워드와 구문에서 대소문자를 구분X

-> 모두 같은 결과

1. SELECT * FROM Reservation;

2. select * from Reservation;

3. SeLeCt * FrOm Reservation;

CREATE

데이터베이스 생성

CREATE DATABASE 데이터베이스이름

테이블 생성

CREATE TABLE 테이블이름

(

    필드이름1 필드타입1,

    필드이름2 필드타입2,

    ...

)
#-------
# 예제
CREATE TABLE Test

(

    ID INT,

    Name VARCHAR(30),

    ReserveDate DATE,

    RoomNum INT

);

제약조건

  1. NOT NULL : 해당 필드는 NULL 값을 저장할 수 없게 됩니다.
  2. UNIQUE : 해당 필드는 서로 다른 값을 가져야만 합니다.
  3. PRIMARY KEY : 해당 필드가 NOT NULL과 UNIQUE 제약 조건의 특징을 모두 가지게 됩니다.
  4. FOREIGN KEY : 하나의 테이블을 다른 테이블에 의존하게 만듭니다.
  5. DEFAULT : 해당 필드의 기본값을 설정합니다.

ALTER

데이터베이스 수정

데이터베이스의 문자 집합이나 콜레이션을 변경
⚡️ 콜레이션(collation)이란 데이터베이스에서 검색이나 정렬과 같은 작업을 할 때 사용하는 비교를 위한 규칙의 집합

1. ALTER DATABASE 데이터베이스이름 CHARACTER SET=문자집합이름

2. ALTER DATABASE 데이터베이스이름 COLLATE=콜레이션이름

#------------
# 문자 집합과 콜레이션 변경 예제
ALTER DATABASE Hotel CHARACTER SET=euckr_bin COLLATE=euckr_korean_ci;

CHARACTER SET

  1. utf8 : UTF-8 유니코드를 지원하는 문자셋 (1~3바이트)
  2. euckr : 한글을 지원하는 문자셋 (1~2바이트)

COLLATE

  1. utf8_bin
  2. utf8_general_ci (기본 설정)
  3. euckr_bin
  4. euckr_korean_ci
    ⚡️ ci는 case-insensitive를 의미하며, 대소문자를 구분하지 않게 설정

테이블 수정

새로운 필드 추가

ALTER TABLE 테이블이름 ADD 필드이름 필드타입

기존 필드의 삭제

ALTER TABLE 테이블이름 DROP 필드이름

필드 타입 변경

ALTER TABLE 테이블이름 MODIFY COLUMN 필드이름 필드타입

DROP

데이터베이스 삭제

DROP DATABASE 데이터베이스이름

테이블 삭제

DROP TABLE 테이블이름

테이블의 데이터만 지울 때

TRUNCATE TABLE 테이블이름

에러 방지

삭제하려고 할 때, 만약 삭제하려는 이름의 데이터베이스나 테이블이 존재하지 않으면 에러가 발생 -> IF EXISTS 절을 사용하면 삭제하려는 데이터베이스나 테이블이 존재하지 않아서 발생하는 에러를 미리 방지

1. DROP DATABASE IF EXISTS Hotel;

2. DROP TABLE IF EXISTS Reservation;

INSERT

테이블에 레코드 추가

1. INSERT INTO 테이블이름(필드이름1, 필드이름2, 필드이름3, ...)

   VALUES (데이터값1, 데이터값2, 데이터값3, ...)

2. INSERT INTO 테이블이름

   VALUES (데이터값1, 데이터값2, 데이터값3, ...)

두 번째 문법의 생략할 수 있는 필드

  1. NULL을 저장할 수 있도록 설정된 필드
  2. DEFAULT 제약 조건이 설정된 필드
  3. AUTO_INCREMENT 키워드가 설정된 필드

UPDATE

레코드의 내용 수정

UPDATE 테이블이름

SET 필드이름1=데이터값1, 필드이름2=데이터값2, ...

WHERE 필드이름=데이터값

DELETE

레코드 삭제

DELETE FROM 테이블이름

WHERE 필드이름=데이터값

SELECT

테이블의 레코드를 선택

SELECT 필드이름

FROM 테이블이름

[WHERE 조건]

중복되는 값 제거

SELECT DISTINCT Name

FROM Reservation;

선택한 결과의 정렬

ORDER BY 절의 기본 설정은 오름차순이며, ASC 키워드를 사용하여 직접 오름차순을 명시 가능(생략도 가능)

SELECT * 

FROM Reservation

ORDER BY ReserveDate;
#---------------------------------------
SELECT * 

FROM Reservation

ORDER BY ReserveDate DESC;

별칭(alias)을 이용한 처리

MySQL에서는 테이블과 필드에 임시로 별칭(alias)을 부여하고, 해당 별칭을 SELECT 문에서 사용 가능 -> 별칭(alias)은 복잡한 테이블 이름이나 필드의 이름을 좀 더 읽기 쉽도록 만들어 줌

1. SELECT 필드이름 AS 별칭

FROM 테이블이름;

 

2. SELECT 필드이름

FROM 테이블이름 AS 별칭;


#-------------
# 예제 
SELECT ReserveDate, CONCAT(RoomNum, " : ", Name) AS ReserveInfo

FROM Reservation;

0개의 댓글