Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- node.js web framework
- 주식이야기
- Cross
- Eclipse
- C/C++
- iBatis
- scala
- ajax
- 스킨 스쿠버
- 나의 취미
- 도커
- 베트남어
- Lift
- 메일왕창보내는법
- 명사 분석기
- 명사 추출기
- ejb
- express for node.js
- 명사 뽑아내기
- php thumbnail
- docker
- rss
- nodejs express
- Node.js
- 디즈니씨
- php
- 나의 프로젝트
- flex3
- ror실행
- 책이야기
Archives
- Today
- Total
nkdk의 세상
오라클 DB 설계 및 활용 2일째 1번째 내용 본문
* 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부는 일단 여기까지 공부 한 것 같네요. 빠진 내용은 보충해 주세요.^^
숫자는 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부는 일단 여기까지 공부 한 것 같네요. 빠진 내용은 보충해 주세요.^^