'학원수업 자료'에 해당되는 글 4건

  1. 2009.11.05 [09.11.05] Oracle 수업내용 2
  2. 2009.11.05 [09.11.04] Oracle 수업내용
  3. 2009.11.05 [09.11.03] Oracle 수업내용 1
  4. 2009.11.03 [09.11.02] Oracle 수업내용 1
학원수업 자료2009. 11. 5. 16:43
SQL(Structured Query Languge)
에러확인>
  - 에러번호의 내용을 확인 할 수 있다.
EXPERT> !oerr ora 에러번호
GRANT>
  - 권한 부여에 관련된 명령어
1. System 권한 상속
  - 권한 부여 시 with admin option을 준 경우, 권한을 받은 user은 자신이 받은 권한에 한에서 다른 user에게 권한을 부여할 수 있다.
  - 자신이 받은 권한을 revoke 당한 경우에도 자신이 줬던 권한을 받은 다른 user는 그 권한을 사용할 수 있다.
2. Object(객체) 권한 상속
  - 권한 부여 시 with grant option을 준 경우, 권한을 받은 user는 자신이 받은 권한에 한에서 다른 user에게 권한을 부여할 수 있다.
  - 자신이 받은 권한을 revoke 당한 경우 자신이 줬던 권한을 받은 다른 user의 권한도 revoke되어 사용할 수 없다.
ALTER>
1. column 삭제
  - 물리적 삭제 : drop column을 사용하면 물리적으로 삭제 된다.
  - 논리적 삭제 : set unused를 사용하면 놀리적으로 삭제 된다.
 ※ 물리적/논리적 삭제가 필요한 이유
   -> 물리적 삭제의 경우 삭제를 하면 해당 행에 대해 rock이 걸려 업무 시 방해가 많이 된다.
   -> 따라서 기본적으로 왠만하면 업무중에 column을 삭제를 하지 않고 삭제를 할 경우 논리적 삭제를 먼저 한 뒤 업무 종료 후 물리적삭제를 사용하는 것이 좋다
제약조건 추가>
  - 제약조건 추가 시 add를 사용하지만 not null은 modify를 사용한다.
  - 제약조건은 추가 및 삭제만 가능하다.
1. 형식
alter table <table_name>
add [constraint <constraint_name>]
type (<column_name);
제약조건 검사방법>
  - 일반적으로 제약조건은 자료가 입력될 때 바로 검사한다.
  - 제약조건을 지연검사로 변경한 경우 자료 입력 시 모두 입력받고 commit 후 모든 column을 한번에 검사한다
  - 만약 하나라도 위반을 발견한 경우 모두 callback 시킨다.
함수기반 인덱스>
  - 인덱스 생성 시 함수를 삽입하여 생성할 수 있다.
  - 단, 인덱스 생성 시 삽입했던 함수로만 인덱스를 검색해야 한다.
  -  만약 다른 함수로 인덱스를 검색하는 경우 full-scan으로 검색한다.
1. 형식
create index upper_dept_name_idx
on dept2(upper(department_name));
External tables>
  - file의 내용을 table 처럼 select 할 수 있음.
  - File의 내용을 Table에 Load/Unload할 수 있음.
   -> Load : 파일 내용을 table로 불러옴
   -> Unload : table로 불러온 내용을 file로 보냄.
1. 특징
  - 읽기 전용
  - DML 사용 못함
  - Index 생성 못함
  - 쿼리는 사용 가능
Top-N 구문>
  - 컬럼의 값 중 n개의 가장 큰 값 또는 작은 값을 질의한다.
  - from 절 안의 서브 쿼리로 작성한다.
1. 사용방법
  - 데이터를 정렬하는 질의를 서브쿼리나 inline 뷰로 생성.
2. 필수요소
  - rownum(Row 순서를 나타내는 가상컬럼)
  - From절 상의 서브쿼리(Inline View)
  - Sub query 내에 order by절
  - 사용가능한 비교연산자 : <, <=
명시적 Default 기준>
  - Table 생성 시 default 값을 설정한 경우 insert할 때 값을 넣지 않으면 default 값이 입력 됨.
MERGE>
  - 조건에 따라 insert와 Update를 실행한다.
Flashback versions query>
  - 특정 시점을 비교하여 객체 및 행 data의 이력(aging)을 확인하는 방법
  - Or transaction의 이력(aging) 확인.
GROUP BY>
1. 각 Operator를 삽입하면 해당 개수의 column이 조회된다.
  - Rollup : n + 1
  - Cube : 2의 n승
※ n은 컬럼수
2. groupping set
  - 여러 개의 group by를 하나로 묶어서 작성
계층화 쿼리>
1. Operator
  - Level : 계층적 질의문에서 검색된 결과에 대한 계층별로 레벨 표시
  - Start with : 계층적인 출력 형식을 표현하기 위한 최상위 행
   -> 조건 삽입 시 서브 쿼리도 가능함
  - Connect By prior :  계층 관계의 데이터를 지정하는 컬럼
2. 형식
column org_chart format a15;
select lpad(' ', 3*level-3) || ename as org_chart,
level, empno, mgr, deptno
from emp
start with mgr is null
connect by prior empno = mgr;
3. 특징
  - Oracle 전용 Query

