테이블에 데이터를 입력하는 명령어
-> INSERT INTO 테이블(컬럼1, 컬럼2...) VALUES(데이터1, 데이터2...);
이미 저장된 데이터를 수정하고 싶을 때 사용하는 명령어
-> UPDATE 테이블 SET 속성 = 데이터 WHERE;
이미 저장된 데이터를 삭제하고 싶을 때 사용하는 명령어, WHERE 절이 없으면 테이블의 모든 ROW가 삭제
-> DELETE FROM 테이블(WHERE 수정할 데이터에 대한 조인); : 모든 데이터를 삭제, 테이블 용량은 감소하지 않음
-> TRUNCATE TABLE 테이블; : 모든 데이터를 삭제 후 테이블 용량 초기화
테이블에 새로운 데이터를 입력하거나 이미 저장되어 있는 데이터에 대한 변경 작업을 한번에 할 수 있또록 해주는 명령어
-> MERGE INTO 변경할 테이블
-> USER 비교할 테이블 | 서브쿼리
-> ON 조건문
-> WHEN MATCHED THEN UPDATE~
-> WHEN NOT MATCHED THEN INSERT~
제어명령어 : COMMIT, ROLLBACK, SAVEPOINT
- 트랜잭션 : 데이터베이스 시스템에서 하나의 논리적 기능을 정상적으로 수행하기 위한 작업의 기본 단위
특징)- ATOMICITY 원자성 : ALL OR NOTHING
- CONSISTENCY 일관성 : 트랜잭션이 완료된 후에도 데이터베이스가 가진 데이터에 일관성이 있어야 한다.
- ISOLATION 고립성 : 하나의 트랜잭션을 고립되어 수행
- DURABILITY 지속성 : 트랜잭션이 성공하면 갱신한 내용이 데이터베이스에 영구 저장
INSERT, DELETE, UPDATE 후 변경된 내용을 확정, 반영하는 명령어
INSERT, DELETE, UPDATE 후 변경된 내용을 취소하는 명령어
ROLLBACK을 수행할 때 전체 작업을 되돌리지 않고 일부만 되돌릴 수 있게 하는 명령어
정의명령어 : CREATE, ALTER, DROP, RENAME, TRUNCATE
테이블을 생성하기 위한 명령어
-> CREATE TABLE 테이블(컬럼 데이터타입(DEFAULT/NULL 여부), ...);
- NULL : 공백(' ')과는 다르며 존재하지 않는 값
- DEFAULT : 데이터의 기본 값
주의사항- 테이블 명은 고유해야 한다.
- 컬럼명 뒤에 데이터 유형과 데이터 크기가 명시되어야 한다.
- 테이블 내의 컬럼명 중복 X
- 컬럼에 대한 정의는 괄호() 안에 기술한다.
- 각 컬럼들은 ,(콤마)로 구분된다.
- 테이블 명과 컬럼명은 숫자로 시작될 수 없다.
- 마지막은 ;(세미콜론)으로 끝난다.
제약조건의 종류
| CONSTRAINTS | NULL허용여부 | 데이터 중복 허용 여부 | 특징 |
|---|---|---|---|
| NOTNULL | NULL불가 | 중복 가능 | |
| UNIQUE | NULL가능 | 중복 불가(NULL끼리는 중복으로 간주하지 않음) | |
| PK(고유키) | NULL불가 | 중복 불가 | 지정한 열은 유일한 값을 반드시 가져야함, 테이블 당 1개만 지정가능 |
| FK(외래키) | 다른 테이블 열을 참조하여 해당 테이블에 존재하는 값만 입력 가능, 다른 테이블의 고유키(PK)를 참조 | ||
| CHECK | 설정한 조건식을 만족하는 데이터만 입력가능 ,조건식을 만족하지 않는 데이터는 입력이 거부됨 |
테이블 구조를 변경해야 할 때 쓸 수 있는 명령어
① ADD COLUMN : 새로운 컬럼을 추가할 때 쓰는 명령어
- ALTER TABLE 테이블명 ADD 컬럼명 데이터 유형;
② DROP COLUMN : 기존에 있던 컬럼이 필요 없어졌을 때 삭제하는 명령어- ALTER TABLE 테이블명 DROP COLUMN 컬럼명;
③ MODIFY COLUMN : 기존에 있던 컬럼을 변경하고 싶을 때 쓰는 명령어- ALTER TABLE 테이블명 MODIFY(컬럼명1 데이터유형[DEFAULT 값][NOTNULL], 컬럼명2 데이터 유형...);
④ RENAME COLUMN : 기존에 있던 컬럼의 이름을 변경하고 싶을 때 쓰는 명령어- ALTER TABLE 테이블명 RENAME COLUMN 기존 컬렴명 TO 변경할 컬럼명
⑤ ADD CONSTRAINT : 계약조건을 추가하고 싶을 때 쓰는 명령어- ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 제약조건(컬럼명);
테이블을 삭제할 때 쓰는 명령어
- DROP TABLE 테이블명[CASCADE CONSTRAINT];
- 테이블을 변경할 때 쓰는 명령어
- RENAME 기존 테이블명 TO 변경할 테이블명;
- 테이블에 저장되어 있는 데이터를 모두 제거하는 명령어
- TRUNCATE TABLE 테이블명;
USER를 생성하고 권한을 부여해주는 명령어 : CREATE USER, ALTER USER, DROP USER
① CREATE USER : 사용자를 생성하는 명령어
- CREATE USER 사용자명 IDENTIFIED BY 패스워드;
② ALTER USER : 사용자를 변경하는 명령어- ALTER USER 사용자명 IDENTIFIED BY 패스워드;
③ DROP USER : 사용자를 삭제하는 명령어- DROP USER 사용자명;
① GRANT : 사용자에게 권한을 부여하는 명령어
- GRANT 권한 TO 사용자명;
② REVOKE : 사용자에게 권한을 회수하는 명령어- REVOKE 권한 FROM 사용자명;
① ROLE을 이용한 권한 부여
㉠. ROLE을 생성
-> CREATE ROLE 롤명;
㉡. ROLE에 권한을 부여
-> GRANT 권한 TO 롤명;
㉢. ROLE을 사용자에게 부여
-> GRANT 롤명 TO 사용자명;