1. SELECT * FROM Reservation;
2. select * from Reservation;
3. SeLeCt * FrOm Reservation;
데이터베이스 생성
CREATE DATABASE 데이터베이스이름
테이블 생성
CREATE TABLE 테이블이름
(
필드이름1 필드타입1,
필드이름2 필드타입2,
...
)
#-------
# 예제
CREATE TABLE Test
(
ID INT,
Name VARCHAR(30),
ReserveDate DATE,
RoomNum INT
);
- NOT NULL : 해당 필드는 NULL 값을 저장할 수 없게 됩니다.
- UNIQUE : 해당 필드는 서로 다른 값을 가져야만 합니다.
- PRIMARY KEY : 해당 필드가 NOT NULL과 UNIQUE 제약 조건의 특징을 모두 가지게 됩니다.
- FOREIGN KEY : 하나의 테이블을 다른 테이블에 의존하게 만듭니다.
- DEFAULT : 해당 필드의 기본값을 설정합니다.
데이터베이스의 문자 집합이나 콜레이션을 변경
⚡️ 콜레이션(collation)이란 데이터베이스에서 검색이나 정렬과 같은 작업을 할 때 사용하는 비교를 위한 규칙의 집합
1. ALTER DATABASE 데이터베이스이름 CHARACTER SET=문자집합이름
2. ALTER DATABASE 데이터베이스이름 COLLATE=콜레이션이름
#------------
# 문자 집합과 콜레이션 변경 예제
ALTER DATABASE Hotel CHARACTER SET=euckr_bin COLLATE=euckr_korean_ci;
CHARACTER SET
- utf8 : UTF-8 유니코드를 지원하는 문자셋 (1~3바이트)
- euckr : 한글을 지원하는 문자셋 (1~2바이트)
COLLATE
- utf8_bin
- utf8_general_ci (기본 설정)
- euckr_bin
- euckr_korean_ci
⚡️ ci는 case-insensitive를 의미하며, 대소문자를 구분하지 않게 설정
새로운 필드 추가
ALTER TABLE 테이블이름 ADD 필드이름 필드타입
기존 필드의 삭제
ALTER TABLE 테이블이름 DROP 필드이름
필드 타입 변경
ALTER TABLE 테이블이름 MODIFY COLUMN 필드이름 필드타입
DROP DATABASE 데이터베이스이름
DROP TABLE 테이블이름
TRUNCATE TABLE 테이블이름
삭제하려고 할 때, 만약 삭제하려는 이름의 데이터베이스나 테이블이 존재하지 않으면 에러가 발생 -> IF EXISTS 절을 사용하면 삭제하려는 데이터베이스나 테이블이 존재하지 않아서 발생하는 에러를 미리 방지
1. DROP DATABASE IF EXISTS Hotel;
2. DROP TABLE IF EXISTS Reservation;
1. INSERT INTO 테이블이름(필드이름1, 필드이름2, 필드이름3, ...)
VALUES (데이터값1, 데이터값2, 데이터값3, ...)
2. INSERT INTO 테이블이름
VALUES (데이터값1, 데이터값2, 데이터값3, ...)
두 번째 문법의 생략할 수 있는 필드
- NULL을 저장할 수 있도록 설정된 필드
- DEFAULT 제약 조건이 설정된 필드
- AUTO_INCREMENT 키워드가 설정된 필드
UPDATE 테이블이름
SET 필드이름1=데이터값1, 필드이름2=데이터값2, ...
WHERE 필드이름=데이터값
DELETE FROM 테이블이름
WHERE 필드이름=데이터값
SELECT 필드이름
FROM 테이블이름
[WHERE 조건]
SELECT DISTINCT Name
FROM Reservation;
ORDER BY 절의 기본 설정은 오름차순이며, ASC 키워드를 사용하여 직접 오름차순을 명시 가능(생략도 가능)
SELECT *
FROM Reservation
ORDER BY ReserveDate;
#---------------------------------------
SELECT *
FROM Reservation
ORDER BY ReserveDate DESC;
MySQL에서는 테이블과 필드에 임시로 별칭(alias)을 부여하고, 해당 별칭을 SELECT 문에서 사용 가능 -> 별칭(alias)은 복잡한 테이블 이름이나 필드의 이름을 좀 더 읽기 쉽도록 만들어 줌
1. SELECT 필드이름 AS 별칭
FROM 테이블이름;
2. SELECT 필드이름
FROM 테이블이름 AS 별칭;
#-------------
# 예제
SELECT ReserveDate, CONCAT(RoomNum, " : ", Name) AS ReserveInfo
FROM Reservation;