Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Graphic
- JSP
- Menu
- 예외처리
- Spring
- OGNL
- 안드로이드
- 오버로딩
- layout
- Java
- 이클립스
- 메서드
- struts2
- 생성자
- 전화걸기
- 배열
- oracle
- 클래스
- Android
- 메소드
- mybatis
- 에러페이지
- paint
- HTML
- Eclips
- JavaScript
- AWT
- 기본
- 국제화
- 어노테이션
Archives
- Today
- Total
note
오라클 기본 본문
/**
* 1. 데이터베이스
* - 데이터베이스(DataBase) 개념
* ==> 데이터의 관리를 효율적으로 하기 위해서 모아놓은 데이터 직합.
*
* - 데이터베이스 관리 시스템(DBMS : DataBase Management System)
* ==> software
* ==> 오라클, mysql, mssql, db2, sybase, ....
*
* - 데이터베이스가 데이터를 관리하는 방법?
* ==> 테이블 구조로 관리(관계형 데이터 베이스 : Relational DBMS)
* ==> 행, 열로 저장..
*
* 구조:
* 클라이언트---->접속----> DBMS(서버)
* :툴이용 ---------------------
* 무료: SQL *Plus,
* SQLDeveloper
* 유료: Toad, SQLGate
* 테이블(행,열)
*
* : 프로그램 언어>>>>>>>>>
* (자바:jdbc)
*
* 2. SQL *Plus 툴이용해서 데이터 베이스 접속
* - DB에 사용자가 존재(계정:사용자)
* : 관리자 DBA
* ==> sys/oracle
* cmd > sqlplus sys/oracle as sysdba (접속1)
* cmd > sqlplus / as sysdba(접속2_비번생략)
* sql > exit (종료)
*
* : 사용자 DBA
* ==> scott/tiger
* cmd > sqlplus scott/tiger (접속1)
* sql > exit (종료)
*
* 3. scott 계정으로 접속해서 실행.
* - 스키마(schema)?
* ==> 특정 계정으로 접속해서 만들수 있는 것(객체)들의 대표이름.
* ==> 객체?
* - 테이블(Table)
* - 뷰(View)
* - 시퀀스(Sequence)
* - 인덱스(Index)
* - 시노님(Synonym)
* ==> 스키마 이름은 자동으로 사용자계정과 동일하다.
* ==> 다른 스키마에서 접근 불가능.(권한 있으면 접근 가능하다.)
*
* 4. SQL (Structured Query Language)
* : 데이터베이스에게 특정 명령을 실행시킬 수 있는 명령어.
* : 대소문자 구별이 없다.
* : 모든 sql문의 끝은 ; 로 끝난다.
* : 연산 가능
* : 종류
* 가. DQL(Data Query Language)
* : SELECT문(데이터 조회 시 사용)
*
* 나. DML(Data Manipluation Language)
* : 데이터 조작어
* : INSERT(데이터 저장)
* : DELETE(데이터 삭제)
* : UPDATE(데이터 수정)
* : MERGE (데이터 병합)
* ====> DML 작업은 임시적으로 동작.
*
* 다. DDL(Data Definition Language)
* : 데이터 정의어
* : CREATE(객체 생성)
* : ALTER(객체 수정)
* : DROP(객체 삭제)
* : TRUNCATE(객체 구조(COULUMN) 삭제 : 데이터 삭제 포함)
*
* 라. DCL(Data Control Language)
* : GRANT(권한 부여)
* : REVOKE(권한 취소)
*
* 마. DTL(Data Transaction Language)
* : COMMIT(실행했던 DML 작업을 확정)
* : ROLLBACK(실행했던 DML 작업을 취소)
*
* 5. SELECT 문
* - 테이블?
* : SELECT * FROM TAB;
* : select * from tab;
*
* - 테이블의 구조(행, 열(컬럼))
* sql> desc 테이블명;
*
* - 테이블의 저장된 데이터
* sql> select * from 테이블명;
**********************************************************8
* 문법
* select [distinct] {*, [컬럼명, 컬럼명2 as 별명]}
* from 테이블명;
*
* - select 컬럼명, 컬럼명2
* from 테이블명;
*
* - select *(모든컬럼 의미)
* from 테이블명;
*
* - select deptno as 부서번호, dname as 부서명, loc 위치
* from dept;
*
* - select sal, sal + 100 from
* from dept;
*
* - select distinct job //중복제거
* from emp;
* =======================================>전체 레코드 대상으로 검색이 발생.
*
* select [distinct] {*, [컬럼명, 컬럼명2 as 별명]}
* from 테이블명 where 조건식;
*
* - where 컬럼명 연산자 값;
*
* * 식별자
* - 시스템정의 식별자
* : 키워드
* : select, from, where
* : 대문자 권장
* - 사용자정의 식별자
* : 테이블명
* : 컬럼명
* : 소문자를 권장
*
* * 값(리터럴)
* ==> 대소문자 구별이 있다.
* - 수치데이터
* : 12, 333, 123.33
* : NUMBER(자릿수) ==> 정수형
* 예> number(4) => 0 ~ 9999
* number(4,2) => 0 ~ 99.99
* NUMBER(전체자릿수,소수점자릿수) ==> 실수
* NUMBER() ==> 유동적으로 변환, 입력하는대로 저장
*
* - 문자데이터
* : 'A', 'AAA'
* : char(byte수) ==> 최대 2000byte
* ==> 고정길이
* varchar2(byte수) ==> 최대 4000byte
*
* - 날짜데이터
* : '1982/12/15'
* : Date, timestamp(정밀도)
*
* * 연산자
* 가. 비교 연산자
* =
* >
* >=
* <
* <=
* !=
*
* 나. 논리 연산자
* AND, OR, NOT
*
* 다. between A and B ( A와 B 사이 ) <=> not between A and B
where sal BETWEEN 2000 AND 4000;
where hiredate BETWEEN '81/09/28' AND '81/12/28';
라. in (값, 값2 ) <=> not in
where empno IN ( 333, 2243, 2444 );
where ename IN ( 'FORD' ,'JAMES' , 'KING' )
where hiredate IN ( '81/09/28' ,'81/11/17' , '99/05/25' )
*
* 마. like 연산자 <=> not like
* ==> =연산자는 동등 연산자이다.(반드시 100%일치)
* ==> 한 문자 또는 여러문자열이 일치하면 검색가능.
* ==> 2가지 코드를 이용
* %(퍼센트) : 없거나 여러문자를 의미
* _(언더바) : 한문자를 의미
*
* <예> ename 에서 A문자로 시작?
* where ename like 'A%';
*
* <예> ename 에서 A문자 포함?
* where ename like '%A%';
*
* <예> ename 에서 A문자로 끝나는?
* where ename like '%A';
*
* <예> ename 에서 A문자가 2번째?
* where ename like '_A%';
*
* 바. IS NULL <=> is not null
* ==> null 값만 검색
* where comm is null;
*
* * null
* : 컬럼에 데이터가 없는 것.
* : 연산결과는 null 이다.
* : NVL(comm,0) ==> comm이 null이 아니면 그냥 쓰고 null이면 0으로 대체한다.
*
* * 함수
* 가. max(컬럼)
* : 컬럼값중에서 최대값 구하기
* 예> select max(sal) from emp;
* 나. min(컬럼)
예> select min(sal)
from emp;
다. sum(컬럼) , avg(컬럼)
예> select sum(sal) , avg(sal)
from emp;
* 라. count(컬럼), count(*)
* 예> comm 받는 사람 수?
* select count(comm) from emp;
*
* 예> 전체 레코드 갯수?
* select count(*) from emp;
*
* 마. 형변환 함수
*
* to_char to_date
* 수치--->문자--->날짜
* <--- <---
* to_number to_char
*
* 예>
* select * from dept where deptno = '10'; //'10'이 수치로 자동 형변환
*
* // to_char (컬럼,[포멧])
* 예> select hiredate, to_char(hiredate, 'YYYY/MM/DD HH24:MI:SS') from emp;
* 예> hiredate에 년도?
* select hiredate, to_char(hiredate, 'YYYY') from emp;
* select hiredate, to_char(hiredate, 'MM') from emp;//월만
*
*
* //to_number(컬럼,[포멧]) //insert할때
* 예> sal을 첫째 6자리하고,
* select sal, to_char(sal,'999,999.99') from emp;
* select sal, to_char(sal,'$999,999.99') from emp;
* select sal, to_char(sal,'L999,999.99') from emp; //지역화폐
*
* 바. sysdate , systimestamp
* ==> 현재 날짜를 구하는 함수이다.
* select sysdate, 300+400 from dual; //dual 임시테이블,더미테이블
* 파일저장
* sql>spool test.sql;
* .
* .
* sql>spool off;
* 저장경로는 sql>exit 했을때 나오는 default경로
*
***********************************************************************************************
* 6. 데이터 정렬
* : 테이블의 데이터는 랜덤하게 저장 ==> 랜덤하게 검색된다.
* : 다중정렬 가능
* : 정렬방법
* - 오름차순(기본)
* : asc
* - 내림차순
* : desc
* : 문법
* order by 컬럼명 asc(desc);
* ==> select문 맨 마지막;
* 예> 연봉 많이 받는 순?
* select empno, ename, sal from emp order by sal desc;
* 예> 입사일 순위?
* select empno, ename, hiredate from emp order by hiredate desc;
* 예> 이름 순?
* select empno, ename from emp order by ename asc; //asc 생략가능
* 예> 이름정렬 후 이름 재정렬
* select empno, ename, sal from emp order by sal desc, ename asc; //월급 같은거 끼리 이름순 정렬
* 예> order by 별명, 인덱스
* select empno xx, ename, sal from emp order by xx;
* select empno, ename, sal from emp order by 2;
* (1) (2) (3)
*
* 7. DML
* 가. INSERT문
* : 테이블에 새로운 데이터를 추가할 때 사용한다.
* : 문법
* - insert into 테이블명(컬럼명,컬럼명2) values(값,값2);
* : 권장한다.
* : 특정 컬럼에 데이터를 저장하지 않아도 된다.
* ==> 지정하지 않은 컬럼의 데이터는 null이 지정된다.(단, 제약조건이 not null이 아닌 경우에만 가능)
*
* - insert into 테이블명 values(값,값2);
* : 모든 컬럼에 데이터를 저장해야 된다.
* : 테이블의 컬럼순서대로 저장해야 된다.
*
* 나. UPDATE문
* : 테이블의 데이터를 수정.
* : 문법
* - update 테이블명 set 컬럼명 = 새값, ....;
* ==> 전체 레코드가 변경.
* - update 테이블명 set 컬럼명 = 새값, .... where 조건식;
* ==> 조건에 일치하는 레코드만 변경.
* 다. DELETE문
* : 테이블이 레코드 삭제
* : 문법
* - delete from 테이블명;
* ==> 전체 레코드 삭제
* - delete from 테이블명 where 조건식;
* ==> 조건에 일치하는 레코드만 삭제.
*
* 8. 트랜젝션(transaction)
* : 트랜젝션?
* ==> 하나 이상의 DMl로 구성된 논리적인 작업묶음(작업단위)를 의미한다.
* ==> 예> 계좌이체(50)
* : 특징?
* ==> ALL or Nothing (하나라도 실패하면 작업 전으로 돌아감. 즉, 모두 성공해야함)
* ==> 트랜잭션 시작(자동으로) ~ 트랜잭션 종료
*
* * 트랜젝션 종료
* - 묵시적인 종료
* :
* - 명시적인 종료
* : commit(물리적인 파일에 반영)
* : rollback(메모리에서만 작업이 발생)
* : Sql*plus에서 *.dbf에 직접 접근 안한ㄷ. 성능때문이다.(IO발생)
* =========>자바는 자동 commit 이다.(auto commit)
*
* 9. 테이블 생성
* SKIP!!! (난 테이블은 생성할 줄 압니다.)
* create table student(
* name varchar2(10),
* age number(3) default 20,
* address varchar2(200),
* birthday date
* );
* insert into student(name,age,address,birthday) values('홍길동',20,'서울','2012/02/23');
* insert into student(name,address,birthday) values('홍길동','서울','2012/02/23');
*
* 10. 제약조건 (constraints)
* : 컬럼에 제약조건을 지정한다. (테이블 생성, 나중에 추가가능)
* : 데이터 무결성을 보장.
* : 종류 5가지
* - primary key(pk) => unique + not null
* : 하나의 테이블에 하나의 컬럼만 지정 가능.
* : 반드시 유일한 값 + 반드시 값을 가져야 된다.(null 안됨)
* ==> 중복제거, 식별가능
* : 자동으로 인덱스 객체가 자동 생성된다.
* (테이블이 삭제되면 인덱스가 자동으로 삭제 된다.)
*
* - foreign key(fk)
* : 여러 테이블간의 관계설정시 사용된다.
* : 참조키
* : 반드시 참조하는 테이블(mater)의 pk(uk)값 또는 null 값만 가진다.
*
* - not null(nn)
* : 하나의 테이블에 여러 칼럼에 지정가능.
* : null값을 허용 안한다. ==> 반드시 값을 저장해야 한다.
*
* - unique(uk)
* : 컬럼의 데이터가 유일한 값. null값 허용 가능.
* : 자동으로 인덱스 객체가 생성된다.
* (테이블이 삭제되면 인덱스가 자동으로 삭제 된다.)
*
* - check(ck)
* : 특정 컬럼에 조건을 지정가능 하다.
* 예> check(age>20)
* ==> 일반적으로 프로그램(자바)에서 체크한다.
*
* : 설정 방법 2가지
* 가. 컬럼 레벨
* : 컬럼을 정의시 제약조건을 지정하는 방법
*
* 나. 테이블 레벨
* : 컬럼들을 모두 정의한 후에 나중에 제약조건을 지정하는 방법
*
* : 문법
*
* create table 테이블명(
* 컬럼명 데이터형 [constraint 제약조건명] 제약조건,
* ); //컬럼 레벨
*
* create table 테이블명(
* 컬럼명 데이터형,
* 컬럼명 데이터형,
* [constraint 제약조건명] 제약조건,
* [constraint 제약조건명] 제약조건
* ); //테이블 레벨
*
* 예>
create table stu (
ssn NUMBER(4) CONSTRAINT stu_ssn_pk PRIMARY KEY,
name VARCHAR2(10) NOT NULL,
age NUMBER(3) CHECK( age >20 ),
address VARCHAR2(100)
);
insert into stu ( ssn , name, age, address )
values ( 111, '홍길동', 22 , '서울');
insert into stu ( ssn , name, age, address )
values ( 111, '홍길동', 22 , '서울'); //pk
insert into stu ( ssn , age, address )
values ( 222, 22 , '서울'); // not null
insert into stu ( ssn , name, age, address )
values ( 333, '홍길동', 10 , '서울'); //check 옵셥
create table stu2 (
ssn NUMBER(4),
name VARCHAR2(10) NOT NULL,
age NUMBER(3),
address VARCHAR2(100),
CONSTRAINT stu2_ssn_pk PRIMARY KEY (ssn),
CONSTRAINT stu2_age_ck CHECK( age >20 )
);
create table stu3 (
ssn NUMBER(4),
name VARCHAR2(10),
age NUMBER(3),
address VARCHAR2(100)
);
==> 제약조건 추가
alter table stu3
add CONSTRAINT stu3_ssn_pk PRIMARY KEY(ssn);
alter table stu3
add CONSTRAINT stu3_name_nn NOT NULL(name); (X)
alter table stu3
modify ( name VARCHAR2(10) CONSTRAINT stu3_name_nn NOT NULL ); (o)
11. 테이블 삭제
문법 : drop table 테이블명 [purge];
AAA drop table AAA; purge recyclebin;
테이블 ------------------> 휴지통 ------------> 완전히 삭제
(show recyclebin)
<----------------------
flashback table AAA to before drop;
drop table AAA purge;
-------------- -------------------------->
*
* 12. 시퀀스 (sequence)
* : 테이블의 컬럼값을 증가(감소)시키는 객체.
* : 문법
* create sequence 테이블명_seq; //default 1씩증가 and 무한대 증가, 캐시
*
* create sequence 테이블_seq(
* start with 100, //100부터
* increment by 2, //2씩증가
* maxvalue 1000, //1000까지
* cycle,
* nocache //캐시사용안함
* );
*
* : 2가지 키워드
* - 시퀀스이름.nextval ==> 증가
* - 시퀀스이름.currval ==> 현재값
*
* : 실습>
* insert into boardtest(num,name) values(boardtest_seq.nextval,'aaa');
* insert into boardtest(num,name) values(boardtest_seq.nextval,'bbb');
*
* drop sequence boardtest_seq;
*
* 13. SQLDeveloper 사용
: http://www.oracle.com 다운.
14. JDBC
: Java DataBase Connectivity ( JDBC )
: 기술?
==> 데이터베이스와 자바프로그램의 연동기술.
==> j2se, j2ee, 안드로이드 상관없이 연동하는 기술( 표준 )
*
* : 필요한 것들 정리
* 가. 데이터베이스 설치
* 나. 데이터베이스의 서비스 실행
* 다. 드라이버(driver)
* ==> 클래스 파일들의 집합(압축파일로 되어있다.)
* ==> 자바진영에서 데이터베이스 벤더들에게 인터페이스를 준다.
* 벤더들은 인터페이스들을 구현한 클래스 파일들을 만든다.
( 클래스파일들을 '오라클 드라이버'라고 한다. )
==> 데이터베이스를 설치하면 자동으로 포함된다.
( C:\oracle\product\10.2.0\db_1\jdbc\lib\ojdbc14_g.jar)
==> 드라이버를 찾아서 클래스패스에 추가해야 된다.
C:\Program Files\Java\jdk1.7.0_02\jre\lib\ext 에 복사
라. 4가지 정보 필요 ( 자바의 문자열로 저장된다. )
- 드라이버명 ( ojdbc14_g.jar 중에서 핵심 클래스)
String driver = "oracle.jdbc.driver.OracleDriver";
- 서버 설정값( URL 정보 )
String url = "jdbc:oracle:thin:@서버아이피:서버포트:데이터베이스명";
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
- 계정명
String userid ="scott";
- 비밀번호
String passwd = "tiger";
마. 드라이버 로딩
Class.forName( driver );
바. 연결 ( Connection 맺기 )
Connection con = DriverManager.getConnection( url , userid , passwd );
사. SQL 문작성
String query = "SELECT * from dept";
String query2 = "insert,delete , update";
아. sql 문 전송하기 위한 객체생성 ( Statement 생성하고 전송기능 )
Statement stmt = con.createStatement();
자. sql 문 전송
int n = stmt.executeUpdate(query2); // n은 적용된 레코드 갯수
ResultSet rx = stmt.executeQuery(query);
* ResultSet 은 테이블을 클래스로 만든거다.
==> 포인터를 이용한다.
==> 포인터를 내리는 작업( 행 선택 )
boolean b = rs.next()
while( rs.next()){
int deptno = rs.getInt("deptno");
String dname = rs.getString("dname");
String loc = rs.getString("loc");
}
==> 열선택
int x = rs.getInt("deptno");
String y = rs.getString("dname");
차. 자원반납
: 클래스파일을 close() 한다. 역순으로한다.
rs.close();
stmt.close();
con.close();
*
* 15. Statement 종류
* : SQL문 전송하는 용도로 사용된다.
* : 종류
*
* 가. Statment
*
* 나. PreparedStatment
* : 성능이 좋다.
* : 가독성이 좋다.
*
* 다. CallableStatement
* : PL/SQL
* : 오라클의 프로그램 언어
*
*
* 16. 데이터베이스 연동 할때 사용되는 2가지 패턴
*
* 가. DAO 패턴 (Data Access Object)
* : 데이터베이스 전담 클래스
*
* 나. DTO 패턴 (Data Transfer Object)
* : 데이터 전송 객체
* : 일ㅇ반클래스 형태이다.
*
* 다. Connection Pool
* : Connection을 반드시 연결해야 되는데 Connection을 맺는 시간이 많이 걸린다.
* 예> dept를 select ==> 10초가 걸렸다.
* ==> Connection 맺는 시간이 8초.
* ==> 미리 처음에 Connection을 4개 정도를 미리 맺어서
* 특정 클래스(Connection Pool)에 저장한다.
* 필요하면 특정클래스에 메소드를 호출해서 Connection을 얻어서 사용한다.
* 사용한 후에 반드시 돌려줘야 한다.
*
*
* 17. Connection Pool 기능
* : http://jakarta.apache.org 에서 무료로 다운
*
*
* EX>
* package Connection.pool;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import org.apache.commons.dbcp.BasicDataSource;
public class PoolDAO {
String driver = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
String user = "scott";
String password = "tiger";
BasicDataSource ds; //내부적으로 pool 기능 포함
public PoolDAO(){
ds = new BasicDataSource();
ds.setDriverClassName(driver);
ds.setUsername(user);
ds.setPassword(password);
ds.setUrl(url);
ds.setInitialSize(4); //초기 커넥션 생성 갯수
//ds.setMaxActive(4); //최대 쓸수있는 커녁센 갯수
}//생성자
//select
public ArrayList<DeptDTO> select(){
Connection conn=null;
PreparedStatement pstmt=null;
ResultSet rs=null;
ArrayList<DeptDTO> articleList=null;
try{
conn=ds.getConnection();
String sql="select * from dept";
pstmt=conn.prepareStatement(sql);
rs=pstmt.executeQuery();
if(rs.next()){
articleList=new ArrayList<DeptDTO>();
while(rs.next()){
DeptDTO dto = new DeptDTO();
dto.setDeptno(rs.getInt("deptno"));
dto.setDname(rs.getString("dname"));
dto.setLoc(rs.getString("loc"));
articleList.add(dto);
}
System.out.println("일하는애>>"+ds.getNumActive());//지금 사용되고있는 숫자
System.out.println("노는애>>"+ds.getNumIdle());//지금 쉬고있는 숫자
}
}catch(Exception e){
e.printStackTrace();
}finally{
if(rs!=null)try{rs.close();}catch(Exception e){}
if(pstmt!=null)try{pstmt.close();}catch(Exception e){}
if(conn!=null)try{conn.close();}catch(Exception e){}
}
return articleList;
}
}
*
* * 데이터 베이스 전문 프레임워크
* ==> 코드로 작성하는 대신 누군가가 해준다.
* ==> xml이 기본
* ==> 2가지
* 가. iBATIS ( MyBATIS )
* www.ibatis.org
*
* 나. hibernate
* www.hibernate.org
* ==> 객체 지향적
* ==> 어렵다.
*
*
* 18. 자바의 트랜젝션 처리
* 고객삭제?
* - customer table에서 고객삭제
* - shares 테이블에서 삭제된 고객의 주식 삭제
*
* 기존 : auto커밋이 되어있다.
* try{
* deleteMember(ssn);
* deleteShares(ssn);
* }catch(Exception e){}
*
* 변경 : auto커밋을 해제한다.
* try{
* conn.setAutoCommit(false); //오토커밋해제
* deleteMember(ssn);
* deleteShares(ssn);
* conn.commit(); //커밋한다.
* }catch(Exception e){
* conn.rollback();
* }finally{
* conn.setAutoCommit(true); //오토커밋사용
* }
*
*
* 19. 메타 데이터(meta data)
* : 정의?
* ==> 실제 데이터를 관리하기 위한 추가된 데이터를 의미한다.
*
* : 오라클?
* ==> 부서명, 부서번호, 위치 (실제데이터)
* ==> 데이터베이스명(orcl), 테이블(dept), deptno, dname, .... (메타데이터)
*
* : JDBC 에서 2가지 API를 제공한다.
* 가. DatabaseMetaData
* ==> 데이터베이스 관련 메타정보
* ==> 벤더이름, 버전, 드라이버명, url, userid, password
*
* 나. ResultSetMetaData
* ==> 테이블에 대한 메타정보
* ==> 테이블명, 컬럼명, 컬럼갯수, 데이터형 ....
* */
'Oracle > 기본' 카테고리의 다른 글
ORACLE DATETYPE & UNIQUE & FOREIGN KEY (0) | 2012.03.03 |
---|---|
ORACLE Foreign Key 사용 (0) | 2012.03.03 |
ORACLE sql문 (0) | 2012.02.13 |
ORACLE 자동생성 sequence (0) | 2012.02.10 |
오라클 계정 생성 , 삭제 (0) | 2012.02.09 |