데이터 삭제하기

문법

DELETE FROM [테이블 이름]
WHERE 조건식;

예시

DELETE FROM pokemon.mypokemon
WHERE attack > 50;

Pasted image 20241120083935.png

데이터 수정하기

문법

UPDATE [테이블 이름]
SET [컬럼 이름] = [새 값]
WHERE 조건식;

예시

UPDATE pokemon.mypokemon
SET type='normal'
WHERE name = 'chikorita'

Pasted image 20241120084204.png

제약 조건

데이터를 입력할 때 실행되는 데이터 입력 규칙
테이블을 만들거나 변경하면서 설정한다.

제약 조건 의미
NOT NULL 이 컬럼에는 NULL 값을 저장할 수 없다.
UNIQUE 이 컬럼의 값들은 서로 다른 값을 가져야 한다.
DEFAULT 이 컬럼에 입력 값이 없을 시, 기본 값 설정된다.
PRIMARY KEY 이 컬럼은 테이블의 기본 키다.
NOT NULLUNIQUE 특징 모두 가진다.
FOREIGN KEY 이 컬럼은 테이블의 외래 키다.
이 컬럼은 다른 테이블의 특정 컬럼을 참조한다.

테이블 만들기

문법

CREATE TABLE [테이블 이름](
	[컬럼 이름] [데이터 타입],
	[컬럼 이름] [데이터 타입],
	...
)

예시

CREATE TABLE new_pokemon(
	number INT PRIMARY KEY,
	name VARCHAR(20) UNIQUE,
	type VARCHAR(10) NOT NULL,
	attack INT DEFAULT 0,
	defense INT DEFAULT 100,
	FOREIGN KEY(number) REFERENCES mypokemon(number)
)

권한과 DCL

SQL 분류

분류 종류 의미
DDL Data Definition Langauge CREATE
ALTER
DROP
RENAME
TRUNCATE
데이터 정의어
DML Data Manipulation Langauge SELECT
INSERT
UPDATE
DELETE
데이터 조작어
DCL Data Control Langauge GRANT
REVOKE
데이터 조작어
TCL Transaction Control Language COMMIT
ROLLBACK
SAVEPOINT
트랜잭션 제어어

DCL

Pasted image 20241120101733.png

문법

# MySQL 기본 데이터 베이스인 mysql 데이터 베이스 선택
USE mysql

# 사용자 목록 조회하기
SELECT user, host FROM user;

사용자 생성, 삭제 문법

# 사용자 생성하기
CREATE USER [사용자 이름]@[IP 주소];

# 비밀번호와 함께 사용자 생성하기
CREATE USER [사용자 이름]@[ip주소] IDENTIFIED BY '[사용자 비밀번호]';

# 사용자 삭제하기
DROP USER [사용자 이름];

권한 부여하기

# 권한 부여하기
GRANT [권한] ON [데이터 베이스 이름].[테이블 이름] TO [사용자 이름]@[IP주소];

# 권한 확인하기
SHOW GRANTS FOR [사용자 이름]@[IP주소];

# 권한 삭제하기
REVOKE [권한] ON [데이터 베이스 이름].[테이블 이름] FROM [사용자 이름]@[IP주소]

# 권한 적용하기
FLUSH PRIVILEGES;

쿼리 예시

# newuser@%에게 mydb.mytb에 대한 모든 권한 부여하기
GRANT ALL PRIVILEGES ON mydb.mytb TO newuser@%;

# newuser@% 에게 모든 데이터 베이스 모든 테이블에 대한 SELECT, INSERT 권한 부여하기
GRANT SELECT, INSERT ON *.* TO newuser@%;

트랜잭션과 TCL

트랜젝션이란?

  • DB의 데이터 상태를 바꾸는 작업 묶음

Pasted image 20241120103934.png

쿼리 문법

# 트랜잭션 시작하기
START TRANSACTION;

# 트랜잭션 확정하기
COMMIT;

# 트랜잭션 이전으로 돌아가기
ROLLBACK;

SAVEPOINT

Pasted image 20241120104336.png

# 세이브 포인트 만들기
SAVEPOINT [세이브 포인트 이름];

# 세이브 포인트로 돌아가기
ROLLBACK TO [세이브 포인트 이름];

#SQL