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 |
'학원수업 자료'에 해당되는 글 4건
- 2009.11.05 [09.11.05] Oracle 수업내용 2
- 2009.11.05 [09.11.04] Oracle 수업내용
- 2009.11.05 [09.11.03] Oracle 수업내용 1
- 2009.11.03 [09.11.02] Oracle 수업내용 1
학원수업 자료2009. 11. 5. 16:43
학원수업 자료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 생성 못함 |
- 쿼리는 사용 가능 |
학원수업 자료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 생성 못함 |
- 쿼리는 사용 가능 |
학원수업 자료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 |