CREATE, ALTER, DROP, TRUNCATE
데이터 구조를 정의하는데 사용되는 명령
스키마, 도메인, 테이블, 뷰, 인덱스를 정의, 변경, 삭제
CREATE SCHEMA {스키마_명} AUTHORIZATION {사용자_ID};
프로시저 생성
CREATE PROCEDURE 프로시저명(파라미터)
(변수1 IN 변수타입, 변수2 OUT 변수타입, 변수3 IN OUT 변수타입...)
IS
변수처리부
BEGIN
처리내용
EXCEPTION
예외처리부
END;
트리거 생성
* 실행시기 : BEFORE(이벤트 전),AFTER(이벤트 후)
CREATE TRIGGER 트리거명(실행시기)(옵션) ON 테이블명
BEGIN
트리거 BODY
END;
속성 추가, 변경, 삭제 : ADD, MODIFY, DROP COLUMN
// 회원 테이블에 AGE 속성 추가
ALTER TABLE 회원 ADD AGE;// 회원 테이블에 AGE 속성 INT로 변경
ALTER TABLE 회원 MODIFY ** INT(11)// 회원 테이블에 AGE 속성 삭제
ALTER TABLE 회원 DROP COLUMN AGE;
INDEX 변경, 재구성, 비활성화 : RENAME TO, REBUILD, UNUSABLE
// 회원명 INDEX를 성명으로 변경
ALTER INDEX 회원명 RENAME TO 성명// 회원명 INDEX의 속도가 저하되거나 깨졌을 경우 INDEX 재구성
ALTER INDEX 회원명 REBUILD// 회원명 INDEX 비활성화
ALTER INDEX 회원명 UNUSABLE
각각의 DROP 구문 뒤에는 CASCADE 또는 RESTRICT 옵션을 선택적으로 사용할 수 있다.
CASCADE: 지정된 객체를 삭제하고, 그에 의존하는 모든 객체도 함께 삭제
RESTRICT: 의존하는 다른 객체가 있을 경우 삭제를 거부
DROP SCHEMA 스키마_명 CASCADE;
DROP TABLE 테이블_명 RESTRICT;
DROP VIEW USER_VIEW CASCADE;
DROP INDEX USER_INDEX RESTRICT;
TRUNCATE [TABLE] {테이블_명} ;
제약 조건 적용
- PRIMARY KEY : 테이블의 기본키 정의
- 기본으로 NOT NULL, UNIQUE 제약이 포함 (개체 무결성)
- FOREIGN KEY : 외래키 정의
- 참조 대상을 테이블이름(열이름)으로 명시
- 참조 무결성 위배 상황 발생 시 처리 방법으로 옵션 지정 가능
FOREIGN KEY (user_id) REFERENCES user(id) ON DELETE CASCADE;- UNIQUE : 고유값 지정
- 테이블 내에서 열은 유일한 값을 가져야 함.
- 테이블 내에서 동일한 값을 가져서는 안 되는 항목에 지정.
USER_ID VARCHAR(10) UNIQUE NOT NULL- NOT NULL : 테이블 내에서 관련 열의 값은 NULL일 수 없음
- 필수 입력 항목에 대해 제약 조건으로 설정
USER_ID VARCHAR(10) NOT NULL- CHECK : 개발자가 정의하는 제약 조건
- 상황에 따라 다양한 조건 설정 가능
CONSTRAINT user_jumin CHECK(LENGTH(jumin)=13)
SELECT, INSERT, UPDATE, DELETE
데이터를 관리(데이터 검색, 등록, 삭제, 수정)하는 명령
1) SELECT : 데이터베이스에 있는 데이터 조회/검색
SELECT 속성명 FROM 테이블명 [WHERE 조건]
SELECT {속성_명} FROM {테이블_명};
ex) SELECT name FROM USER;
SELECT
속성명
/*
속성명, 속성명, 속성명
*
DISTINCT 속성명
집계함수(속성명)
*/
FROM 테이블명
WHERE 조건
# AND | OR | BETWEEN ~ AND | NOT | LIKE | IS NULL | IS NOT NULL
GROUP BY
HAVING 조건 집계함수(속성명)
ORDER BY 속성 #ASC|DESC
2) INSERT : 데이터베이스에 들어갈 데이터 추가
INSERT INTO 테이블명 VALUES 데이터
INSERT INTO {테이블_명}[(속성명1, 속성명2, …)]
VALUES(데이터1, 데이터2, …);
ex) INSERT INTO user(name, birth) VALUES('jy','890212');
3) UPDATE : 데이터베이스에 있는 데이터 수정
UPDATE 테이블명 SET 속성명 = '데이터' [WHERE 조건]
UPDATE {테이블_명}
SET {속성명} = {데이터} [[,{속성명} = {데이터}],…]
[WHERE {조건}];
ex) UPDATE user SET name='chuno' WHERE name='chu';
4) DELETE : 데이터베이스에 있는 데이터 삭제
DELETE FROM 테이블명 [WHERE 조건]
DELETE FROM {테이블_명}[WHERE {조건}];
ex) DELETE FROM user WHERE name='jy';
GRANT, REVOKE
데이터베이스에 접근하고, 객체들을 사용하도록 권한을 주고 회수하는 명령
권한
SELECT,INSERT, UPDATE, DELETE, DROP, INDEX,
REFERENCES(테이블의 특정 열을 외래키로 참조 할 수 있는 권한),
ALL PRIVILEGES(테이블에 대한 모든 권한 부여)
GRANT 권한 ON 테이블명 TO 유저REVOKE 권한 ON 테이블명 FROM 유저 COMMIT, ROLLBACK, SAVEPOINT
논리적인 작업의 단위를 묶어 이에 의해 조작된 결과를 작업 단위별로 제어하는 명령어
ROLLBACK TO {세이브포인트_명}
ex) ROLLBACK TO s1; SAVE POINT {세이브포인트_명}
ex) SAVE POINT S1;