# 기존 테이블 정보를 이용해서 새로운 테이블 정의하기
SELECT dno, dname FROM dept;
CREATE TABLE test_dept
as
select dno, dname from dept;
select * from dept;
select * from test_dept;
.
.
.
-- 검색하기
select * from dept;
-- 전체 복사
create table abcd
as
select * from dept; -- 이건 모든 내용을 복제한것
-- 구조만 복사
create table abcd
as
select * from dept where 0=1;
select * from abcd;
.
.
.
# 뷰 만들기
create view dept_view
as
select * from dept;
select * from dept_view;
.
.
.
# 인덱스 만들기
create index dept_idx
on dept(dno desc);
.
.
.
# ALTER TABLE에 관하여
select * from test;
desc test;
-- 항목추가
alter table test add tot integer;
-- 변경
alter table test MODIFY name varchar2(40);
--컬럼 살제
alter table test drop column tot;
.
.
.
# DROP(삭제)에 관하여
DROP TABLE TEST CASCADE; -- 참조중이어도 삭제
DROP TABLE TEST RESTRICT; -- 참조중이면 삭제불가
DROP TABLE DEPT_IDX;
DROP VIEW;
.
.
.
-- 사용자 추가하기
CREATE USER USER01 IDENTIFIED BY 1234;
--권한부여
GRANT CONNECT, RESOURCE TO USER01;
--권한취소
REVOKE CONNECT, RESOURCE FROM USER01;
.
.
.
SELECT * FROM EMP;
DELETE FROM EMP WHERE ENO=7369;
ROLLBACK; -- 되돌리기 기능
COMMIT -- 커밋을 하면 되돌릴수없음
.
.
.
# INSERT INTO
SELECT * FROM DEPT;
INSERT INTO DEPT(DNO,DNAME,LOC) VALUES(50,'인사과','대전');
INSERT INTO DEPT VALUES(50,'인사과','대전');
.
.
.
#DELETE (WHERE절 사용해서 특정행 삭제하기)
SELECT * FROM DEPT;
DELETE FROM DEPT WHERE DNO=50;
.
.
.
# UPDATE 하기
SELECT * FROM DEPT;
UPDATE DEPT SET LOC='서울' WHERE DNO=60;
UPDATE DEPT SET DNAME='자재과',LOC='서울' WHERE DNO=70; -- 여러개 갱신할때 콤마로 구분
.
.
.
# SELECT절을 이용해서 검색하기
SELECT * FROM EMP; -- 전체항목 가져오기
SELECT DNO, ENAME, JOB FROM EMP; -- 원하는 항목만 가져오기
.
.
.
.
# BETWEEN(AND), IN(OR)
SELECT * FROM EMP;
-- BETWEEN(AND), IN(OR)
SELECT * FROM EMP WHERE SALARY BETWEEN 1000 AND 1500;
SELECT * FROM EMP WHERE SALARY>=1000 AND SALARY<=1500;
SELECT * FROM EMP WHERE COMMISSION IN(300,500,1400);
SELECT * FROM EMP WHERE COMMISSION OR COMMISSION=500 OR COMMISSION=1400;
-- 와일드 카드(%, _)
SELECT * FROM EMP WHERE JOB LIKE '%A%';
.
.
.
# NULL찾기
SELECT * FROM EMP;
-- NULL인 것만 찾기
SELECT * FROM EMP WHERE COMMISSION IS NULL;
-- NULL이 아닌것만 찾기
SELECT * FROM EMP WHERE COMMISSION IS NOT NULL;
.
.
.
# JOIN
-- join 두개 이상의 테이블에서 검색
-- 카디시안 곱
select * from emp;
select * from dept;
select * from emp, dept; -- 두개의 테이블 합치기