Posted by 쿵캉켕
학원수업 자료2009. 11. 5. 16:41
SQL(Structured Query Languge)
Oracle안에서 OS 명령어 사용 방법>
  - 명령문 앞에 !를 표시한다.
EXPERT> !oerr ora 2291
제약조건의 정의>
  - 부적합한 데이터의 입력 및 수정 방지
External tables>
  - file의 내용을 table 처럼 select 할 수 있음.
  - File의 내용을 Table에 Load/Unload할 수 있음.
   -> Load : 파일 내용을 table로 불러옴
   -> Unload : table로 불러온 내용을 file로 보냄.
1. 특징
  - 읽기 전용
  - DML 사용 못함
  - Index 생성 못함
  - 쿼리는 사용 가능


Posted by 쿵캉켕
학원수업 자료2009. 11. 5. 16:37
SQL(Structured Query Languge)
1. 기본적인 구조
  - SELECT col1, col2… | * 
  - FROM  table1, table2
  - [WHERE]  조건절
  - GROUP BY    그룹화 대상 컬럼
  - HAVING    그룹함수에 대한 조건절
  - ORDER BY     정렬 대상
oracle
날짜를 반올림>
EXPERT> select round(sysdate, 'YEAR'), round(sysdate, 'MONTH')
  2  , round(sysdate, 'DAY') from dual;
