CS/MySQL

[TCPschool][2장] MySQL 문법(2/2)

pythaac 2021. 8. 1. 19:43
이 글은 "TCPschool/코딩과 데이터/MySQL"을 읽고 주관적으로 작성된 글입니다.

https://tcpschool.com/mysql/intro

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com

 

1. INSERT

  • INSERT INTO VALUES문을 사용하여 테이블에 새로운 레코드 추가
# 필드이름 포함
INSERT INTO 테이블이름(필드이름1, 필드이름2, ...)
VALUES (데이터값1, 데이터값2, ...)

# 필드이름 제외
INSERT INTO 테이블이름
VALUES (데이터값1, 데이터값2, ...)
  • 필드이름이 생략되면 스키마와 같은 순서대로 필드값 대입
  • 즉, 모든 필드 이름을 다 적을 필요가 없음
  • 생략할 수 있는 필드
    1. NULL 저장 가능 필드
    2. DEFAULT 제약 조건 설정 필드
    3. AUTO_INCREMENT 키워드 설정 필드
  • 예제
INSERT INTO Reservation(ID, Name, ReserveDate, RoomNum)
VALUES(5, '이순신', '2016-02-16', 1108);

 

2. UPDATE

  • UPDATE SET WHERE문으로 레코드 내용 수정
UPDATE 테이블이름
SET 필드이름1=데이터값1, 필드이름2=데이터값2, ...
WHERE 필드 이름 = 데이터값
  • WHERE절의 조건을 만족하는 레코드만 수정
  • 예제
UPDATE Reservation
SET RoomNum = 2002
WHERE Name = '홍길동';
  • Reservation 테이블의 Name 필드가 '홍길동'인 RoomNum 필드의 값을 2002로 수정

 

3. DELETE

  • DELETE FROM WHERE 문으로 테이블의 레코드 삭제
DELETE FROM 테이블이름
WHERE 필드이름=데이터값
  • WHERE절의 조건을 만족하는 레코드만 삭제
  • WHERE절이 생략되면, 테이블의 모든 데이터 삭제
  • 예제
DELETE FROM Reservation
WHERE Name = '홍길동';

 

4. SELECT

1) SELECT

  • SELECT FROM WHERE 문으로 테이블의 레코드 선택
SELECT [DISTINCT] 필드이름
FROM 테이블이름
[WHERE 조건]

1) 테이블의 모든 필드

SELECT *
FROM 테이블이름

2) 특정 조건의 레코드

  • [예시] 1개의 조건
SELECT *
FROM Reservation
WHERE Name = '홍길동';
  • [예시] 2개 이상의 조건
SELECT *
FROM Reservation
WHERE ID <= 3 AND ReserveDate > '2016-02-01';
  • [예시] 필드값 중복 레코드 제거 (DISTINCT)
SELECT DISTINCT Name
FROM Reservation;
  • [예시] 오름차순 / 내림차순 정렬
    - ORDER BY BINARY BINARY : 대소문자 구분 정렬
-- 오름차순
SELECT *
FROM Reservation
ORDER BY ReserveData;

-- 내림차순
SELECT *
FROM Reservation
ORDER BY ReserveData DESC;
  • [예시] 정렬한 뒤 정렬
-- ReserveDate로 내림차순한 결과를, RoonNum으로 오름차순
SELECT *
FROM Reservation
ORDER BY ReserveDate DESC, RoomNum ASC;
  • 별칭(AS)
-- 필드에 별칭 부여
SELECT 필드이름 AS 별칭
FROM 테이블이름;

-- 테이블에 별칭 부여
SELECT 필드이름
FROM 테이블이름 AS 별칭;
  • 별칭으로 필드 생성 (feat. CONCAT함수)
    • CONCAT : 인수의 문자열을 모두 결합하여 하나의 문자로 만듦
SELECT ReserveDate, CONCAT(RoomNum, " : ", Name) AS ReserveInfo
FROM Reservation;
ReserveDate ReserveInfo
2016-01-05 2014 : 홍길동
2016-02-12 918 : 임꺽정
2016-01-16 1208 : 장길산
2016-03-17 504 : 홍길동