본 글은 Fastcampus의 MySQL Database 강의를 수강하며 정리한 내용입니다.
강의 링크
데이터 삭제
DELETE FROM [테이블 이름]
WHERE 조건식;
데이터 수정
UPDATE [테이블 이름]
SET [컬럼 이름] = [새 값]
WHERE 조건식;
CREATE TABLE
및 ALTER TABLE
구문제약 조건의 종류
제약 조건 | 의미 |
---|---|
NOT NULL | 이 컬럼에는 NULL 값을 저장할 수 없다 |
UNIQUE | 이 컬럼의 값들은 서로 다른 값을 가져야 한다 |
DEFAULT | 이 컬럼에 입력값이 없을 시 기본값이 설정된다 |
PRIMARY KEY | 이 컬럼은 테이블의 기본 키 다NOT NULL과 UNIQUE 특징을 모두 가진다 |
FOREIGN KEY | 이 컬럼은 테이블의 외래 키 다이 컬럼은 다른 테이블의 특정 컬럼을 참조한다 |
CREATE TABLE [테이블 이름] (
[컬럼 이름] [데이터 타입] [제약 조건],
[컬럼 이름] [데이터 타입] [제약 조건],
...
);
예시
CREATE TABLE new_mypokemon(
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)
-- FOREIGN KEY는 참조하는 테이블의 PRIMARY KEY여야 함
);
SQL 분류
분류 | 종류 | 의미 |
---|---|---|
DDL (Data Definition Language) | CREATE ALTER DROP RENAME TRUNCATE | 데이터 정의어 |
DML (Date Manipulation Language) | SELECT INSERT UPDATE DELETE | 데이터 조작어 |
DCL (Data Control Languate) | GRANT REVOKE | 데이터 제어어 |
TCL (Transaction Control Languate) | COMMIT ROLLBACK SAVEPOINT | 트랜잭션 제어어 |
권한 예시
사용자 확인하기
# MySQL 기본 데이터베이스인 mysql 데이터베이스 선택하기
USE mysql;
# 사용자 목록 조회하기
SELECT user, host FROM user;
사용자 생성, 삭제하기
#사용자 생성하기
CREATE USER [사용자 이름]@[ip 주소];
# 비밀번호와 함께 사용자 생성하기
CREATE USER [사용자 이름]@[ip 주소] IDENTIFIED BY '[사용자 비밀번호]';
# 사용자 삭제하기
DROP USER [사용자 이름];
권한 부여하기
# 권한 부여하기
GRANT [권한] ON [데이터베이스 이름].[테이블 이름] TO [사용자 이름]@[ip 주소];
# 권한 확인하기
SHOW GRANT FOR [사용자 이름]@[ip 주소];
# 권한 삭제하기
REVOKE [권한] ON [데이터베이스 이름].[테이블 이름] FROM [사용자 이름]@[ip 주소];
# 권한 적용하기
FLUSH PRIVILEGES;
예시
# newuser@%에게 mydb.mytb에 대한 모든 권한 부여하기
GRANT ALL PRIVILEGES ON mydb.mytb TO newuser@%;
-- ip 주소가 %이면 해당 아이디를 가지는 모든 ip에서의 접근을 허용한다는 의미
# newuser@%에게 모든 데이터베이스, 모든 테이블에 대한 SELECT, INSERT 권한 부여하기
GRANT SELECT, INSERT ON *.* TO newuser@%;
트랜잭션
#트랜잭션 시작하기
START TRANSACTION
# 트랜잭션 확정하기
COMMIT;
# 트랜잭션 이전으로 돌아가기
ROLLBACK;
세이브포인트
# 세이브포인트 만들기
SAVEPOINT [세이브포인트 이름];
# 세이브포인트로 돌아가기
ROLLBACK TO [세이브포인트 이름];