관리 메뉴

nkdk의 세상

오라클 DB 설계 및 활용 2일째 1번째 내용 본문

My Programing/DataBase

오라클 DB 설계 및 활용 2일째 1번째 내용

nkdk 2008. 3. 7. 19:19
* data type : number, number(), number(5,2)
숫자는 32자 까지 가능하다.
char(), varchar2()
* char는 고정적인 데이터일 경우 varchar2는 가변데이터일경우
date, timestamp -> 날짜와 초단위의 밀접한 것까지 표헌
clob, blob, bfile -> 거의 무 한대에 가까운 데이터 입력시 사용

create table test(no number primary key, name varchar2(10) not null,
tel varchar2(15), addr varchar2(30));

해당 설명 test라는 테이블을 생성한다
no 라는 숫자형 프라이머리키에, name이라는 가변데이터10자리에 null값이 올 수 없다. tel에 가변형데이터15자리와, addr이라는 30자리 가변형 데이터를 만들었다.

desc test; <- description test의 약자로 test의 내용을 나타낸다.

* PK부여시 대상 칼럼 자격
1. 해당 업무에서 자주 이용되는 속성을 지정(EX: 사번, 주민등록번호)
(숫자가 짧고, 활용도가 높은 걸 primaryKey로 사용한다.
2. 속성값의 길이가 가변적인 속성은 부적당(EX: 부서명)
3. 속성값이 자주 변하는 속성은 부적당 (EX: 이메일)
(이메일의 경우 유일할수 있으나 변할수 있음)
4. NOT NULL이어야 한다.(EX: 휴대전화, 집전화)

-- 자료추가의 4가지 예
형식) insert into 테이블명(칼럼명,...) values(입력자료,...) <-입력자료에서 숫자인 경우를 제외하고는 나머지는 모두 작은따옴표(')로 묶어 줘야 한다.
입력 예제1)
insert into test(no,name,tel,addr) values(1,'인사과','123-1111','서울');
입력 예제2)
insert into test values(2,'영업과','123-2222','서울시 중구');
<- 개수가 일치하다면 칼럼명을 생략해도 됩니다.
입력 예제3)
insert into test(no,name) values(3,'자재과');
입력 예제4)
insert into test(name, addr, no, tel) values('비서실','서울',4,'123-0001');

select * from test; <- test에 자료가 잘 들어 갔나 확인
commit; <- 오라클 서버에 갱신하기 위해서 사용함.

no의 정확한 개념은 scott.test.no 가 정확한 표현이다.

** 입력의 오류 예제
insert into test(no,addr) values(5,'영업2과');
- > (오류의이유: not null인 name 에 자료를 넣지 않았음으로 자료 입력이 안됩니다.)
insert into test(no,addr) values(4,'영업2과');
- > (오류의 이유: 무결성에 걸림. 이미 4라는 no가 있으므로 인하여 오류가 남)
(primary key는 오직 유일해야 하며 같은 테이블 안에서 같은 값이 올수 없다)
insert into test(no,addr) values(5,'우리 회사에서 가장 잘 나가는 영업2과');
_> (오류의 이유: addr에 대한 값이 지정한 10바이트보다 더 많기 때문에 오류가 남)

-- select 문으로 검색하기
select * from test where no=3; -- 조건 부여로 레코드 검색할 경우 사용

--자료의 수정
update 테이블명 set 칼럼명=수정할값,... where 조건
update test set name='경리과' where no=1;
<-where를 꼭 사용 할 것 사용하지 않으면 전부 변경된다.
update test set name='전산과', addr='인천' where no=2;
<- 2개 이상에 대해서도 수정할 수 있다.(name, addr값을 변경)
update test set addr='' where no=1;
update test set addr=null where no=1;
update test set name=null where no=1; <- 오류임

-- 자료 삭제
형식) delete from 테이블명 where 조건 -- commit 포함 안됨
truncate table 테이블명 - 모든행 삭제, commit 까지되버림
예제)
delete from test where no=1;
select * from test 로 확인 해보면 1번 레코드가 삭제되어 있는 것을 확인 할 수 있다.
예제2)
delete from test; <- 모든 레코드가 삭제 된다.

drop table test; <- 구조 자체를 제거해 버린다. (no, name, tel, addr) 구조를 전부 삭제해 버린다.

1부는 일단 여기까지 공부 한 것 같네요. 빠진 내용은 보충해 주세요.^^