Concept
1.DDL (Data Define Laguage)
- SQL에서 지원하는 기본 데이터 타입
- 정수 : INT(4Byte 정수), SMALLINT(2Byte 정수)
- 실수 : FLOAT, REAL, DOUBLE PRECISION
- 형식화된 숫자 : DEC(i, j) –> i: 전체 자릿수, j: 소수부 자릿수
- 고정길이 문자 : CHAR(n) –> n: 문자 수
- 가변길이 문자 : VARCHAR(n) –> n: 최대 문자 수
- 고정길이 비트 열(Bit String) –> BIT(n)
- 가변길이 비트열 : VARBIT(n)
- 날짜 : DATE
- 시간 : TIME
2.DML (Data Manipulation Language)
- INSERT
- DELETE
- UPDATE
INSERT
- 테이블의 모든 속성을 삽입할 때는 속성명을 생략할 수 있다. 단 이때
Create Table
문에서 기술된 속성 순으로 삽입 된다. - Select문을 사용하여 다른 테이블의 검색 결과를 삽입 할 수 있다.
INSERT INTO 테이블명[(속성명1, 속성명2)]
VALUES (데이터1, 데이터2)
Q. <사원> 테이블에 있는 이름이 "이순신"이고, 부서가 "기획"인 사원을 삽입하는 SQL문을 작성하시오.사원>
Insert Into 사원(이름, 부서)
Values ('이순신', '기획');
Q. <사원> 테이블에 있는 편집 부서의 모든 튜플을 <편집부원(이름,생일,주소,기본급)> 테이블에 삽입하는 SQL문을 작성하시오.사원>
Insert Into 편집부원(이름, 생일, 주소, 기본급)
Select 이름, 생일, 주소, 기본급 From 사원 Where 부서 = '편집';
DELETE
- 테이블에 있는 튜플들 중 특정 튜플을 삭제할 때 사용되는 명령어
DELETE FROM 테이블명 WHERE 조건;
Q. <사원> 테이블에서 이름이 '임꺽정'인 튜플을 삭제하는 SQL문을 작성하시오.사원>
Delete From 사원 Where 이름 = '임꺽정';
UPDATE
- 테이블에 있는 튜플들 중에서 특정 튜플의 내용을 갱신할 때 사용되는 명령어
UPDATE 테이블명
SET 속성명 = 데이터
WHERE 조건명;
Q. <사원> 테이블에서 황진이의 부서를 "기획"으로 변경하고 기본급을 5 인상하는 SQL문을 작성하시오.사원>
Update 사원
Set 부서 = '기획', 기본급 = 기본급 + 5
Where 이름 = '황진이';
3.DCL (Date Control Language)
- COMMIT
- ROLLBACK
- GRANT
- REVOKE
COMMIT
- 트랜잭션1의 모든 변경 내용들을 영구적으로 데이터베이스에 반영하는 명령어
- 트랜잭션이 성공적으로 끝나면 데이터베이스가 새로운
일관성 상태(Consistency)
를 가지기 위해 수행된 모든 변경을
데이터베이스에반영(Commit)
하여 완료하여야한다.
ROLLBACK
-
변경된 모든 내용들을 취소하고 데이터베이스를 이전 상태로 되돌리는 명령어
-
트랜잭션의 일부를 성공적으로 끝내지 못하면 데이터베이스가
비일관성(Inconsistency)
인 상태를 가질 수 있기 때문에
(즉 트랜잭션이 수행한 일부 변경이 데이터베이스에 반영될 가능성이 있기 때문에)
일부분만 완료된 트랜잭션은롤백(Rollback)
되어야 한다.
GRANT / REVOKE
- DBA가 데이터베이스 사용자에게 권한을 부여하고 취소하기 위한 명령어
GRANT : 권한 부여
를 위한 명령어
REVOKE : 권한 취소
를 위한 명령어
– 사용자등급 지정 및 해제
GRANT 사용자등급 TO 사용자_ID_리스트;
REVOKE 사용자등급 FROM 사용자_ID_리스트;
- 사용자등급
- DBA : 데이터베이스 관리자
- RESOURCE : 데이터베이스 및 테이블 생성 가능자
- CONNECT : 단순 사용자
Q. 사용자 ID가 “NABI”인 사람에게 DB 및 테이블을 생성할 수 있는 권한을 부여하는 SQL문을 작성하시오.
Grant Resource To Nabi;
Q. 사용자 ID가 “STAR”인 사람에게 단순히 DB에 있는 정보를 검색할 수 있는 권한을 부여하는 SQL문을 작성하시오.
Grant Connect To Star;
– 테이블 및 속성에 대한 권한 부여 및 취소
GRANT 권한_리스트 ON 개체 TO 사용자 [WITH GRANT OPTION];
REVOKE [GRANT OPTION FOR] 권한_리스트 ON 객체 FROM 사용자 [CASCADE];
- 권한 종류 :
All
,Select
,Insert
,Delete
,Update
,Alter
등 - With Grant Option : 부여받은 권한을 다른 사용자에게 다시 부여할 수 있는 권한을 부여
- Grant Option For : 다른 사용자에게 권한을 부여할 수 있는 권한을 취소
- Cascade : 권한 취소 시 권한을 부여받았던 사용자가 다른 사용자에게 부여한 권한도 연쇄적으로 취소
Q. 사용자 ID가 “NABI”인 사람에게 <고객> 테이블에 대한 모든 권한과 다른 사람에게 권한을 부여할 수 있는 권한까지
부여하는 SQL문을 작성하시오.고객>
Grant All On 고객 To Nabi With Grant Option;
Q. 사용자 ID가 “STAR”인 사람에게 부여한 <고객> 테이블에 대한 권한 중 UPDATE 권한을 다른 사람에게 부여할 수 있는
권한만 취소하는 SQL문을 작성하시오.고객>
Revoke Grant Option For Update On 고객 From Star;
Q. 홍길동에게 부여된 <강좌> 테이블에 대해 INSERT 권한은 [유지]하면서
다른 사람에게 부여할 수 있는 권한만 [취소]하는 SQL문을 작성하시오.강좌>
Revoke Grant Option For Insert On 강좌 From 홍길동;
Q. 홍길동에게 부여된 <강좌> 테이블에 대한 SELECT, INSERT, DELETE 권한을 취소하는 SQL문을 작성하시오.강좌>
Revoke Select, Insert, Delete On 강좌 From 홍길동;
-
데이터베이스에서 하나의 논리적 기능을 수행하기 위한 일련의 연산 집합으로서 작업의 단위 ↩