9일차 수업내용
테이블 작성
create table userTBL0321(
userid char(8) not null,
username nvarchar2(10) not null,
birthyear number(4) not null,
addr NCHAR(2) not null,
mobile1 char(3),
mobile2 char(8),
height number(3),
mdate date
);
create table buyTBL0321(
idnum number(8),
userid char(8),
prodname nchar(6),
groupname nchar(4),
price number(8),
amount number(3)
);
create or replace view v_buyTBL -- 만들거나 수정하기
as
select username as 이름, prodname as 상품명, price as 가격, amount as 수량
from buyTBL1;
create view Vv_buyTBL
as
select 이름, 상품명 from v_buyTBL;
update vv_buyTBL set "상품명" = '바지2'
where 이름='바비킴';
create or replace view Vv_buyTBL
as
select 이름, 상품명 from v_buyTBL
WITH READ ONLY; -- 읽기전용(수정 불가능)
select * from VV_buyTBL;
CREATE TABLE bankBook
(
name NVARCHAR2(10),
money INT ,
CONSTRAINT CK_money CHECK (money >= 0)
);
insert into bankBook values('영심이', 1000);
insert into bankBook values('당탕이', 0);
commit;
ROLLBACK ;
select * from bankBook;
begin
update bankBook set money = money -500 where name='영심이';
update bankBook set money = money +500 where name='당탕이';
end;
--begin을 잡아주면 트랜잭션 하는 블록으로 잡아줌
commit;
ROLLBACK ;
select * from bankbook;
ROLLBACK;
: DDL 만드는 즉시 Commit 되기 때문에 DDL 동작 이후 상태로 돌아감
: 세이브 포인트가 있더라도 이후에 Commit 동작시 Commit 동작한 상태로 돌아감
savepoint 세이브포인트명;-- 중간 저장 기능
ROLLBACK to 세이브포인트명; -- 세이브포인트명으로 복구
commit; -- UI에서 저장이 동기화되지 않으면 누락되는 경우가 있음
create index 인덱스명 on 테이블명(컬럼명)
create 와 drop만 사용 : 추가및 수정이 불가능
백업과 복원
1. 전체 데이터 베이스를 백업할때
: EXP userid=SYSTEM/비밀번호@xe FULL=y FILE=백업할 경로 및 파일
2. 관리자(system)가 다른 스키마(=사용자) 전체를 백업할 때
: EXP userid=SYSTEM/비밀번호@xe OWNER=사용자명
FILE=백업할 경로 및 파일
3. 일반 사용자가 자신의 전체 스키마를 백업할때
: EXP userid=사용자명/비밀번호@xe FILE=백업할 경로 및 파일
4. 일반 사용자가 특정 테이블만 백업할때
: EXP userid=사용자명/비밀번호@xe FILE=백업할 경로 및 파일
TABLES=(테이블명 1, 테이블명 2...)
1. 전체 데이터 베이스를 복원할때
: IMP userid=SYSTEM/비밀번호@xe FULL=y FILE=백업할 경로 및 파일
2. 관리자(system)가 다른 스키마(=사용자) 전체를 복원할 때
: IMP userid=SYSTEM/비밀번호@xe FROMUSER=사용자명 TOUSER=사용자명
FILE=백업할 경로 및 파일
3. 일반 사용자가 자신의 전체 스키마를 복원할때
: IMP userid=SYSTEM/비밀번호@xe FILE=백업할 경로 및 파일
4. 일반 사용자가 특정 테이블만 복원할때
: IMP userid=SYSTEM/비밀번호@xe FILE=백업할 경로 및 파일
TABLES=(테이블명 1, 테이블명 2...)
C:\exp userid=SYSTEM/1234@xe OWNER=sqlDB
FILE=c:\DB백업\sqlDB01.dmp
create or replace table aaa(
idx number(3)
);
drop table bigdata;
C:\imp userid=system/1234@xe fromuser=sqlDB touser=sqlDB
FILE=c:\db백업\sqlDB01.dmp
C:\DB백업>imp userid=system/1234@xe fromuser=sqlDB touser=sqlDB
FILE=c:\db백업\sqlDB01.dmp tables=(aaa)
cd / 폴더명명 - 해당 폴더로 이동
cd ./ - 현 디렉토리로 이동(사용성 ↓)
cd ../ - 상위 디렉토리로 이동
cd/ - 가장 초기 디렉토리로 이동 변경 (윈도우, UNIX, LINUX 가능)
cd \ - 가장 초기 디렉토리로 이동 변경 (윈도우에서만 가능)
절대경로 - C:\... 하드디스크 기준으로 경로(편의 ↑)
상대경로 - 현재 사용중인 파일의 기준의 경로
(INCLUDE 동작시 경로가 변경될 수 있음)
mySQL 만들기 , 권한부여 하기
show database; 데이터 베이스 보기
use ppk; ppk 데이터베이스를 사용
show tables; 테이블 보기
create database ppk;
grant select, insert, update, delete, create, drop, alter
on ppk.* to 'ppk'@'localhost' identified by '1234' ;
grant select, insert, update, delete, create, drop, alter
on ppk.* to 'ppk'@'%' identified by '1234' ;
프로시저
desc buyTBL;
create or replace procedure ps_buyTBL
(
b1 VARCHAR2,
b2 VARCHAR2,
b3 number,
b4 number
)
is
begin
insert into buyTBL (고객이름, 구매한물건, 단가, 수량)
values(b1, b2, b3, b4);
end;
execute ps_buyTBL('김범수','노트북',1000,5);
select * from buyTBL;
오늘은 새로배운 복원과 백업이 기억에 남는다.
오라클 툴로 테이블을 생성하고 현재의 테이블을 더미파일로 작성하여
백업을 해둔다.
그리고 테이블을 삭제한 뒤에 다시 더미파일을 이용해 복원을 했다.
이때 CMD(커맨드)창을 활용하며 진행했다.
새로운걸 배우는건 항상 즐거운거 같다.
기본 개념부터 이해해서 지식을 활용하는 실력있는 개발자가 되고싶다.