SQL을 배우는 중.
2023-10-05. 목요일
TOOL: MYSQL
CREATE TABLE
테이블 생성
Schema 생성 후 테이블이 없거나 특정 테이블을 생성할 때 사용한다.
CREATE TABLE IF NOT EXISTS 테이블명(컬럼명 + 데이터타입);
MySQL 데이터 타입은 참고
1
2
3
4
5
6
7
8
9
CREATE TABLE IF NOT EXISTS tasks(
task_id INT AUTO_INCREMENT
, title VARCHAR(255) NOT NULL
, start_date DATE
, due_date DATE
, priority TINYINT NOT NULL DEFAULT 3
, DESCRIPTION TEXT
, PRIMARY KEY(task_id)
);
살펴보면
AUTO_INCREMENT: 새 데이터가 추가되면 하나씩 카운팅됨. 여기선 행이 추가될 때마다 id가 하나씩 늘어나는 방법으로 사용.
NOT NULL:기본값이 없다면 반드시 입력해야 하는 항목.
DEFAULT: 기본값 설정.
PRIMARY KEY: 테이블의 기본 키는 괄호 안의 값.
추가됐다!
INSERT DATA
테이블에 데이터 추가하기
INSERT INTO 테이블명 (열이름) VALUES (값);
1
2
INSERT INTO tasks(title, priority)
VALUES ('learn MYsql', 1);
title 열에는 반드시 데이터를 입력, priority는 입력 안하면 3 / 하면 입력값
다중 행 추가
1
2
3
4
5
6
INSERT INTO tasks(title, start_date, due_date)
VALUES
('learn INSERT', '2023-10-05', '2023-10-05')
, ('learn DELETE', '2023.10.05', '2023-10-05')
, ('learn C', CURRENT_DATE(), CURRENT_DATE())
;
DELETE DATA
데이터 삭제하기
DELETE FROM 테이블명 WHERE 열이름 + 조건;
1
DELETE FROM tasks WHERE title = 'learn MongoDB';
삭제는 했는데 id가 업뎃안됨. 반영하려면 COMMIT, ROLLBACK 을 해야함.
추후 트랜잭션 정리와 함께 업데이트 할 것
ERROR: Safe Update Mode
Error Code: 1175 와 관계있음
MYSQL의 보안기능 중 하나. WHERE 조건문에 KEY(Colunm)를 사용하지 않아 발생하는 에러가 존재함.
의도치 않게 데이터를 수정하는 것을 방지하기 위함.
Safe Update Mode를 해지하려면
1
SET SQL_SAFE_UPDATES = 0;
다시 설정하려면
1
SET SQL_SAFE_UPDATES = 1;
추후 자세히 정리할 것
UPDATE DATA
데이터 수정하기
UPDATE 테이블명 SET 열 이름 + 조건 WHERE 행 + 조건;
1
2
3
UPDATE tasks
SET priority = 10
WHERE task_id = 11;