코딩하는 도로시

코딩 교육, 코딩 과학, 코딩 동화, 코딩 게임 등등! 아이부터 어른까지 모두 가능한 코딩! 함께 해보아요~~

개발메모장

SQL 기본명령어2

dorosy 2014. 12. 18. 17:03

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