DB/Oracle Basic

SQL 문법(DML, DDL, DCL, TCL)

soccerda 2012. 7. 6. 01:06
반응형
 
1. DML(조작어) : update, delete, merge

참고 :
Merge : 구조가 같은 2개의 테이블을 비교하여 하나의 테이블로 합치기 위한 명령어
서버에 많은 부하를 주므로 index를 필히 생성
MERGE INTO [table] [alias]
USING [table | view| subquery ] alias
ON [ join condition]
WHEN MATCHED THEN
UPDATE SET …..
WHEN NOT MATCHED THEN
INSERT ….
VALUES …;


2. DDL(정의어) : create, alter, truncate, drop

3. DCL : grank, revoke


4. TCL : commit, rollback

참고 :
오라클에서의 변수

숫자 : number(p, s)
- p : 총 자리수
- s : 소수점 자리
예) number(5,3) => 12.345

날짜 : date (기본 포멧은 'dd-mon-yy')

문자 : char(n) - 공간의 낭비 발생
varchar2(n) - 공간 낭비 제거
n : byte 크기


참고 : 다중 row insert 방법
- ITAS : Insert into Table [As] Select ...
이미 만들어져 있는 테이블에 데이터 복사

- CTAS : Create Table As Select ....
테이블 생성 및 데이터 복사

구조만 복사하려고 할 때 :
create table table_name
as select *
from table_name
where 1=2



5. Sequence : 자동으로 번호 생성
CREATE SEQUENCE sequence_name
[INCREMENT BY n] <-- 증가값, 기본값 : 1
[START WITHE n] <-- 시작값, 기본값 : 1
[MAXVALUE n | NOMAXVALUE] <-- 최대값
[MINVALUE n | NOMINVALUE] <-- Cycle 시 시작값
[CYCLE | NOCYCLE] <-- 순환여부
[CACHE n | NOCACHE] <-- 속도개선을 위한 캐싱여부(성능에 영향을 미침)


6. 연습문제
가. 교수 번호, 이름, 학과 번호를 제외한 칼럼은 NULL을 가지도록 묵시적인 방법으로 입력하세요
(교수번호 : 9910, 이름:이순신 , 학과번호:201)
1
2
insert into professor (profno, name, deptno)
values (9910, '이순신', 201);


나. 이순신 교수의 직급은 사용자 아이디가 'Pascal'인 교수와 동일하게 하고, 급여는 교수 번호가 '9908'인 교수와 동일하게 수정하여라.
1
2
3
4
5
6
7
8
update professor set
position = (select position
from professor
where userid='Pascal'),
sal = (select sal
from professor
where profno=9908)
where name='이순신';


다. 보직 수당이 NULL 인 교수의 보직수당을 보직수당을 최소로 받는 교수의 보직수당과 동일하게 수정하여라.
1
2
3
4
update professor set
comm = (select min(comm)
from professor)
where comm is null;


7. 데이터 삭제방법 및 차이
가. delete : 원하는 데이터만 삭제 가능, 공간 미회수, rollback 가능
나. truncate : 테이블 구조만 남기고 삭제, 공간 회수, rollback 불가능
다. drop : 테이블 전체 삭제, 공간 회수, rollback 불가능


8. Data Dictionary
가. 설명 : 사용자와 시스템 자원을 효율적으로 관리하기 위한 다양한 시스템 정보를 저장
나. Data Dictionary View 종류
- DBA_ : DBA 권한을 가진 사용자만 조회할 수 있는 데이터 사전 뷰
- ALL_ : 한 특정 사용자가 조회 가능한 모든 데이터 사전 뷰,
객체의 주인이 아니더라도 접근권한이 있으면 조회가능
- USER_ : 한 특정 사용자에게 종속되어 있고, 그 사용자가 조회가능한 사전 뷰, ALL_ 뷰의 부분 집합.


9. 연습문제
가. 테이블 생성1
1
2
3
4
5
6
7
8
create table member (userid varchar2(10),
username varchar2(10),
passwd varchar2(10),
idnum varchar2(10),
phone number(13),
address varchar2(20),
regdaate date,
interest varchar2(15));


나. 테이블 생성2
1
2
create table member_second
as select * from member;


다. 테이블 생성3
1
2
create table member_third
as select userid, username, passwd from member;


라. 테이블 생성4
1
2
create table member_forth
as select * from member where 1=2;


마. 컬럼 추가1
1
alter table member add(email varchar2(50))


바. 컬럼 추가2
1
alter table member add(country varchar2(20) default 'Korea');


사. 컬럼 삭제
1
alter table member drop column email;


아. 컬럼 타입수정
1
alter table member modify (address varchar(30));


자. 컬럼 이름수정
1
alter table member rename column address to addr;


차. 테이블 이름 변경
1
rename member_second to potential_member;

반응형

'DB > Oracle Basic' 카테고리의 다른 글

SQL 문법(INDEX, 인덱스)  (0) 2012.07.06
SQL 문법(데이터 무결성 제약조건)  (0) 2012.07.06
SQL 문법(Sub query)  (0) 2012.07.06
SQL 문법( Join - 2 )  (0) 2012.07.06
SQL 문법( Join - 1 )  (0) 2012.07.06