ROUND(SYSDATE,'YEAR ROUND(SYSDATE,'MONT ROUND(SYSDATE,'DAY'
------------------- ------------------- -------------------
2010-01-01 00:00:00 2009-11-01 00:00:00 2009-11-01 00:00:00
  - DAY의 경우 '주'를 기준으로 함.
Join>
  - Join에서 가장 중요한 것은 Join 조건을 설정하는 것이다.
SQLPlus에서 수업 내용 파일로 저장하는 방법 및 확인 방법>
  - 수업 시작 전 다음을 입력한다.
EXPERT> spool 파일명.sql
  - 수업 종료 후 다음을 입력한다.
EXPERT> spool off
  - 파일 내용을 확인하고 싶은 경우 다음과 같이 입력한다.
ocp@orcl : /home/oracle> vi 파일명.sql
External tables>
  - file의 내용을 table 처럼 select 할 수 있음.
  - File의 내용을 Table에 Load/Unload할 수 있음.
   -> Load : 파일 내용을 table로 불러옴
   -> Unload : table로 불러온 내용을 file로 보냄.
1. 특징
  - 읽기 전용
  - DML 사용 못함
  - Index 생성 못함
  - 쿼리는 사용 가능

Posted by 쿵캉켕
학원수업 자료2009. 11. 3. 17:53

 

SQL(Structured Query Languge)
1. 기본적인 구조
  - SELECT col1, col2… | * 
  - FROM  table1, table2
  - [WHERE]  조건절
  - GROUP BY
  - HAVING
  - ORDER BY
oracle
리눅스 표시>
  - # : root
  - $ : 일반유저
IP 주소 설정방법>
[oracle@ocp ~]$ . .bash_profile
ocp@orcl : /home/oracle> su -
Password: oracle
[root@ocp ~]# setup
  - network configuration 선택
  - [YES] 선택
  - 다음을 차례대로 입력
IP : 192.168.100.100
sub : 255.255.255.0
gate : 192.168.100.1
DNS: 168.126.63.1
  - [OK] 클릭
  - [Quit] 클릭
[root@ocp ~]# /etc/init.d/network restart
IP 연결 확인 방법>
1. Oracle 연결 확인
[root@ocp ~]# ping 192.168.100.1
  - 64 bytes.. 로 표시되면 성공
2. 인터넷 연결 확인
[root@ocp ~]# ping 211.183.0.254
  - 64 bytes.. 로 표시되면 성공
관리자 접속>
  - 최초 실행 시 [$ . .bash_profile]를 반드시 먼저 실행한다.
[oracle@ocp ~]$ . .bash_profile
ocp@orcl : /home/oracle> sqlplus / as sysdba            >> 관리자접속
SQL*Plus: Release 10.2.0.1.0 - Production on Mon Nov 2 11:19:38 2009
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
Connected to an idle instance.
DB Start>
SQL> startup        >> DB start
ORACLE instance started.
Total System Global Area  167772160 bytes
Fixed Size                  1218292 bytes
Variable Size              62916876 bytes
Database Buffers           96468992 bytes
Redo Buffers                7168000 bytes
Database mounted.
Database opened.
SQL 종료 방법>
EXPERT> exit
리눅스 종료 방법>
ocp@orcl : /home/oracle> poweroff
isqlplus 실행 방법>
  - 터미널 새창 연 뒤 다음을 차례대로 입력한다.
[oracle@ocp ~]$ . .bash_profile
ocp@orcl : /home/oracle> isqlplusctl start
VI 편집기 사용 방법>
  - sql문장 실행
  - ed 입력 -> i입력(입력 시작) -> 쿼리문 수정 -> esc 키 입력(입력 해제)
  - :wq (저장 후 종료)
  - :! (강제 종료)
  - ed에서는 ;를 입력하지 않는다.
환경변수 변경파일 들어가는 법>
ocp@orcl : /home/oracle> vi $ORACLE_HOME/sqlplus/admin/glogin.sql
사용법은 vi 편집기와 동일
1. 사용자 명으로 커서가 보이게 설정
  - set sqlprompt "_user> " 를 입력
사용자 확인>
SQL> show user
USER is "SYS"
사용자 생성>
SQL> create user expert identified by expert;
User created.
SQL> grant connect, resource, create view to expert;
Grant succeeded.
사용자 변경>
SQL> connect expert/expert
Connected.
관리자로 변경>
EXPERT> connect sysdba
Enter password:  >> password는 as sysdba
저장된 sql 파일 실행>
SQL> @/파일경로/파일명
파일 복사>
ocp@orcl : /home/oracle> cp /mnt/hgfs/shared/creuser.sql ./                  >>파일 복사
파일 목록 확인(dir명령어와 같음)>
ocp@orcl : /home/oracle> ls
afiedt.buf  creuser.sql  Desktop  sqlnet.log
실습시 사용되는 테이블의 컬럼>
TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
COUNTRIES                      TABLE
REGIONS                        TABLE
LOCATIONS                      TABLE
DEPARTMENTS                    TABLE
JOBS                           TABLE
EMPLOYEES                      TABLE
JOB_HISTORY                    TABLE
EMP_DETAILS_VIEW               VIEW
JOB_GRADES                     TABLE
9 rows selected.
SQL> desc countries
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 COUNTRY_ID                                NOT NULL CHAR(2)
 COUNTRY_NAME                                       VARCHAR2(40)
 REGION_ID                                          NUMBER
SQL> desc regions
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 REGION_ID                                 NOT NULL NUMBER
 REGION_NAME                                        VARCHAR2(25)
SQL> desc locations;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 LOCATION_ID                               NOT NULL NUMBER(4)
 STREET_ADDRESS                                     VARCHAR2(40)
 POSTAL_CODE                                        VARCHAR2(12)
 CITY                                      NOT NULL VARCHAR2(30)
 STATE_PROVINCE                                     VARCHAR2(25)
 COUNTRY_ID                                         CHAR(2)
SQL> desc departments
SQL> desc departments;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 DEPARTMENT_ID                             NOT NULL NUMBER(4)
 DEPARTMENT_NAME                           NOT NULL VARCHAR2(30)
 MANAGER_ID                                         NUMBER(6)
 LOCATION_ID                                        NUMBER(4)
SQL> desc jobs
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 JOB_ID                                    NOT NULL VARCHAR2(10)
 JOB_TITLE                                 NOT NULL VARCHAR2(35)
 MIN_SALARY                                         NUMBER(6)
 MAX_SALARY                                         NUMBER(6)
SQL> desc employees;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 EMPLOYEE_ID                               NOT NULL NUMBER(6)
 FIRST_NAME                                         VARCHAR2(20)
 LAST_NAME                                 NOT NULL VARCHAR2(25)
 EMAIL                                     NOT NULL VARCHAR2(25)
 PHONE_NUMBER                                       VARCHAR2(20)
 HIRE_DATE                                 NOT NULL DATE
 JOB_ID                                    NOT NULL VARCHAR2(10)
 SALARY                                             NUMBER(8,2)
 COMMISSION_PCT                                     NUMBER(2,2)
 MANAGER_ID                                         NUMBER(6)
 DEPARTMENT_ID                                      NUMBER(4)
SQL> desc job_history
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 EMPLOYEE_ID                               NOT NULL NUMBER(6)
 START_DATE                                NOT NULL DATE
 END_DATE                                  NOT NULL DATE
 JOB_ID                                    NOT NULL VARCHAR2(10)
 DEPARTMENT_ID                                      NUMBER(4)
SQL> desc emp_details_view;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 EMPLOYEE_ID                               NOT NULL NUMBER(6)
 JOB_ID                                    NOT NULL VARCHAR2(10)
 MANAGER_ID                                         NUMBER(6)
 DEPARTMENT_ID                                      NUMBER(4)
 LOCATION_ID                                        NUMBER(4)
 COUNTRY_ID                                         CHAR(2)
 FIRST_NAME                                         VARCHAR2(20)
 LAST_NAME                                 NOT NULL VARCHAR2(25)
 SALARY                                             NUMBER(8,2)
 COMMISSION_PCT                                     NUMBER(2,2)
 DEPARTMENT_NAME                           NOT NULL VARCHAR2(30)
 JOB_TITLE                                 NOT NULL VARCHAR2(35)
 CITY                                      NOT NULL VARCHAR2(30)
 STATE_PROVINCE                                     VARCHAR2(25)
 COUNTRY_NAME                                       VARCHAR2(40)
 REGION_NAME                                        VARCHAR2(25)
SQL> desc job_grades
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 GRADE_LEVEL                                        VARCHAR2(3)
 LOWEST_SAL                                         NUMBER
 HIGHEST_SAL                                        NUMBER



Posted by 쿵캉켕