✔ 트랜잭션 시작
3. insert (첫번째 행)insert into my_employee values (1, 'Patel', 'Ralph', 'rpatel', 895);
- insert (두번째 행)
insert into my_employee values (2, 'Dancs', 'Betty', 'bdancs', 860);
- select (미리보기)
select * from my_employee;
- insert + 치환변수(&) (세번째 행)
=> load_emp.sql 스트립트 파일 생성(저장)SQL> insert into my_employee values (&id, '&lname', '&fname', '&uid', &sal); SQL> save /home/oracle/load_emp.sql
- load_emp.sql 스크립트 파일을 활용 insert (네번째 행)
SQL> @/home/oracle/load_emp.sql
- select (미리보기)
select * from my_employee;
- commit;
✔ 트랜잭션 종료
✔ 트랜잭션 시작
10. updateupdate my_employee set last_name = 'Drexler' where id = 3;
- update
update my_employee set salary = 1000 where salary < 900;
- select (미리보기) 4개
- delete
delete from my_employee where first_name = 'Betty';
- select (미리보기) 3개
- commit;
✔ 트랜잭션 종료
✔ 트랜잭션 시작
16. load_emp.sql 활용 insert (다섯번째 행)SQL> @/home/oracle/load_emp.sql
- select (미리보기)
- savepoint 생성 (저장점 생성)
savepoint test1;
- delete (모든행 삭제)
delete from my_employee;
- select (미리보기)
- savepoint로 롤백
SQL> rollback to test1;
- select (미리보기)
- commit;
✔ 트랜잭션 종료
1. Base tables
2. Data dictionary views
✔ Table
◽ view
◽ Sequence
◽ Index
◽ Synonym
[참고] 데이터 모델링
요구사항 수집 및 분석 -> 개념모델링(ERD)
-> 논리모델링(구체화된 ERD, 테이블차트) -> 물리모델링(create table ---;)
create table dept
(deptno number(2),
dname varchar2(14),
loc varchar2(13),
create_date date default sysdate);
[제약조건 선언 시기]
[제약조건명 지정]
사용자(개발자) 지정 : 고유하고 의미있는 제약조건명 부여를 권장함
ex) 테이블약자_컬럼약자_제약조건유형약자
emp_eid_pk
emp_lname_nn
dept_locid_fk
사용자(개발자) 생략 : Oracle이 고유한 제약조건명 자동 부여함
[제약조건 선언 문법]
컬럼레벨의 문법
테이블레벨의 문법
create table test1
( id number(10) constraint t1_id_nn not null,
name varchar2(30) constraint t1_name_nn not null,
job varchar2(20), email varchar2(20),
phone varchar2(20) constraint t1_ph_nn not null,
start_date date );
create table test2
( id number(10) constraint t2_id_nn not null
constraint t2_id_uk unique,
name varchar2(30) constraint t2_name_nn not null,
job varchar2(20),
email varchar2(20),
phone varchar2(20) constraint t2_ph_nn not null
constraint t2_ph_uk unique,
start_date date,
constraint t2_email_uk unique(email) );
create table test3
( id number(10) constraint t3_id_pk primary key,
name varchar2(30) constraint t3_name_nn not null,
job varchar2(20), email varchar2(20),
phone varchar2(20) constraint t3_ph_nn not null
constraint t3_ph_uk unique,
start_date date,
constraint t3_email_uk unique(email) );
[ex1] salary number(10),
constraint OOO check (salary > 0),
(==)
salary number(10) constraint OOO check (salary > 0),
[ex2] 주민번호 varchar2(13),
constraint OOO check (length(주민번호) = 13),
(==)
주민번호 varchar2(13) constraint OOO check (length(주민번호) = 13),
[ex3] 성별 varchar2(10),
constraint OOO check (성별 in ('남', '여')),
(==)
성별 varchar2(10) constraint OOO check (성별 in ('남', '여')),
create table employees1
( employee_id number(6)
constraint emp1_employee_id primary key,
first_name varchar2(20),
last_name varchar2(25)
constraint emp1_last_name_nn not null,
email varchar(25)
constraint emp1_email_nn not null,
constraint emp1_email_uk unique,
phone_number varchar2(20),
hire_date date
constraint emp1_hire_date_nn not null,
job_id varchar2(10)
constraint emp1_job_nn not null,
salary number(8,2)
constraint emp1_salary_ck check(salary>0),
commission_pct number(2,2),
manager_id number(6)
constraint emp1_manager_fk references
employees1 (employee_id)
department_id number(4)
constraint emp1_dept_fk references
departments (department_id));