--TCL (데이터의 영구저장 또는 취소)
--트랜젝션
--commit, rollback, savepoint
--commit : 데이터 영구 저장 (테이블이 데이터 반영)
-- create구문을 사용해서 객체 생성할 때 (자동)
--rollback : 데이터 변경 취소 (테이블이 데이터 미반영) 원상복구
-- 천재지변, 전기, 전쟁(자동)
create table dept01
as
select * from dept;
select * from dept01;
--지워진거 아님 (외부접속시 조회가능)
--완전하게 반영하려면 commit; 작업 필요하다
delete from dept01;
commit;
--데이터 복구, 커밋이 완료되면 적용되지 않는다
--마지막 commit 지점까지만 가능하다
rollback;
drop table dept01;
-------------truncate = delete 같음
--트랜젝션 적용 가능 유무
--delete commit rollback 가능
delete from dept01;
--commit rollback 불가능
truncate table dept01;
--cmd 확인
--sqlplus scott/tiger
--select * from dept01;
-----DDL(데이터 정의어) : table(모든 객체)을 생성, 삭제 변경하는 명령어
--creat(생성), alter(변경), drop(삭제)
--create table 테이블 명( --table(객체)
-- 컬럼명1 타입, --column(속성)
-- 컬럼명2 타입,
-- 컬럼명3 타입
-- );
create table emp_ddl(
--사번, 이름, 직책, 관리자, 입사일, 급여, 성과금, 부서번호
empno number(4),
ename varchar2(10), --byte 기준
job varchar2(9),
mgr number(4),
hiredate date,
sal number(7,2), --전체는 7자리, 중 2자리는 소수자리)
comm number(7,2),
deptno number(2)
);
select * from emp_ddl;
insert into emp_ddl
values (9999,'유리미','MANAGER',1111,SYSDATE,4000,NULL,10);
--똑같은 테이블 생성(테이블의 복사) :AS
CREATE TABLE DEPT_DDL
AS
SELECT * FROM DEPT;
SELECT * FROM DEPT_DDL;
--조건에 맞는 데이터만 가져온다
CREATE TABLE DEPT_30
AS
SELECT * FROM DEPT
WHERE DEPTNO = 30;
--컬럼을 일부만 가져오게
CREATE TABLE DEPT_M
AS
SELECT DNAME, LOC
FROM DEPT;
--테이블 구조만가져오게
CREATE TABLE DEPT_D
AS
SELECT * FROM DEPT
WHERE 1 != 1;
SELECT * FROM DEPT_30;
--테이블 변경(컬럼의 정보수정)
--새로운 컬럼추가, 컬럼의 이름변경, 자료형의 변경, 컬럼을 삭제
--ALTER
CREATE TABLE EMP_ALTER
AS
SELECT * FROM EMP;
SELECT * FROM EMP_ALTER;
--컬럼추가
ALTER TABLE EMP_ALTER
ADD ADDRESS VARCHAR2(100);
--이름변경
ALTER TABLE EMP_ALTER
RENAME COLUMN ADDRESS TO ADDR;
--키우는 것만 가능
ALTER TABLE EMP_ALTER
MODIFY EMPNO NUMBER(10);
DESC EMP_ALTER;
--삭제
ALTER TABLE EMP_ALTER
DROP COLUMN ADDR;
--테이블 삭제 : DROP
--DROP TABLE 테이블명
DROP TABLE EMP_ALTER;
SELECT * FROM EMP_ALTER;
-------------------------------P324연습문제
CREATE TABLE EMP_HW(
EMPNO NUMBER(4),
ENAME VARCHAR2(10),
JOB VARCHAR2(9),
MGR NUMBER(4),
HIREDATE DATE,
SAL NUMBER(7,2),
COMM NUMBER(7,2),
DEPTNO NUMBER(2)
);
SELECT * FROM EMP_HW;
SELECT * FROM EMP;
ALTER TABLE EMP_HW
ADD BIGO VARCHAR2(20);
ALTER TABLE EMP_HW
MODIFY BIGO VARCHAR(30);
ALTER TABLE EMP_HW
RENAME COLUMN BIGO TO REMARK;
INSERT INTO EMP_HW(REMARK)
VALUES(NULL);
INSERT INTO EMP_HW
SELECT * FROM EMP;
INSERT INTO EMP_HW
SELECT EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO, NULL FROM EMP;
INSERT INTO EMP_HW(REMARK)
VALUES(NULL);
SELECT * FROM EMP_HW;
DROP TABLE EMP_HW;
'oracle' 카테고리의 다른 글
1021_제약조건(not null, unique, primary key) (0) | 2022.10.25 |
---|---|
1021_인덱스 (0) | 2022.10.25 |
1021_ DQL(Data Query Language, 질의어) (0) | 2022.10.25 |
1021_DML(Data Manipulation Language, 조작어) (0) | 2022.10.24 |
1020-Join문 (0) | 2022.10.24 |