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

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)

insert into professor (profno, name, deptno)
values (9910, '이순신', 201);

나. 이순신 교수의 직급은 사용자 아이디가 ‘Pascal’인 교수와 동일하게 하고, 급여는 교수 번호가 ‘9908’인 교수와 동일하게 수정하여라.

update professor set 
    position = (select position 
            from professor
                where userid='Pascal'),
    sal = (select sal 
           from professor 
               where profno=9908)
    where name='이순신';

다. 보직 수당이 NULL 인 교수의 보직수당을 보직수당을 최소로 받는 교수의 보직수당과 동일하게 수정하여라.

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

create table table_name(userid varchar2(10),
username varchar2(10),
passwd varchar2(10),
idnum varchar2(10),
phone number(13),
address varchar2(20),
regdaate date,
interest varchar2(15));

나. 테이블 생성2

create table table_name2
as select * from table_name;

다. 테이블 생성3

create table table_name3
as select userid, username, passwd from table_name;

라. 테이블 생성4

create table table_name4
as select * from table_name where 1=2;

마. 컬럼 추가1

alter table table_name add(email varchar2(50))

바. 컬럼 추가2

alter table table_name add(country varchar2(20) default 'Korea');

사. 컬럼 삭제

alter table table_name drop column email;

아. 컬럼 타입수정

alter table table_name modify (address varchar(30));

자. 컬럼 이름수정

alter table table_name rename column address to addr;

차. 테이블 이름 변경

rename table_name to potential_member;

You may also like...

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다