데이터 삭제하기
문법
DELETE FROM [테이블 이름]
WHERE 조건식;
예시
DELETE FROM pokemon.mypokemon
WHERE attack > 50;
데이터 수정하기
문법
UPDATE [테이블 이름]
SET [컬럼 이름] = [새 값]
WHERE 조건식;
예시
UPDATE pokemon.mypokemon
SET type='normal'
WHERE name = 'chikorita'
제약 조건
데이터를 입력할 때 실행되는 데이터 입력 규칙
테이블을 만들거나 변경하면서 설정한다.
CREATE TABLE
및ALTER TABLE
구문
제약 조건 | 의미 |
---|---|
NOT NULL |
이 컬럼에는 NULL 값을 저장할 수 없다. |
UNIQUE |
이 컬럼의 값들은 서로 다른 값을 가져야 한다. |
DEFAULT |
이 컬럼에 입력 값이 없을 시, 기본 값 설정된다. |
PRIMARY KEY |
이 컬럼은 테이블의 기본 키다.NOT NULL 과 UNIQUE 특징 모두 가진다. |
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
문법
# 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의 데이터 상태를 바꾸는 작업 묶음
쿼리 문법
# 트랜잭션 시작하기
START TRANSACTION;
# 트랜잭션 확정하기
COMMIT;
# 트랜잭션 이전으로 돌아가기
ROLLBACK;
SAVEPOINT
# 세이브 포인트 만들기
SAVEPOINT [세이브 포인트 이름];
# 세이브 포인트로 돌아가기
ROLLBACK TO [세이브 포인트 이름];