노력과 삽질 퇴적물
DB: 오라클 기초 (3) 본문
* 오라클 자체가 설치되었다는 전제상황인 요약정리입니다.
* 사용환경
-> 이클립스 유노(Eclipse Juno R Packages)
-> 오라클 엔터프라이즈 (Oracle Database 10g)
-> easy-quantum-3.0.6 [공식 홈페이지] [이클립스 플러그인 페이지]
-> 오라클 JDBC 드라이버 (ojdbc14.jar)
07. 테이블 관리
01. 테이블 만들기 |
|
create table mytable(num number(4), name varchar(20), height number(5,1)); |
02. 테이블 삭제 |
|
--일반삭제, 복원가능 drop table mytable; | --완전삭제, 복원불가 drop table mytable purge; |
03. 테이블 복사 | ||
--전체복사 create table clonetable as select *from original; |
--양식만 복사 create table clonetable as select *from original where 1=0; |
--테이블 내용만 복사 insert into clonetable select * from original; |
04. 테이블/컬럼의 값 관리 -> 컬럼(필드) 추가/명명/자료형변경/삭제 추가 alter table mytable add(email varchar(50)); 자료형변경 alter table mytable modify(email varchar2(10)); 명명 alter table mytable rename column email to mail; 삭제 alter table mytable drop column mail; |
||
--컬럼에 새로운값 넣기 insert into mytable(num, name, height) values(1, '홍길동', 180.1); insert into mytable(num, name, height) values(2, '전우치', 175.5); |
--특정값 변경 update mytable set name='김길동' --바꿀내용값 where num=2; update address set phone='010-0001-0009' where num=3; |
--레코드 삭제 delete from mytable;--전체레코드 삭제 delete from address where num=1; |
08. 고급제어
01. 트랜젝션 관리 commit : 저장되지 않는 데이터를 저장하고 종료. savepoint : 현재까지의 트랜젝션을 특정 이름으로 변경 rollback : 저장되지 않는 모든 데이터 변경을 취소 |
savepoint a; delete from sungjuk where num=2; savepoint b; delete from sungjuk where num=3; rollback to b; --문맥상 num=3가 삭제되기전으로 되돌려짐. |
02. VIEW -> 논리적 가상 테이블. 복잡하고 긴 쿼리문을 뷰로 정의해서 접근, 보안에 유리. |
|
select s.num, s.name, j.total, j.average from sungjuk s, sungjuk j where s.num = j.num; --아래 'create view school as'와 이어짐. create view school as select name, phone from address where num=3; select * from school;-- 정의된거 사용하기 | --뷰변경 create or replace view school as select s.num, s.name, j.total, j.average from sungjuk s, sungjuk j where s.num = j.num; select * from school; |
03. ROWID & ROWNUM |
select rowid, rownum 임시번호, -- rownum은 추출하면 순번을 준다. name 이름, total 총점, average from school order by average desc, rownum asc; |
04.
제약조건 -- NOT NULL 해당컬럼값으로 NULL을 허용치 않음. -- UNIQUE 컬럼값은 항 유일. -- PRIMARY KEY 반드시 존재. 유일(NOT NULL * UNIQUE) -- FOREGIN KEY 해당컬럼값은 다른 테이블에 참조 -- CHECK 설정된 값만 입력을 허용. 나머지는 거부 | |||||
--PRIMARY KEY create table major ( hak_number number(2) primary key, hak_name varchar(10), constraint major_hak_number_pk --primary key primary key(hak_number) ); insert into major values(10, '전자과'); insert into major values(20, '전산과'); insert into major values(30, '기계과'); insert into major values(40, '전기과'); | create table student ( num number(2) primary key, name varchar2(20), hak_number number(2), constraint student_hak_number_fk foreign key(hak_number) references major(hak_number) ); insert into student values(1, '전자과', 10); insert into student values(2, '전산과', 70); --insert into student values(3, '기계과', ''); |
05. SEQUENCE -> 추천자료: 시퀀스(SEQUENCE) |
|
create table mgs(num number(2) not null, message varchar(20) not null, constraint mgs_num_pk primary key(num) );--해당 테이블 생성은 아래의 시퀀스에 앞서 필요한 전제조건 create sequence mgs_num_sql start with 10 --시작번호 increment by 5 -- i++같은거 cache 100; --100개를 생성? insert into mgs values(mgs_num_sql.nextval, '안녕하세요');-- 존재하는 테이블에 맞는 입력인수여야 한다. insert into mgs values(mgs_num_sql.nextval, '반갑습니다'); insert into mgs values(mgs_num_sql.nextval, '밥먹자'); |
DROP SEQUENCE 삭제할시퀀스네임; |
09. 기타
01. 날짜관련 |
--create table today(d1 date, d2 sysdate. t timestamp, ym interval year to month, ds interval day to second); |
* 중복제거 검색
distinct
-> select distinct department_id from employees;
'📂기초 및 세팅 note > DB & NW' 카테고리의 다른 글
DB: NoSQL과 Amazon DynamoDB (0) | 2017.05.11 |
---|---|
DB: MS-SQL, (1)설치 (0) | 2013.01.15 |
DB: 오라클 계정 비밀번호 분실 (0) | 2012.09.24 |
DB: 오라클 기초 (2) (1) | 2012.07.23 |
DB: 오라클 기초 (1) (0) | 2012.07.23 |