SQL 문은 크게 3가지로 나눌수 있습니다.
DDL, DML, DCL
- DDL은 '데이터 정의문' 으로 여기에 포함되는 명령어에는
create, alter, drop 이 있습니다.
create [object] [obj_name] [필수옵션] [선택옵션] ;
alter [object] [obj_name];
drop [object] [obj_name];
이와 같은 구조로 사용하는데,
www.gurubee.net 사이트에 자세히 나와 있으니 참고하세요^^
- DML 은 '주로 테이블에 데이터를 넣고, 빼고, 수정하고, 검색하는데 사용되는 명령어로써
inert, update, delete, select 가 있습니다.
- DCL 은 제어문으로써 권한을 부여하는 grant 와 권한을 뺏어오는 revoke 가 있습니다.
1. CREATE TABLE, DROP TABLE, INSERT, UPDATE, SELECT
/*
직원 정보 테이블 emp를 작성하시오
4자리의 empno, 이름(ename), 직책(job), 관리자번호(mgr),
입사일(hiredate) date, 급여(sal), 보너스(bonus)로 구성된다.
*/
-- CREATE TABLE
create table emp(
empno number(4) primary key,
ename nvarchar2(5),
job nchar(5),
mgr number(4),
hiredate date,
sal number(10),
bonus number(10)
);
-- INSERT
insert into emp(empno, ename, job, hiredate, sal, bonus) values(1, '길동' ,'사장', '1999.09.18', 50000000, 10000000 );
-- UDATE
update emp set ename = '홍길동' where empno = 1;
-- SELECT
select * from emp;
-- DROP TABLE
drop table emp;
2. 테이블에 데이터 삽입, 추가, 갱신 예제
-- 사원테이블에 9001번, 홍길동, 영업, 부서번호 30번을 추가하시오.
insert into emp(empno, ename, job, deptno) values(9001, '홍길동', '영업', 30);
select empno, ename, job,deptno from emp where ename = '홍길동';
-- 사원테이블에 9002번, 전우치, 급여 10000, comm 3000, 부서번호 40번을 추가하시오.
insert into emp(empno, ename, sal, comm, deptno) values(9002, '전우치', 1000, 3000, 40);
select empno, ename, sal, comm, deptno from emp where ename = '전우치';
-- 홍길동의 job을 '자재'로 변경하시오.
update emp set job='자재' where ename='홍길동';
select empno, ename, job,deptno from emp where ename = '홍길동';
-- 전우치의 급여를 15000로 변경하시오.
update emp set sal = 15000 where ename='전우치';
select empno, ename, sal, comm, deptno from emp where ename = '전우치';
-- 사원 테이블에서 사번, 이름, 수령액을 출력하시오.
-- 단 수령액은 급여와 comm의 합계로 하시오.
select empno 사번, ename 이름, comm+sal 수령액 from emp;
--홍길동, 전우치의 데이터를 삭제하시오.
delete from emp where ename='홍길동';
delete from emp where ename='전우치';
select empno, ename, job from emp;
3. sql developer 로 테이블 생성, 조작, 삭제하기. 테이블에 데이터 삽입, 추가, 삭제하기.
이번에는 똑같은 과정을 sql developer로 조작해보겠습니다.
-- create table
create table students(
s_id number(3) primary key,
s_name nvarchar2(5),
s_age number(3),
s_test nvarchar2(5)
);
-- you can show students table
select * from students;
테이블을 생성하고 전체테이블을 출력하면 저렇게 column이 내가 지정한 대로 잘 만들어진 것을 볼 수 있습니다.
-- delete column s_test from students table
alter table students drop column s_test;
-- you can show students table
select * from students;
그 중 s_test 라는 열을 없애주도록 합시다.
이것은 테이블 안의 데이터가 아니라 테이블 자체를 갱신하는 것이므로
DDL 에 속하는 alter를 사용하여야 합니다.
제대로 하고 전체 student table 을 출력한다면 위의 화면과 같은 결과를 볼 수 있을 것입니다.
-- insert data into table
insert into students values(1,'서하림',25);
insert into students values(2,'서하림',25);
insert into students values(3,'서하림',25);
-- you can show students table
select * from students;
이번엔 테이블에 데이터 3개를 넣어주겠습니다.
단 주의 사항!!!
위에서 primary key 로 지정한 s_id 값은 절대 중복되면 안되요. ㅎㅎ
이유가 궁금하신 분은 primary key를 인터넷에 검색해보심이. ^^
-- modify information of students table
update students set s_name = '카토리', s_age = 23 where s_id = 3;
update students set s_name = '줄리앙', s_age = 35 where s_id = 2;
-- you can show students table
select * from students;
조금 전에 입력했던 데이터 행 중, 두번째와 세번째 행의 내용을 변경해보도록 하겠습니다.
s_id 가 3인 행의 s_name 은 '카토리' 라는 이름으로, s_age는 23살로 바꾸고,
s_id 가 3인 행의 s_name 은 '줄리앙' 라는 이름으로, s_age는 35살로 바꾸었습니다.
다시 students table을 출력하였더니,
올바르게 변경된 내용으로 테이블이 출력됩니다.
-- delete information of students table
delete students where s_name = '줄리앙';
-- you can show students table
select * from students;
이번에는 delete 명령어를 이용하여 이름이 줄리앙으로 지정되어 있는 2번 째 행을 지워보도록 합니다.
전체 테이블을 출력해보니, 두번 째 행이 삭제 되었군요^^
drop table students;
자, 마지마으로 우리가 test용으로 사용했던 테이블을 제거해봅시다.
drop 명령어를 이용하여 테이블을 삭제하면!!
스크립트 출력창에 제대로 삭제되었다고 뜨는군요.
^0^
'개발메모장' 카테고리의 다른 글
SQl 기본명령어3 (0) | 2014.12.18 |
---|---|
SQL Contraint(제약조건) (0) | 2014.12.18 |
SQL 기본 명령어 (0) | 2014.12.18 |
Oracle, sql developer 설치 (0) | 2014.12.18 |
Template 패턴, Singleton 패턴 (0) | 2014.12.18 |