1. SQL 문의종류 2 DDL (Data Definition Language) : 데이터와그구조를정의 SQL문 CREATE DROP ALTER 내용데이터베이스객체를생성데이터베이스객체를삭제기존에존재하는데이터베이스객체를다시정의하는역할 DML (Data Manipulati

Size: px
Start display at page:

Download "1. SQL 문의종류 2 DDL (Data Definition Language) : 데이터와그구조를정의 SQL문 CREATE DROP ALTER 내용데이터베이스객체를생성데이터베이스객체를삭제기존에존재하는데이터베이스객체를다시정의하는역할 DML (Data Manipulati"

Transcription

1 1 Chapter. 6 Oracle SQL

2 1. SQL 문의종류 2 DDL (Data Definition Language) : 데이터와그구조를정의 SQL문 CREATE DROP ALTER 내용데이터베이스객체를생성데이터베이스객체를삭제기존에존재하는데이터베이스객체를다시정의하는역할 DML (Data Manipulation Language) : 데이터의검색과수정등의처리 SQL문 INSERT DELETE UPDATE SELECT 내용데이터베이스객체에데이터를입력데이터베이스객체에데이터를삭제기존에존재하는데이터베이스객체안의데이터수정데이터베이스객체로부터데이터를검색 DCL (Data Control Language) : 데이터베이스사용자의권한을제어 GRANT REVOKE SQL 문 내용 데이터베이스객체에권한을부여 이미부여된데이터베이스객체의권한을취소

3 2. 테이블의생성과수정그리고삭제 - 테이블의생성 3 테이블이란? 1. 테이블은오라클데이타베이스의기본적인데이타저장단위 2. 데이타베이스테이블은사용자가접근가능한모든데이타를보유하며레코드와컬럼으로구성 3. 테이블은시스템내에서독립적으로사용되길원하는엔티티를표현예를들면, 회사에서의고용자나제품에대한주문은테이블로표현가능 4. 테이블은두엔티티간의관계를표현즉테이블은고용자와그들의작업숙련도혹은제품과주문과의관계를표현하는데사용테이블내에있는외래키 (ForeIgn Key) 는두엔티티사이의관계를표현하는데사용 5. 비록 " 테이블 " 이라는말이더많이사용되지만테이블의형식어는 " 릴레이션 " 컬럼 : 테이블의각컬럼은엔티티의한속성을표현행 (ROW, 레코드 ) : 테이블의데이타는행에저장 테이블생성시제한사항과고려할점 - 테이블이름과컬럼은항상알파벳문자로시작해야하며 A~Z 까지의문자, 0~9 까지의숫자, 그리고 $,#,_(Under Bar) 를사용가능 ( 공백사용불가능 ) - 테이블의컬럼이름은 30 자를초과할수없고, 예약어를사용할수없음. - 오라클테이블한계정안에서테이블이름은다른테이블이름과달리유사해야함. - 한테이블안에서컬럼이름은같을수없으며다른테이블에서의컬럼이름과는같을수있음.

4 2. 테이블의생성과수정그리고삭제 - 테이블의생성 4 테이블생성문법 CREATE TABLE [schema.]table_name ( column datatype [, column datatype...] ) [TABLESPACE tablespace ] [ PCTFREE integer ] [ PCTUSED integer ] [ INITRANS integer ] [ MAXTRANS integer ] [ STORAGE storage-clause ] [ LOGGING NOLOGGING ] [ CACHE NOCACHE ] ; - schema : 테이블의소유자 - table_name: 테이블이름 - column: 컬럼의이름 - datatype: 컬럼의데이터유형 - TABLESPACE: 테이블이데이터를저장할테이블스페이스를지정 - PCTFREE : 블럭내에이미존재하고있는 Row 에 Update 가가능하도록예약시켜놓는블럭의퍼센트값을지정 - PCTUSED : 테이블데이터가저장될블록의행데이터부분의크기를퍼센트지로지정 PCTFREE 에의해지정된크기만큼 Block 이차면 PCTUSED 값보다작아져야새로운행삽입이가능 - INITRANS : 하나의데이터블록에지정될초기트랜잭션의값을지정 ( 기본값은 1) - MAXTRANS: 하나의데이터블록에지정될수있는트랜잭션최대수를지정 ( 기본값은 255) - STORAGE: 익스텐트스토리지에대한값을지정합니다. - LOGGING: 테이블에대해이후의모든작업이리두로그파일내에기록되도록지정 (default) - NOLOGGING: 리두로그파일에테이블의생성과특정유형의데이터로드를기록하지않도록지정 - CACHE : 전체테이블스캔 (full table scan) 이수행될때읽어들인블록이버퍼캐쉬내의 LRU 리스트의가장최근에사용된것의자리에위치하도록지정 - NOCACHE : 전체테이블스캔 (full table scan) 이수행될때읽어들인블록이버퍼캐쉬내의 LRU 리스트의가장최근에사용되지않은것의자리에위치하도록지정 * PCTFREE, PCTUSED 에대한자세한강좌는오라클어드민강좌를참고

5 2. 테이블의생성과수정그리고삭제 - 테이블의생성 5 테이블생성예제 DEPT2 테이블생성예제 SQL>CREATE TABLE DEPT2( DEPTNO NUMBER CONSTRAINT dept_pk_deptno PRIMARY KEY, - ( 컬럼 ) ( 데이터타입 ) ( 제약조건 ) DNAME VARCHAR2(40), LOC VARCHAR2(50)) PCTFREE 20 PCTUSED 50 ; 테이블이생성 테이블생성시주의사항 - 테이블이름을지정하고각컬럼들은괄호 "()" 로묶어지정 - 컬럼뒤에데이터타입은꼭지정되어야함. - 각컬럼들은콤마 "," 로구분되고, 항상끝은세미콜론 ";" 으로끝남. - 한테이블안에서컬럼이름은같을수없으며다른테이블에서의컬럼이름과는같을수있음. 유저가소유한모든테이블조회 USER_TABLES 데이터사전을조회하면유저가소유한테이블을확인할수있음. SQL>SELECT table_name FROM USER_TABLES; TABLE_NAME BONUS CRETABLE

6 2. 테이블의생성과수정그리고삭제 - 테이블의제약조건 6 제약조건이란? 제약조건이란테이블에부적절한자료가입력되는것을방지하기위해서여러가지규칙을적용해놓는것. 간단하게테이블안에서데이터의성격을정의하는것 - 데이터의무결성유지를위하여사용자가지정할수있는성질 - 모든 CONSTRAINT 는데이터사전 (DICTIONARY) 에저장 - 의미있는이름을부여했다면 CONSTRAINT 를쉽게참조할수있음. - 표준객체명명법을따르는것이좋다. - 제약조건은테이블을생성할당시에지정할수도있고, 테이블생성후구조변경 (ALTER) 명령어를통해서도추가가가능 - NOT NULL 제약조건은반드시컬럼레벨에서만정의가가능 제약조건 PRIMARY KEY(PK) FOREIGN KEY(FK) UNIQUE key(uk) NOT NULL(NN) CHECK(CK) 설 유일하게테이블의각행을식별 (NOT NULL 과 UNIQUE 조건을만족 ) 열과참조된열사이의외래키관계를적용하고설정합니다. 테이블의모든행을유일하게하는값을가진열 (NULL 을허용 ) 명 열은 NULL 값을포함할수없습니다. 참이어야하는조건을지정함 ( 대부분업무규칙을설정 )

7 2. 테이블의생성과수정그리고삭제 - 테이블의제약조건 7 NOT NULL 조건 : 컬럼을필수필드화시킬때사용 SQL>CREATE TABLE emp( ename VARCHAR2(20) CONSTRAINT emp_nn_ename NOT NULL ); 위와같이테이블을생성하면 ename 컬럼에는꼭데이터를입력해야만함. - 여기서 emp_nn_ename 은 ( 테이블이름 _ 제약조건이름 _ 컬럼이름 ) 형식으로 CONSTRAINT NAME 을정의 - CONSTRAINT NAME 은 USER_CONSTRAINTS 뷰 (VIEW) 를통해서확인 SQL> SELECT CONSTRAINT_NAME FROM USER_CONSTRAINTS WHERE TABLE_NAME ='EMP' ; CONSTRAINT_NAME emp_nn_ename à 이런식으로제약조건의이름을확인 UNIQUE 조건 UNIQUE 조건 : 데이터의유일성을보장 ( 중복되는데이터가존재할수없음.) 유니크조건을생성하면자동으로 index 가생성 SQL> ALTER TABLE emp ADD CONSTRAINT emp_uk_deptno UNIQUE (deptno) ; 테이블이변경 - 위와같이제약조건을생성하면 deptno 컬럼에중복된데이터가들어갈수없음. -- 제약조건의삭제 SQL>ALTER TABLE emp DROP CONSTRAINT emp_uk_deptno ; 테이블이변경

8 2. 테이블의생성과수정그리고삭제 - 테이블의제약조건 8 CHECK 조건 : 컬럼의값을어떤특정범위로제한 SQL>ALTER TABLE emp ADD CONSTRAINT emp_ck_comm CHECK (comm >= 10 AND comm <= ) ; 테이블이변경 - comm 컬럼은체크조건에서제한을하고있으므로 10 에서 까지의값만을가질수있음. 또체크조건에서는 IN 연산자를사용 SQL>ALTER TABLE emp DROP CONSTRAINT emp_ck_comm ; 테이블이변경 -- 제약조건의삭제 SQL> ALTER TABLE emp -- IN 연산자를이용해서 CHECK 제약조건을생성 ADD CONSTRAINT emp_ck_comm CHECK (comm IN (10000,20000,30000,40000,50000)) ; 테이블이변경 - comm 컬럼은 10000,20000,30000,40000,50000 의값만을가질수있음. DEFAULT( 컬럼기본값 ) 지정 데이터입력시에입력을하지않아도지정된값이디폴트로입력 SQL>CREATE TABLE emp( hiredate DATE DEFAULT SYSDATE ) ; 위와같이디폴트값을설정하면 hiredate 컬럼에 INSERT 를하지않아도오늘날짜가들어감.

9 2. 테이블의생성과수정그리고삭제 - 테이블의제약조건 9 PRIMARY KEY( 기본키 ) 지정 PRIMARY KEY : Primary Key( 기본키 ) 는 UNIQUE 와 NOT NULL 의결합과같다. - 기본키는그데이터행을대표하는컬럼으로서의역할을수행하여다른테이블에서외래키들이참조할수있는키로서의자격을가지고있으며이를참조무결성이라함. - UNIQUE 조건과마찬가지로기본키를정의하면자동으로인덱스를생성하며그이름은기본키제약조건의이름과같다. SQL>CREATE TABLE emp( empno NUMBER CONSTRAINT emp_pk_empno PRIMARY KEY ) ; 위와같이제약조건을설정하면 empno 컬럼에 UNIQUE 제약조건과 NOT NULL 제약조건을가지게된다. FOREIGN KEY( 외래키 ) 지정 FOREIGN KEY( 외래키 ) 지정 : 기본키를참조하는컬럼또는컬럼들의집합 - 외래키를가지는컬럼의데이터형은외뢰키가참조하는기본키의컬럼과데이터형이일치해야함. 이를어기면참조무결성제약에의해테이블을생성할수없음. - 외래키에의해참조되고있는기본키는삭제할수없음. - ON DELETE CASCADE 연산자와함께정의된외래키의데이터는그기본키가삭제될때같이삭제 SQL>ALTER TABLE emp ADD CONSTRAINT emp_fk_deptno FOREIGN KEY (deptno) REFERENCES dept(deptno) 테이블이변경 위와같이제약조건을생성하면 emp 테이블의 deptno 컬럼은 dept 테이블에 deptno 컬럼을참조하는외래키를가짐.

10 2. 테이블의생성과수정그리고삭제 - 오라클데이터타입 10 오라클테이블을생성할때각컬럼에지정할수있는데이터타입 DATA TYPE 설 명 VARCHAR2(n) 가변길이문자데이터 (1~4000byte) CHAR(n) 고정길이문자데이터 (1~2000byte) NUMBER(p,s) 전체 p자리중소수점이하 s자리 (p:1~38, s:-84~127) DATE 7Byte(BC 4712년 1월 1일부터 AD 9999년 12월 31일 ) LONG 가변길이문자데이터 (1~2Gbyte) CLOB 단일바이트가변길이문자데이터 (1~4Gbyte) RAW(n) n Byte의원시이진데이터 (1~2000) LONG RAW 가변길이원시이진데이터 (1~2Gbyte) BLOB 가변길이이진데이터 (1~4Gbyte) BFILE 가변길이외부파일에저장된이진데이터 (1~4Gbyte) 숫자데이터 (Numeric Data) - 오라클데이터베이스에서숫자는항상가변길이데이터로저장되며유효자릿수 38 자리까지저장.

11 2. 테이블의생성과수정그리고삭제 - 오라클데이터타입 11 문자데이터 (Character Data) - 문자데이터는데이터베이스에고정길이, 또는가변길이문자열로저장 - CHAR 와 NCHAR 같은고정길이문자데이터유형은고정길이까지공백으로채워서저장 - NCHAR 는고정폭 (fixed-width), 또는가변폭 (variable-width) character set 의저장을가능하게하는 NLS 데이터유형최대크기는한문자를저장하는데필요한바이트수에따라결정되며한행당최대 2000 바이트기본값은 charater set 에따라 1 문자, 또는 1 바이트 - 가변길이문자데이터유형은실제컬럼값을저장하는데필요한바이트만큼만을사용하며각행에따라크기가다양. VARCHAR2 와 NVARCHAR2 가있습니다. 날짜 (DATE) 데이터유형 - 오라클서버는날짜를 7 바이트, 고정길이필드 (field) 로저장 - 오라클 DATE 는항상시간을포함 RAW 데이터유형 - 크기가적은이진데이터의저장에사용

12 2. 테이블의생성과수정그리고삭제 - 오라클데이터타입 12 크기가큰오브젝트를저장하기위한데이터유형 1 크기가큰오브젝트를저장하기위한데이터유형에는 LONG 과 LONG RAW, LOB 데이터유형이있다. 2 LONG 데이터유형은 2GB 의문자열데이터를저장 3 오라클은 LOB 을저장하기위한여섯가지데이터유형을제공 - 큰고정폭 (fixed-width) 문자데이터를위한 CLOB 과 LONG - 큰고정폭국가 character set 데이터를위한 NCLOB - 구조화되지않은데이터를저장하기위한 BLOB 과 LONG RAW - 구조화되지않은데이터를운영체제파일에저장하기위한 BFILE LONG 과 LOB 데이터유형비교 LONG, LONG RAW 테이블에컬럼하나만생성할수있음 2GB SELECT결과로데이터를리턴데이터를직접저장오브젝트유형을지원하지않음 LOB 테이블에여러개의컬럼생성이가능 4GB SELECT결과로위치를리턴데이터를직접또는간접저장오브젝트유형지원

13 2. 테이블의생성과수정그리고삭제 - 테이블의관리 13 테이블컬럼의관리 테이블의컬럼은 ADD, MODIFY, DROP 연산자를통해서관리할수있음. ADD 연산자 ADD 연산자 : 테이블에새로운컬럼을추가할때사용 SQL>ALTER TABLE emp ADD (addr VARCHAR2(50)); VARCHAR2 의데이터형을가지는 addr 컬럼이 emp 테이블에추가 MODIFY 연산자 MODIFY 연산자 : 테이블의컬럼을수정하거나 NOT NULL 컬럼으로변경할수있음. SQL>ALTER TABLE emp MODIFY (ename VARCHAR2(50) NOT NULL) ; -> ename 컬럼이 VARCHAR2 50 자리로수정 컬럼이이미테이터를가지고있을경우다른데이터형으로변경불가능 DROP 연산자 컬럼의삭제예제 SQL>ALTER TABLE table_name DROP COLUMN column_name -- 컬럼의삭제는오라클 8i 버전부터지원 제약조건의삭제예제 -- CASCADE 연산자와함께사용하면외래키에의해참조되는기본키도삭제될수있음 SQL>ALTER TABLE emp DROP CONSTRAINT emp_pk_empno CASCADE;

14 2. 테이블의생성과수정그리고삭제 - 테이블의관리 14 테이블정보의관리 기존테이블의복사 - 기존테이블을부분, 또는완전히복사할때에서브쿼리를가진 CREATE TABLE 명령어를사용해서쉽게테이블을복사가능 - 하지만제약조건, 트리거, 그리고테이블권한은새로운테이블로복사되지않는다. - 제약조건은 NOT NULL 제약조건만복사 [ 문법 ] [ 예제 ] CREATE TABLE [schema.]table_name SQL>CREATE TABLE emp2 [ LOGGING NOLOGGING ] AS [... ] SELECT * FROM emp; AS 테이블이생성 subquery 테이블의테이블스페이스변경 Oracle8i 이전버전에서는 export 를해서다시 import 를해야지만테이블스페이스를변경할수있었지만오라클 8i 부터는 ALTER TABLE ~ MOVE TABLESPACE 명령어로쉽게테이블의테이블스페이스를변경할수있음. ALTER TABLE table_name MOVE TABLESPACE tablespace_name; SQL>ALTER TABLE emp MOVE TABLESPACE test; 테이블이변경 àemp 테이블의테이블스페이스를 test 로변경

15 2. 테이블의생성과수정그리고삭제 - 테이블의관리 15 테이블정보의변경 - 보통테이블의정보를변경하는이유는스토리지파라미터와블록활용파라미터를변경하기위해서사용 - 테이블정보의변경시 INITIAL 의값은변경할수없음. ALTER TABLE [schema.]table_name [ STORAGE storage-clause ] [ PCTFREE integer ] [ PCTUSED integer ] [ INITRANS integer ] [ MAXTRANS integer ] STORAGE-CLAUSE 에들어올수있는스토리지파라미터 - NEXT 다음번생성될익스텐트의크기를 Byte 단위로지정합니다. 이후, 익스텐트크기는 PCTINCREASE 만큼씩증가 - PCTINCREASE 마지막생성된익스텐트의바로다음에생성될익스텐트의증가율을퍼센트지로지정 - MINEXTENTS 최초생성되는익스텐트의수를지정 - MAXEXTENTS 생성될수있는최대익스텐트의수를지정 기타블록관련파라미터는테이블의생성강좌를참고

16 2. 테이블의생성과수정그리고삭제 - 테이블의관리 16 테이블의 TRUNCATE - 테이블을 Truncate 하면테이블의모든행이삭제되고사용된공간이해제 - TRUNCATE TABLE 은 DDL 명령이므로롤백데이터가생성되지않음. DELETE 명령으로데이터를지우면롤백명렁어로복구할수있지만 TRUNCATE 로데이터를삭제하면롤백을할수가없음. - 행의인덱스도같이잘려나감. - 외래키가참조중인테이블은 TRUNCATE 할수없음. - TRUNCATE 명령을사용하면삭제트리거가실행되지않음. TRUNCATE TABLE [schema.]table_name ; DROP TABLE ( 테이블을삭제할때사용 ) DROP TABLE [schema.]table_name [CASCADE CONSTRAINTS] ; SQL>DROP TABLE emp ; SQL>DROP TABLE emp CASCADE CONSTRAINT; CASCADE CONSTRAINT è 외래키에의해참조되는기본키를포함한테이블일경우기본키를참조하던외래키조건도같이삭제

17 3. 데이터조작어 (DML) - 데이터의삽입, 수정, 삭제 17 INSERT INSERT 명령어는테이블안에데이터를삽입하는역할 INSERT INTO table_name(column1, column2, ) VALUES ( 데이터, 데이터, ) ; - 실제데이터는 VALUES 괄호 () 안에입력하고문자열은단일따옴표 (' ') 로둘러싼다. - 각각의테이터는 "," 로구분 - 테이블이름옆에 () 생략시에는모든컬럼을 VALUES() 안에입력 모든데이터를입력할경우 SQL>INSERT INTO EMP VALUES(7369, 'SMITH', 'CLERK', 7902, TO_DATE('80/12/17'), 800, NULL, 20); 원하는데이터만입력할경우 SQL>INSERT INTO DEPT (DEPTNO, DNAME) VALUES(10, 'ACCOUNTING' ); SELECT 문장을이용한 INSERT INSERT INTO table_name(column1, column2, ) SELECT column1, column2, FROM table_name WHERE 조건 ; SQL>INSERT INTO DEPT SELECT * FROM SCOTT.DEPT ;

18 3. 데이터조작어 (DML) - 데이터의삽입, 수정, 삭제 18 UPDATE UPDATE 명령어는테이블안의데이터를수정 UPDATE table_name SET column1 = 값 ( 고칠내용 ), column2 = 값, WHERE 조건 SQL>UPDATE EMP SET DEPTNO = 30 WHERE EMPNO = 7902 ; è 사원번호가 7902 번인사람의부서번호가 30 번으로수정됨 SQL>UPDATE EMP SET SAL = SAL * 1.1 WHERE DEPTNO = 20 ; è 20 부서의사원들의급여가 10% 인상됨 SQL>UPDATE EMP SET HIREDATE = SYSDATE è 모든사원의입사일이오늘로수정됨 DELETE DELETE 명령어는테이블안의데이터를삭제 DELETE FROM table_name WHERE 조건 ; SQL>DELETE FROM EMP WHERE EMPNO = 7902 ; è 사원번호가 7902 번인사람의데이터가삭제 SQL>DELETE FROM EMP WHERE SAL < (SELECT AVG(SAL) FROM EMP) ; è 평균급여보다적게받는사원삭제 SQL>DELETE FROM EMP ; è 테이블의모든행이삭제

19 3. 데이터조작어 (DML) - SELECT 문및연산자 19 SELECT 문 SELECT 문은데이터베이스로부터저장되어있는데이터를검색하는데사용 SELECT [DISTINCT] {*, column [alias],...} FROM table_name [WHERE condition] [ORDER BY {column, expression} [ASC DESC]]; - DISTINCT : 중복되는행을제거하는옵션 - * : 테이블의모든 column 을출력 - alias : 해당 column 에대해서다른이름을부여할때사용 - table_name : 질의대상테이블명 - WHERE : 조건을만족하는행들만검색 - condition : column, 표현식, 상수및비교연산자 - ORDER BY : 질의결과정렬을위한옵션 (ASC: 오름차순 (Default),DESC 내림차순 ) SQL 문의작성방법 - SQL 문장은대소문자를구별하지않음. - SQL 문장은한줄또는여러줄에입력 - 일반적으로키워드는대문자로입력. 다른모든단어, 즉테이블이름, 열이름은소문자로입력 ( 권장 ) - 가장최근의명령어가 1 개가 SQL buffer 에저장 - SQL 문마지막절의끝에 ";" 를기술하여명령의끝을표시 [ 예제 ] SQL>SELECT empno 사번, ename 성명 FROM emp WHERE deptno = 10

20 3. 데이터조작어 (DML) - SELECT 문및연산자 20 WHERE 절에올수있는연산자들. 연산자설명 BETWEEN a AND b a 와 b 사이의데이터를출력 (a, b 값포함 ) IN (list) list 의값중어느하나와일치하는데이터를출력 LIKE 문자형태로일치하는데이터를출력 (%, _ 사용 ) IS NULL NULL 값을가진데이터를출력 NOT BETWEEN a AND b a 와 b 사이에있지않은데이터를출력 (a, b 값포함하지않음 ) NOT IN (list) NOT LIKE NOT IS NULL IN 과 NOT IN 연산자 IN 연산자 list 의값과일치하지않는데이터를출력 문자형태와일치하지않는데이터를출력 NULL 값을갖지않는데이터를출력 SQL> SELECT empno, ename FROM emp WHERE empno IN (7900, 7934) ; --> 사번이 7900, 7934 번인사원의사번과성명출력 NOT IN 연산자 SQL> SELECT empno, ename FROM emp WHERE empno NOT IN (7900, 7934); --> 사번이 7900, 7934 번이아닌사원의사번과성명출력

21 3. 데이터조작어 (DML) - SELECT 문및연산자 21 BETWEEN 연산자 SQL> SELECT empno, ename FROM emp WHERE sal BETWEEN 3000 AND 5000 ; --> 급여가 3000 에서 5000 사이인사원만보여줌. BETWEEN 연산자 (AND 를이용해두조건을결합한검색과같은결과값을보여줌.) LIKE 연산자 - 검색 STRING 값에대한와일드카드검색을위해서 LIKE 연산자를사용 - % : 여러개의문자열을나타내는와일드카드 - _ : 단하나의문자를나타내는와일드카드 - ESCAPE : 와일드카드문자를일반문자처럼사용하고싶은경우에사용 WHERE name LIKE '%a\_y%' ESCAPE '\' ; - LIKE 연산자는대소문자를구분 - Upper() 함수를이용해대소문자구분없이출력 [ 예제 ] SQL>SELECT empno, ename FROM emp WHERE UPPER(ename) like '%K%'; 'K' 문자가들어있는사원정보를보여줌. upper() 라는함수는 k 가들어가있는것도대문자 'K' 로인식하기때문에데이터들을보여줌. '_' 를이용한 LIKE 검색 SQL>SELECT empno, ename FROM emp WHERE UPPER(ename) like '_I%' '_' 는한문자를나타냄. 'I' 문자가두번째문자에위치한사원들의정보를보여줌.

22 3. 데이터조작어 (DML) - 예명 (Alias) 22 테이블예명 (Alias) 테이블예명 (Alias) - 테이블 alias 로 column 을단순, 명확히할수있음. - 현재의 SELECT 문장에대해서만유효 - 테이블 alias 는길이가 30 자까지가능하나짧을수록더욱좋다. - 테이블 alias 는의미가있어야함. - FROM 절에테이블 alias 설정시해당테이블 alias 는 SELECT 문장에서테이블이름대신에사용 SQL> SELECT a.dname, b.cnt FROM dept a, (SELECT deptno, COUNT(empno) cnt FROM emp GROUP BY deptno) b WHERE a.deptno = b.deptno AND b.cnt > 3 DNAME CNT RESEARCH 6 SALES 6 사원수가 3 명이넘는부서의부서명과사원수를보여줌. 위쿼리에선총 3 개의 Alias 가사용첫번째로 DEPT 테이블을 a 라는예명을, 두번째로부서의사원수인 COUNT(empno) 를 cnt 라는예명을세번째로부서별사원수를가져오는쿼리를 b 라는예명을줌. 위예제와같이예명은컬럼에만주는것이아니라. 쿼리문및테이블에도사용할수있음.

23 3. 데이터조작어 (DML) - 조인 (Join) 23 조인 (Join)? 조인 (Join) 이란 - 둘이상의테이블을연결하여데이터를검색하는방법 - 보통둘이상의행들의공통된값 Primary Key 및 Foreign Key 값을사용하여조인 - 그러므로두개의테이블을 SELECT 문장안에서조인하려면적어도하나의컬럼이그두테이블사이에서공유되어야함. 조인방법 - Equijoin( 동등조인, 내부조인 ) - Non-equijoin - Outer join - Self join Cartesian Product( 카티션곱 ) 검색하고자했던데이터뿐아니라조인에사용된테이블들의모든데이터가 Retrun 되는현상 Cartesian product 는다음과같은경우에발생 - 조인조건을정의하지않았을경우 - 조인조건이잘못된경우 - 첫번째테이블의모든행들이두번째테이블의모든행과조인이되는경우 - 테이블의개수가 N 이라면 Cartesian product 를피하기위해서는적어도 N-1 개의등가조건을 SELECT 문안에포함시켜서다른테이블안에있는각테이블의컬럼이적어도한번은참조되도록해야함.

24 3. 데이터조작어 (DML) - 조인 (Join) 24 Equi Join Equi Join - 조건절 Equality Condition(=) 에의하여조인이이루어짐. - Equi join 의성능을높이기위해서는 Index 기능을사용하는것이좋다. SQL>SELECT e.ename, d.dname è WHERE 절에조인조건을작성하고 column 명앞에테이블명을적음. FROM emp e, dept d WHERE e.deptno = d.deptno; Non-Equijoin Non-Equijoin - Non-equijoin 은테이블의어떤 column 도 join 할테이블의 column 에일치하지않을때사용하고조인조건은동등 ( = ) 이외의연산자를갖는다. (BETWEEN AND, IS NULL, IS NOT NULL, IN, NOT IN) SQL>SELECT e.ename, d.dname FROM emp e, dept d WHERE e.sal BETWEEN 3000 AND 4000; Self Join Self Join - Equi Join 과같으나하나의테이블에서조인이일어나는것이다름. - 같은테이블에대해두개의 alias 를작성함으로 FROM 절에두개의테이블을사용 SQL> SELECT concat(a.ename,' ') ' : \' b.sal 급여 FROM emp a, emp b WHERE a.empno = b.empno

25 3. 데이터조작어 (DML) - 조인 (Join) 25 Out( 외부 ) Join Out( 외부 ) Join - equijoin 문장들의한가지제약점은그것들이조인을생성하려하는두개의테이블의두개컬럼에서공통된값이없다면테이블로부터테이터를 Return 하지않는다. - 정상적으로조인조건을만족하지못하는행들을보기위해 outer join 을사용 Outer join 연산자 "( + )" - 조인시킬값이없는조인측에 "(+)" 를위치시킨다. - Outer join 연산자는표현식의한편에만올수있다. - Outer join 은 IN 연산자를사용할수없고 OR 연산자에의해다른하나의조건에연결될수없다. 예제 1) 일반조인의경우 SQL> SELECT DISTINCT(a.deptno), b.deptno FROM emp a, dept b WHERE a.deptno = b.deptno DEPTNO DEPTNO 예제 2) out join 을했을경우 SQL> SELECT DISTINCT(a.deptno), b.deptno FROM emp a, dept b WHERE a.deptno(+) = b.deptno DEPTNO DEPTNO

26 3. 데이터조작어 (DML) - 트랜잭션 (commit 과 rollback) 26 데이터베이스 TRANSACTION 데이터베이스 TRANSACTION 트랜잭션은데이터처리의한단위 오라클서버에서발생하는 SQL 문들을하나의논리적인작업단위로써성공하거나실패하는일련의 SQL 문 ORACLE SERVER 는 TRANSACTION 을근거로데이터의일관성을보증 TRANSACTION 은데이터를일관되게변경하는 DML 문장으로구성 (COMMIT, ROLLBACK, SAVEPOINT) 1 TRANSACTION 의시작 - 실행가능한 SQL 문장이제일처음실행될때 2 TRANSACTION 의종료 - COMMIT 이나 ROLLBACK - DDL 이나 DCL 문장의실행 ( 자동 COMMIT) - 기계장애또는시스템충돌 (crash) - deadlock 발생 - 사용자가정상종료 3 자동 COMMIT 은다음의경우발생 - DDL,DCL 문장이완료될때 - 명시적인 COMMIT 이나 ROLLBACK 없이 SQL*Plus 를정상종료했을경우 4 자동 ROLLBACK 은다음의경우발생 - SQL*Plus 를비정상종료했을경우 - 비정상적인종료, system failure

27 3. 데이터조작어 (DML) - 트랜잭션 (commit 과 rollback) 27 COMMIT 과 ROLLBACK COMMIT 과 ROLLBACK COMMIT : 변경사항저장 ROLLBACK : 변경사항취소 1 COMMIT 과 ROLLBACK 의장점 - 데이터의일관성을제공 - 데이터를영구적으로변경하기전에데이터변경을확인 - 관련된작업을논리적으로그룹화 - COMMIT, SAVEPOINT,ROLLBACK 문장으로 TRANSACTION 의논리를제어 2 COMMIT 이나 ROLLBACK 이전의데이터상태 - 데이터이전의상태로북구가가능 - 현재사용자는 SELECT 문장으로 DML 작업의결과를확인 - 다른사용자는 SELECT 문장으로현재사용자사용한 DML 문장의결과를확인할수없음. - 변경된행은 LOCK 이설정되어서다른사용자가변경할수없음. 3 COMMIT 이후의데이터상태 - 데이터베이스에데이터를영구적으로변경 - 데이터의이전상태는완전히상실 - 모든사용자가결과를볼수있다. - 변경된행의 LOCK 이해제되고다른사용자가변경할수있다. - 모든 SAVEPOINT 는제거

28 4. 내장함수 (Sing-Row Functions) - 숫자함수 (Number Functions) 28 ABS(n) : ABS함수는절대값을계산하는함수 CEIL(n) : CEIL함수는주어진값보다는크지만가장근접하는최소값을구하는함수 EXP(n) : EXP함수는주어진값의 e의승수. e = FLOOR(n) : FLOOR함수는주어진값보다작거나같은최대정수값을구하는함수. (CEIL 함수와비교 ) LN(n) : LN함수는주어진값의자연로그값을반환 MOD(m, n) : MOD함수는 m을 n으로나누어남은값을반환. n이 0일경우 m을반환 POWER(m, n) : POWER함수는 m의 n승값을계산 ROUND(n, [m]) : ROUND함수는 n값의반올림을하는함수로 m은소숫점아래자릿수를나타냄. SQL>SELECT ROUND( , 1) TEST FROM dual ; SQL>SELECT ROUND( , -1) TEST FROM dual ; TEST TEST SIGN(n) : SIGN함수는 n<0일경우 1을 N=0일경우 0을 N>0일경우 1을반환 SQRT(n) : SQRT함수는 n값의루트값을계산. n은양수 TRUNC(n, m) : TRUNC함수는 n값을 m 소숫점자리로반내림한값을반환. (ROUND 함수와비교 ) SQL>SELECT TRUNC(6.5597, 2) TEST FROM dual ; SQL>SELECT TRUNC ( , -2 ) TEST FROM dual ; TEST TEST

29 4. 내장함수 (Sing-Row Functions) - 문자열처리함수 (Character Functions) 29 CONCAT(char1, char2) CONCAT 함수는 Concatenation 의약자로두문자를결합하는역할. " " 연산자와같은역할을합니다. SQL>SELECT CONCAT('Oracle', ' Korea') NAME FROM dual ; NAME Oracle Korea INITCAP(char) : 주어진문자열의첫번째문자를대문자로변환 LOWER(char) : 문자열을소문자로변환 UPPER(char) : 문자열을대문자로변환 LPAD(char1, n [,char2]) : 왼쪽에문자열을끼어놓는역할 n 은반환되는문자열의전체길이를나타내며, char1 의문자열이 n 보다클경우 char1 을 n 개문자열만큼반환 SQL>SELECT LPAD('JUNG-SICK', 10, '*') NAME FROM dual ; NAME *JUNG-SICK RPAD(char1, n [,char2]) : LPAD 와반대로오른쪽에문자열을끼어놓는역할 SQL>SELECT RPAD('JUNG-SICK', 10, '*') NAME FROM dual ; NAME JUNG-SICK*

30 4. 내장함수 (Sing-Row Functions) - 문자열처리함수 (Character Functions) 30 SUBSTR(char, m,[n]) : SUBSTR 함수를이용하여 m 번째자리부터길이가 n 개인문자열을반환 m 이음수일경우에는뒤에서 M 번째문자부터반대방향으로 n 개의문자를반환 -- 뒤에서부터자를 SQL>SELECT SUBSTR('JUNG-SICK', 3, 3) NAME FROM dual ; SQL>SELECT SUBSTR('JUNG-SICK', -3, 3) NAME FROM dual ; NAME NAME NG- ICK LENGTH(char1) : 문자열의길이를리턴 SQL>SELECT LENGTH('JUNG-SICK') TEST FROM dual ; TEST REPLACE(char1, str1, str2) : REPLACE 는문자열의특정문자를다른문자로변환 SQL> SELECT REPLACE('JACK and JUE','J','BL') "Changes" FROM DUAL; Changes BLACK and BLUE -- 대소문자를구분한다는것을알수있다. SQL>SELECT REPLACE('JACK and JUE','j','BL') "Changes" FROM DUAL Changes JACK and JUE

31 4. 내장함수 (Sing-Row Functions) - 문자열처리함수 (Character Functions) 31 INSTR : 문자열이포함되어있는지를조사하여문자열의위치를반환지정한문자열이발견되지않으면 0 이반환 -- 지정한문자 OK 가발견되지않아서 0 이반환 SQL>SELECT INSTR('CORPORATE FLOOR','OK') "Instring" FROM DUAL Instring OR 이있는위치 2 를반환. 왼쪽부터비교를한다는것을알수있다. SQL>SELECT INSTR('CORPORATE FLOOR','OR') "Instring" FROM DUAL Instring TRIM : 특정한문자를제거제거할문자를입력하지않으면기본적으로공백이제거. 리턴값의데이터타입은 VARCHAR 을제거 SQL>SELECT TRIM(0 FROM ) "TRIM Example" FROM DUAL; TRIM Example 어떤문자도입력하지않으면기본적으로공백이제거 -- TRIM 을사용한위에예제와사용하지않은아래예제의결과값이다르게나오는것을알수있다. SQL>SELECT NVL(TRIM (' '),' 공백 ') "TRIM Example" FROM DUAL TRIM Example 공백

32 4. 내장함수 (Sing-Row Functions) - 날짜처리함수 (Date Functions) 32 LAST_DAY(d) : LAST_DAY 함수는달의마지막날의날짜를반환 SQL>SELECT SYSDATE TODAY, LAST_DAY(SYSDATE) LASTDAY FROM dual ; TODAY LASTDAY JUN JUN-2000 ADD_MONTHS(a, b) : ADD_MONTHS 함수는 a 의날짜에 b 의달을더한값을반환 SQL>SELECT TO_CAHR(ADD_MONTHS(SYSDATE,3),'RRRR/MM/DD' LASTDAY) "date" FROM dual ; date /09/05 MONTH_BETWEEN(a1, a2) : MONTH_BETWEEN 은 a1 과 a2 사이의달의수를 NUMBER 형타입으로반환 SQL>SELECT MONTHS_BETWEEN(TO_DATE('2000/06/05'), TO_DATE('2000/09/23')) "Date" FROM dual ; Date ROUND(d[,F]) : ROUND 함수는 F 에지정된단위로반올림합니다, F 가연도라면연도단위로반올림 SQL>SELECT ROUND(TO_DATE('1998/09/11'), 'YEAR') FROM dual ; ROUND(TO_

33 4. 내장함수 (Sing-Row Functions) - 변환함수 (Conversion Functions) 33 TO_CHAR : TO_CHAR 함수는 DATE 형, NUMBER 형을 VARCHAR2 형으로변환 SQL>SELECT TO_CHAR(SYSDATE, 'MONTH') CHARTEST FROM dual ; CHARTEST JUNE 오늘이 6 월 10 일이라면,.. 오늘의달인 6 월이찍힘 TO_DATE : TO_DATE 함수는 CHAR, VARCHAR2 형을 DATE 타입으로변환 SQL>SELECT TO_DATE('2000/06/16','RRRR/MM/DD') FROM dual ; TO_DATE( /06/16 '2000/06/16' 문자열이날짜형으로변환 TO_NUMBER : TO_NUMBER 함수는 CHAR, VARCHAR2 의데이터타입을숫자형식으로변환 SQL>SELECT TO_NUMBER(' ') FROM dual ; TO_NUMBER( ' ' 문자열이숫자형으로변환 * SQL Function 에대하여아래사이트참조.

34 4. 내장함수 (Sing-Row Functions) - 기타함수 (Miscellaneous Single-Row Functions) 34 NVL - NVL 함수는 NULL 값을다른값으로바꿀때쓰임. - 모든데이터타입에적용가능 - 전환되는값의데이터타입을일치시켜야함. SQL>SELECT empno, NVL(comm, 0) FROM emp WHERE deptno = 30; EMPNO NVL(COMM,0) Commsion이없는사원에대해 0으로바꾸어서출력 DECODE - DECODE 함수는데이터들을다른값으로바꾸어줌 - 형식 DECODE(VALUE, IF1, THEN1, IF2, THEN2...) - VALUE 값이 IF1 일경우에 THEN1 값으로바꾸어주고 VALUE 값이 IF2 일경우에는 THEN2 값으로바꾸어줌 SQL> SELECT deptno, DECODE(deptno, 10, 'ACCOUNTING', 20, 'RESEARCH', 30, 'SALES', 40, 'OPERATIONS') FROM emp ; DEPTNO DECODE(DEP RESEARCH 30 SALES 10 ACCOUNTING 부서가 10 번이면 'ACCOUNTING' 를 20 번이면 'RESEARCH' 를 30 번이면 'SALES' 를 40 번이면 'OPERATIONS' 를출력하는예제

35 4. 내장함수 (Sing-Row Functions) - 기타함수 (Miscellaneous Single-Row Functions) 35 DUMP : DUMP 는바이트크기와해당데이터타입코드를반환 SQL>SELECT ename, DUMP(ename, 16) "16 진수 " FROM emp WHERE ename = 'ALLEN' ename 16진수 ALLEN Typ=1 Len=5: 41,4c,4c,45,4e 만약에 16 대신 8 을넣으면 8 진수로, 10 를넣으면 10 진수로변환 16, 10, 8, 17 이올수있는데, 17 은단일문자열을반환함. Len 은 ename 의해당 byte 수 GREATEST : GREATEST 함수는검색값중에서가장큰값을반환 SQL>SELECT GREATEST(10, 100, 5, -7) FROM DUAL; GREATEST(10,100,5,-7) 가장큰수 : 100 LEAST : LEAST 함수는 GREATEST 함수와반대로가장작은값을반환 SQL>SELECT LEAST(10, 100, 5, -7) FROM DUAL; LEAST(10,100,5,-7)

36 4. 내장함수 (Sing-Row Functions) - 기타함수 (Miscellaneous Single-Row Functions) 36 UID : 현재사용자의유일한 ID 번호를반환 USER : 현재오라클을사용하는사용자를 VARCHAR2 형식으로반환 SQL> SELECT USER, UID FROM DUAL; USER UID SCOTT 32 USERENV : USERENV 함수는현재세션의환경정보를반환 - ENTRYID : 사용가능한 Auditing entry Identifier 를반환 - LABEL : 현재세션의 Label 을반환 - LANGUAGE : 현재세션에서사용중인언어와테리토리값을반환 - SESSIONID : Auditing( 감사 ) Session ID 를반환 - TERMINAL : 현재세션터미널의 OS ID 를반환 SQL> SELECT USERENV('LANGUAGE') FROM DUAL; USERENV('LANGUAGE') KOREAN_KOREA.KO16KSC5601 VSIZE : 해당문자의 BYTE 수를반환합니다. 해당문자가 NULL 이면 NULL 값이반환 SQL> SELECT VSIZE(ename), ename FROM emp WHERE deptno = 30; VSIZE(ENAME) ENAME ALLEN 4 WARD 6 MARTIN

37 5. 그룹함수 (Group Functions) - Group Function 의종류 37 그룹함수란? - 그룹함수란여러행또는테이블전체의행에대해함수가적용되어하나의결과값을가져오는함수 - GROUP BY 절을이용하여그룹당하나의결과가주어지도록그룹화할수있다. - HAVING 절을사용하여그룹함수를가지고조건비교를할수있다. - COUNT(*) 를제외한모든그룹함수는 NULL 값을고려하지않는다. - MIN, MAX 그룹함수는모든자료형에대해서사용할수있다. 그룹함수의종류 COUNT : COUNT 함수는검색된행의수를반환 SQL>SELECT COUNT(deptno) FROM DEPT ; COUNT(DEPTNO) ==> 검색된행의총수 4 개를반환. 즉 4 개의부서가존재 MAX : MAX 함수는컬럼중의최대값을반환 SQL>SELECT MAX(sal) salary FROM emp ; SALARY ==> sal 컬럼중에서제일큰값을반환. 즉가장큰급여를반환

38 5. 그룹함수 (Group Functions) - Group Function 의종류 38 MIN : MIN 함수는컬럼중의최소값을반환 SQL>SELECT MIN(sal) salary FROM emp ; SALARY ==> sal 컬럼중에서가장작은값반환. 즉가장적은급여를반환 AVG : AVG 함수는평균값을반환 SQL>SELECT ROUND(AVG(sal),1) salary FROM emp WHERE deptno = 30 SALARY ==> 30 부서사원의평균급여를소수점 1 자리이하에서반올림 SUM : SUM 함수는검색된컬럼의합을반환 SQL>SELECT SUM(sal) salary FROM emp WHERE deptno = 30; SALARY ==> 30 부서사원의급여합계를보여줌 STDDEV : STDDEV 함수는표준편차를반환 SQL> SELECT ROUND(STDDEV(sal),3) salary FROM emp WHERE deptno = 30 ; SALARY ==> 30 부서사원의급여표준편차를반환

39 5. 그룹함수 (Group Functions) - Group By 절과 Having 절 39 GROUP BY? - 특정한컬럼의테이터들을다른데이터들과비교해유일한값에따라무리를지음 - GROUP BY 절을사용하여한테이블의행들을원하는그룹으로나눔 - Column 명을 GROUP 함수와 SELECT 절에사용하고자하는경우 GROUP BY 뒤에 Column 명을추가 GROUP BY 예제 예제1) 부서별로그룹을지은검색결과값이며부서별로사원수를보여줌 SQL>SELECT b.deptno, COUNT(a.empno) FROM emp a, dept b WHERE a.deptno = b.deptno GROUP BY b.deptno DEPTNO COUNT(*) 예제 2) 업무별로그룹하여업무, 인원수, 평균급여액, 최고급여액, 최저급여액및합계를출력하라. SQL>SELECT job, COUNT(empno) " 인원수 ", AVG(sal) " 평균급여액 ", MAX(sal) " 최고급여액 ", MIN(sal) " 최저급여액 ", SUM(sal) " 급여합계 " FROM emp GROUP BY job JOB 인원수평균급여액최고급여액최저급여액급여합계 ANALYST CLERK MANAGER PRESIDENT SALESMAN

40 5. 그룹함수 (Group Functions) - Group By 절과 Having 절 40 GROUP BY 의 HAVING 절 - WHERE 절에 GROUP Function 을사용할수없음 - HAVING 절은 GRUOP 함수를가지고조건비교를할때사용 - WHERE GRUOP BY HAVING ORDER BY 순으로쿼리문이와야됨. 예제 1) 사원수가 5 명이넘는부서의부서명과사원수를출력해라 SQL>SELECT b.dname, COUNT(a.empno) FROM emp a, dept b WHERE a.deptno = b.deptno GROUP BY dname HAVING COUNT(a.empno) > 5 DNAME COUNT(A.EMPNO) RESEARCH 6 SALES 6 예제2) 전체월급이 5000을초과하는각업무에대해서업무와월급여합계를출력하여라. 단판매원은제외하고월급여합계로내림차순정렬하여라. SQL>SELECT job, SUM(sal) " 급여합계 " FROM emp WHERE job NOT IN ('SALES') -- 판매원은제외 GROUP BY job -- 업무별로 Group By HAVING SUM(sal) > 전체월급이 5000을초과하는 ORDER BY SUM(sal) DESC; -- 월급여합계로내림차순정렬 JOB 급여합계 MANAGER 8520 ANALYST 6000 SALESMAN 5600

41 6. 서브쿼리 (Subquery) - 서브쿼리 (Subquery) 란? 41 Subquery 란? SUBQUERY는다른하나의 SQL 문장의절에 NESTEDED된 SELECT 문장 SELECT, UPDATE, DELETE, INSERT와같은 DML문과 CREATE TABLE 또는 VIEW에서이용될수있음 알려지지않은조건에근거한값들을검색하는 SELECT 문장을작성하는데유용 SUBQUERY는 MAIN QUERY가실행되기이전에한번실행 Guidelines SUBQUERY는괄호로묶어야함. SUBQUERY는연산자의오른쪽에나타냄 두종류의비교연산자들이 SUBQUERY에사용 - 단일행연산자 (=,>, >=, <, <=, <>,!=) - 복수행연산자 (IN, NOT IN, ANY, ALL, EXISTS) Guidelines 단일행 (Sing-Row) 서브쿼리 : SELECT문장으로부터오직하나의행만을검색하는질의 다중행 (Multiple-Row) 서브쿼리 : SELECT문장으로부터하나이상의행을검색하는질의 다중열 (Multiple-Column) 서브쿼리 : SELECT문장으로부터하나이상의컬럼을검색하는질의 FROM절상의서브쿼리 (INLINE VIEW) : FROM절상에오는서브쿼리로 VIEW처럼작용 상관관계서브쿼리 : 바깥쪽쿼리의컬럼중의하나가안쪽서브쿼리의조건에이용되는처리방식

42 6. 서브쿼리 (Subquery) - 단일행 (Sing-Row) 서브쿼리 42 단일행 (Sing-Row) 서브쿼리란? 오직한개의행 ( 값 ) 을반환 (Return only one row) 단일행연산자 (=,>, >=, <, <=, <>,!=) 만사용 SQL> SELECT ename,job FROM emp WHERE job = (SELECT job FROM emp WHERE empno = 7369); 위의서브쿼리를실행시키면. 오른쪽의그림처럼. empno 가 7369 인 job 을먼저검색하고.. job 이 'CLERK' 인사원의이름과직업을반환

43 6. 서브쿼리 (Subquery) - 다중행 (Multiple-Row) 서브쿼리 43 다중행 (Multiple-Row) 서브쿼리란? 하나이상의행을 RETURN 하는 SUBQUERY 를다중행 SUBQUERY 복수행연산자 (IN, NOT IN, ANY, ALL, EXISTS) 를사용 IN 연산자의사용예제 예제 ) 부서별로가장급여를많이받는사원의정보를출력하는예제 SQL>SELECT empno,ename,sal,deptno FROM emp WHERE sal IN (SELECT MAX(sal) FROM emp GROUP BY deptno); EMPNO ENAME SAL DEPTNO BLAKE SCOTT FORD KING ANY 연산자의사용예제 - ANY 연산자는서브쿼리의결과값중어느하나의값이라도만족이되면결과값을반환 SQL>SELECT ename, sal FROM emp WHERE deptno!= 20 AND sal > ANY(SELECT sal FROM emp WHERE job='salesman'); ENAME SAL ALLEN 1600 BLAKE 2850 CLARK 2450 KING 5000 TURNER 1500 MILLER 개의행이선택

44 6. 서브쿼리 (Subquery) - 다중행 (Multiple-Row) 서브쿼리 44 ALL 연산자의사용예제 - ALL 연산자는서브쿼리의결과값중모든결과값이만족되야만결과값을반환 SQL>SELECT ename, sal FROM emp WHERE deptno!= 20 AND sal > ALL(SELECT sal FROM emp WHERE job='salesman'); ENAME SAL BLAKE 2850 CLARK 2450 KING 개의행이선택 EXISTS 연산자의사용예제 - EXISTS 연산자를사용하면서브쿼리의데이터가존재하는가의여부를먼저따져존재하는값들만을결과로반환 - SUBQUERY 에서적어도 1 개의행을 RETURN 하면논리식은참이고그렇지않으면거짓 예제 ) 사원을관리할수있는사원의정보를보여줌 SELECT empno, ename, sal FROM emp e WHERE EXISTS (SELECT empno FROM emp WHERE e.empno = mgr) EMPNO ENAME SAL JONES BLAKE CLARK SCOTT KING FORD 개의행이선택

45 6. 서브쿼리 (Subquery) - 다중열 (Multiple-Column) 서브쿼리 45 다중열 (Multiple-Column) 서브쿼리란? 다중열서브쿼리란서브쿼리의결과값이두개이상의컬럼을반환하는서브쿼리 Pairwise( 쌍비교 ) Subquery 서브쿼리가한번실행되면서모든조건을검색해서주쿼리로넘겨줌 ex) SELECT empno, sal, deptno FROM emp WHERE (sal, deptno) IN ( SELECT sal, deptno FROM emp WHERE deptno = 30 AND comm is NOT NULL ); EMPNO SAL DEPTNO Null Values in a Subquery 서브쿼리에서 null 값이반환되면주쿼리에서는어떠한행도반환되지않음. Nonpairwise( 비쌍비교 ) Subquery 서브쿼리가여러조건별로사용되어서결과값을주쿼리로넘겨줌 ex) SELECT empno, sal, deptno FROM emp WHERE sal IN ( SELECT sal FROM emp WHERE deptno = 30 AND comm is NOT NULL ) AND deptno IN ( SELECT deptno FROM emp WHERE deptno = 30 AND comm is NOT NULL ); EMPNO SAL DEPTNO

46 6. 서브쿼리 (Subquery) - FROM 절상의서브쿼리 (INLINE VIEW) 와상관관계서브쿼리 46 FROM 절상의서브쿼리 (INLINE VIEW) 란? SUBQUERY 는 FROM 절에서도사용이가능 INLINE VIEW 란 FROM 절상에오는서브쿼리로 VIEW 처럼작용 예제 ) 급여가 20 부서의평균급여보다크고사원을관리하는사원으로서 20 부서에속하지않은사원의정보를보여주는 SQL 문 SELECT b.empno,b.ename,b.job,b.sal, b.deptno FROM (SELECT empno FROM emp WHERE sal >(SELECT AVG(sal) FROM emp WHERE deptno = 20)) a, emp b WHERE a.empno = b.empno AND b.mgr is NOT NULL AND b.deptno!= 20 EMPNO ENAME JOB SAL DEPTNO BLAKE MANAGER CLARK MANAGER 상관관계서브쿼리 상관관계서브쿼리란바깥쪽쿼리의컬럼중하나가안쪽서브쿼리의조건에이용되는처리방식 이는주쿼리에서서브쿼리를참조하고이값을다시주쿼리로반환 예제 ) 사원을관리할수있는사원의평균급여보다급여를많이받는사원의정보를출력 SELECT empno, ename, sal FROM emp e WHERE sal > (SELECT AVG(sal) sal FROM emp WHERE e.empno = mgr) EMPNO ENAME SAL BLAKE CLARK SCOTT KING FORD 3000

47 6. 서브쿼리 (Subquery) - 집합쿼리 (UNION, INTERSECT, MINUS) 47 집합쿼리 (UNION, INTERSECT, MINUS) 집합연산자를사용시집합을구성할컬러의데이터타입이동일해야함 UNION : 합집합 UNION ALL: 공통원소두번씩다포함한합집합 INTERSECT: 교집합 MINUS: 차집합 UNION UNION 은두테이블의결합을나타내며, 결합시키는두테이블의중복되지않은값들을반환 SQL>SELECT deptno FROM emp UNION SELECT deptno FROM dept; DEPTNO UNION ALL UNION 과같으나두테이블의중복되는값까지반환 SQL>SELECT deptno FROM emp UNION ALL SELECT deptno FROM dept; DEPTNO

48 6. 서브쿼리 (Subquery) - 집합쿼리 (UNION, INTERSECT, MINUS) 48 INTERSECT INTERSECT 는두행의집합중공통된행을반환 SQL>SELECT deptno FROM emp INTERSECT SELECT deptno FROM dept; DEPTNO MINUS MINUS 는첫번째 SELECT 문에의해반환되는행중에서두번째 SELECT 문에의해반환되는행에존재하지않는행들을보여줌 SQL>SELECT deptno FROM dept MINUS SELECT deptno FROM emp; DEPTNO

49 SQL 연습문제 lives(person-name, street, city) works(person-name, company-name, salary) located-in(company-name, city) manages(person-name, manager-name) 문제 1. First bank 에근무하는모든사람에이름을찾아라 답 : select person-name from work where company-name ="First Bank Corporation"

50 SQL 연습문제 lives(person-name, street, city) works(person-name, company-name, salary) located-in(company-name, city) manages(person-name, manager-name) 문제 2. First bank 에근무하는모든사람의이름과도시를찾아라 답 : select l.person-name, l.city from lives l, works w where w.company-name = "First Bank Corporation" and w.person-name = l.person-name

51 SQL 연습문제 lives(person-name, street, city) works(person-name, company-name, salary) located-in(company-name, city) manages(person-name, manager-name) 문제 3. First bank 에근무하고 10,000$ 이상의연봉을받는근로자의이름, 거리및도시를찾아라 답 : select * from lives where person-name in (select person-name from works where company-name = "First Bank" and salary > 10,000

52 SQL 연습문제 lives(person-name, street, city) works(person-name, company-name, salary) located-in(company-name, city) manages(person-name, manager-name) 문제 4. 자기가근무하는회사와같은도시에사는모든근로자를찾아라 답 : select l.person-name from lives l, works w, located-in i where l.person-name = w.person-name and l.city = i.city and w.company-name = i.company-name

53 SQL 연습문제 lives(person-name, street, city) works(person-name, company-name, salary) located-in(company-name, city) manages(person-name, manager-name) 문제 5. 자기의관리자와같은도시, 같은거리에사는모든사람을찾아라 답 : select P.person-name from lives P, lives R, manages M where P.person-name = M.person-name and M.manager-name = R.person-name and P.street = R.street and P.city = R.city

54 SQL 연습문제 lives(person-name, street, city) works(person-name, company-name, salary) located-in(company-name, city) manages(person-name, manager-name) 문제 6. First bank 에서일하지않는모든사람을찾아라 답 : select person-name from works where company-name!= "First Bank"

55 SQL 연습문제 lives(person-name, street, city) works(person-name, company-name, salary) located-in(company-name, city) manages(person-name, manager-name) 문제 7. Small bank 의모든근로자보다연봉이많은사람을찾아라 답 : select person-name from works where salary > all (select salary from works where company-name = "Small Bank Corporation")

56 7. 데이터사전 (Data Dictionary)- 데이터사전 (Data Dictionary) 56 데이터사전 (Data Dictionary) 이란? 데이터사전 (Data Dictionary) 이란읽기전용테이블및뷰들의집합으로데이터베이스전반에대한정보를제공 데이터사전에저장되는내용 - 오라클의사용자이름 - 오라클권한과롤 - 데이터베이스스키마객체 (Table, View, index, cluster, Synonym, Sequence..) 이름과정의들 - 무결성제약조건에관한정보 - 데이터베이스의구조정보 - 오라클데이터베이스의함수와프로지저및트리거에대한정보 - 기타일반적인 DataBase 정보 Oracle 사용자 SYS 는데이타디셔널리의모든기본 Table 과 View 를소유 Oracle 은 DDL 명령이실행될때마다 Data Dictionary 를 Access 모든 Oracle 사용자는 DB 정보에대한읽기전용참조로 Data Dictionary 사용할수있음. DB 작업동안 Oracle 은 Data Dictionary 를읽어개체의존재여부와사용자에게적합한 Access 권한이있는지를확인. 또한 Oracle 은 Data Dictionary 를계속갱신하여 DataBase 구조, 감사, 사용자권한, 데이터등의변경사항을반영 데이터사전테이블은아래의스크립트를실행시켜서도생성 ==> 기본데이터사전테이블생성스크립트 ==> 자주사용되는데이터사전뷰생성스크립트

57 7. 데이터사전 (Data Dictionary)- 데이터사전 (Data Dictionary) 57 User_XXXX View 한특정사용자에게종속되어있고, 그사용자가조회가능한데이터사전뷰 ALL_XXXX View 의모든정보의부분집합 Public Synonym 을가질수있다. 아래의예는 Scott 사용자의 Table 조회결과 SQL> SELECT table_name, tablespace_name FROM USER_TABLES; TABLE_NAME TABLESPACE_NAME BONUS TOOLS DEPT TOOLS DUMMY TOOLS ALL_XXXX View 한특정사용자가조회가능한모든데이터사전뷰를의미 자신이조회하려는객체의주인이아니더라도그객체에접근할수있는권한을가지고있다면 ALL_XXX 뷰를통하여조회 SQL> SELECT table_name, tablespace_name FROM ALL_TABLES; DUAL SYSTEM SYSTEM_PRIVILEGE_MAP TABLE_PRIVILEGE_MAP DEPT TEST DUMMY TEST... SYSTEM SYSTEM

58 7. 데이터사전 (Data Dictionary)- 데이터사전 (Data Dictionary) 58 DBA_XXXX View DBA 권한을가진사용자만이조회할수있는데이터사전으로서모든오라클데이터베이스객체에대한정보를보여줌. SELECT ANY TABLE 권한이있는사용자또한질의가가능 이러한 View 에대한동의어는생성되지않으며, 다른사용자가질의하려면앞에 sys. 이라는접두어를붙여야함. ex) SELECT OWNER, OBJECT_NAME FROM SYS.DBA_OBJECTS;

59 8. 오라클객체 - 인덱스 (Index) 59 인덱스란? 인덱스는테이블이나클러스트에서쓰여지는선택적인객체로서, 오라클데이터베이스테이블내의원하는레코드를빠르게찾아갈수있도록만들어진데이터구조 자동인덱스 : 프라이머리키또는 uinque 제한규칙에의해자동적으로생성되는인덱스 수동인덱스 : CREATE INDEX 명령을실행해서만드는인덱스 Index 를생성하는것이좋은 Column 1 WHERE 절이나 join 조건안에서자주사용되는컬럼 2 null 값이많이포함되어있는컬럼 3 WHERE 절이나 join 조건에서자주사용되는두개이상의컬럼들 index 생성이불필요한경우 1 table 이작을때 3 테이블이자주갱신될때 오라클인덱스는 B-tree(binary search tree) 에대한원리를기반 B-tree 인덱스는컬럼안에독특한데이터가많을때가장좋은효과 이알고리즘원리는 1 주어진값을리스트의중간점에있는값과비교만약그값이더크면리스트의아래쪽반을버리고, 그값이더작다면위쪽반을버린다. 2 하나의값이발견될때까지또는리스트가끝날때까지그와같은작업을다른반쪽에도반복

60 8. 오라클객체 - 인덱스 (Index) 60 1 Bitmap 인덱스 비트맵인덱스는각컬럼에대해적은개수의독특한값이있을경우에가장잘작동그러므로비트맵인덱스는 B-tree 인덱스가사용되지않을경우에서성능을향상 테이블이매우크거나수정 / 변경이잘일어나지않는경우에사용예를들어여권기록을포함하고있는테이블의성별열이나결혼여부열의경우에는 B- 트리인덱스보다는비트맵인덱스가더유리함. 질의문이 OR 연산자를포함하는여러개의 WHERE 조건을자주사용할때유리함. SQL>CREATE BITMAP INDEX emp_deptno_indx ON emp(deptno); 2 Unique 인덱스 Unique 인덱스는인덱스를사용한컬럼의중복값들을포함하지않고사용할수있는장점이있다. 프라이머리키와 Unique 제약조건시생성되는인덱스는 Unique 인덱스 SQL>CREATE UNIQUE INDEX emp_ename_indx ON emp(ename); 3 Non-Unique 인덱스 Non-Unique 인덱스는인덱스를사용한컬럼에중복데이터값을가질수있다. SQL>CREATE INDEX dept_dname_indx ON dept(dname);

61 8. 오라클객체 - 인덱스 (Index) 61 4 결합 (Concatenated(=Composite)) 인덱스 복수개의컬럼에생성할수있으며복수키인덱스가가질수있는최대컬럼값은 16 개 SQL>CREATE UNIQUE INDEX emp_empno_ename_indx ON emp(empno, ename); 인덱스의삭제 인덱스의구조는테이블과독립적이므로인덱스의삭제는테이블의데이터에는아무런영향도미치지않는다. 인덱스를삭제하려면 INDEX 의소유자이거나 DROP ANY INDEX 권한을가지고있어야함 INDEX 는 ALTER 를할수없다. SQL>DROP INDEX emp_empno_ename_indx ; 인덱스에대한정보는 USER_INDEXES 뷰또는 USER_IND_COLUMNS 뷰를통해검색할수있다. SQL> SELECT index_name, index_type FROM USER_INDEXES WHERE table_name='emp'; INDEX_NAME INDEX_TYPE EMP_DEPTNO_INDX BITMAP EMP_PK_EMPNO NORMAL

62 8. 오라클객체 - VIEW 테이블 62 뷰란? 뷰 : 하나의가상테이블 뷰는실제데이터가저장되는것은아니지만뷰를통해데이터를관리할수있다. 뷰는복잡한query를통해얻을수있는결과를간단한 query를써서구할수있게한다. 한개의뷰로여러테이블에대한데이터를검색 특정평가기준에따른사용자별로다른데이터를액세스할수있도록함 뷰의제한조건 테이블에 NOT NULL 로만든컬럼들이. 뷰에다포함이되있어야한다. 그리고 ROWID, ROWNUM, NEXTVAL, CURRVAL 등과같은가상컬럼에대한참조를포함하고있는뷰에는어떤데이터도 Insert 할수없다. WITH READ ONLY 옵션을설정한뷰도데이터를갱신할수없다. WITH CHECK OPTION 을설정한뷰는뷰의조건에해당되는데이터만삽입, 삭제, 수정이가능

63 8. 오라클객체 - VIEW 테이블 63 뷰생성문법 CTEATE [OR REPLACE] [FORCE NOFORCE] VIEW view_name AS subquery [WITH CHECK OPTION [CONSTRAINT 제약조건 ]] [WITH READ ONLY] - FORCE : 기본테이블유무에관계없이 VIEW 를생성 - WITH CHECK OPTION : VIEW 에의해엑세스될수있는행만이입력되거나변경될수있음을지정 - WITH READ ONLY : SELECT 만가능한 VIEW 의생성 - 함수를사용한컬럼은반드시 ALIAS 를지정 SQL> CREATE OR REPLACE VIEW Name_Query AS SELECT a.ename, b.dname FROM emp a, dept b WHERE a.deptno = b.deptno AND b.deptno = 20 이렇게뷰를생성해놓고뷰를통해검색 SQL>SELECT * FROM Name_Query; ENAME DNAME SMITH RESEARCH JONES RESEARCH

64 8. 오라클객체 - VIEW 테이블 64 WITH CHECK OPTION view 의조건식을만족하는데이터만 INSERT 또는 UPDATE 가가능하도록하는옵션 SQL> CREATE OR REPLACE VIEW Check_Option AS SELECT empno, ename, deptno FROM emp WHERE deptno = 10 WITH CHECK OPTION SQL> INSERT INTO Check_Option(empno, ename, deptno) VALUES (10005, 'jain', 30); INSERT INTO Check_Option(empno, ename, deptno) * 1 행에오류 : ORA-01402: 뷰의 WITH CHECK OPTION 의조건에위배부서번호가 10 인사원만 INSERT, UPDATE WITH READ ONLY SELECT 만가능한 VIEW 를생성 SQL> CREATE OR REPLACE VIEW Read_Only AS SELECT empno, ename, deptno FROM emp WHERE deptno = 10 WITH READ ONLY view created. 단순히읽기만할수있고데이터는입력은할수없음 뷰의정보조회 : USER_VIEWS 데이터사전을통해서뷰에대한정보를조회할수있다. SQL>SELECT view_name, text FROM USER_VIEWS; 뷰의삭제 SQL>DROP VIEW Read_Only; view dropped.

65 8. 오라클객체 - SEQUENCE( 시퀀스 ) 65 시퀀스란? 유일 (UNIQUE) 한값을생성해주는오라클객체 시퀀스를생성하면기본키와같이순차적으로증가하는컬럼을자동적으로생성 보통 primary key 값을생성하기위해사용 메모리에 Cache 되었을때 Sequence 값의액세스효율이증가 Sequence 는테이블과독립적으로저장되고생성. 따라서하나의 sequence 를여러테이블에서쓸수있다. 시퀀스생성문법 CREATE SEQUENCE sequence_name [START WITH n] [INCREMENT BY n] [MAXVALUE n NOMAXVALUE] [MINVALUE n NOMINVALUE] [CYCLE NOCYCLE] START WITH : 시퀀스의시작값을지정합니다. n 을 1 로지정하면 1 부터순차적으로시퀀스번호가증가 INCREMENT BY : 시퀀스의증가값을말합니다. n 을 2 로하면 2 씩증가 START WITH 를 1 로하고 INCREMENT BY 를 2 으로하면 1, 3,5,7,.. 이렇게시퀀스번호가증가 MAXVALUE n NOMAXVALUE : MAXVALUE 는시퀀스가증가할수있는최대값 NOMAXVALUE 는시퀀스의값을무한대로지정 MINVALUE n NOMINVALUE : MINVALUE 는시퀀스의최소값을지정기본값은 1 이며, NOMINVALUE 를지정할경우최소값은무한대

66 8. 오라클객체 - SEQUENCE( 시퀀스 ) 66 SQL>CREATE SEQUENCE emp_seq START WITH 1 INCREMENT BY 1 MAXVALUE ; è 시작값이 1 일고 1 씩증가하고, 최대값이 만이되는시퀀스를생성 SQL>INSERT INTO emp(empno, ename, hiredate ) VALUES(emp_seq.NEXTVAL, 'julia', sysdate); è empno 는컬럼값을입력할때일일이다음값을기억하지않아도 NEXTVAL 을사용하여자동으로입력할수있다. - CURRVAL : 현재값을반환 - NEXTVAL : 현재시퀀스값의다음값을반환 SQL>SELECT emp_seq.currval FROM DUAL ; SQL>SELECT emp_seq.nextval FROM DUAL ; CURRVAL NEXTVAL 시퀀스사용규칙 NEXTVAL, CURRVAL을사용할수있는경우 - subquery가아닌 select문 - insert문의 select절 - insert문의 value절 - update문의 set절 NEXTVAL, CURRVAL 을사용할수없는경우 - view 의 select 절 - distinct 키워드가있는 select 문 - group by, having, order by 절이있는 select 문 - select, delete, update 의 subquery - create table, alter table 명령의 default 값

67 8. 오라클객체 - SEQUENCE( 시퀀스 ) 67 시퀀스의수정및삭제 ALTER SEQUENCE sequence_name [INCREMENT BY n] [MAXVALUE n NOMAXVALUE] [MINVALUE n NOMINVALUE] [CYCLE NOCYCLE] START WITH 는수정할수없습니다. START WITH 절이없다는점을빼고는 CREATE SEQUENCE 와같다. SQL>ALTER SEQUENCE emp_seq INCREMENT BY 2 CYCLE; è2 씩증가하고, 최대값을넘으면다시처음부터순환하도록수정 DROP 문으로필요하지않은시퀀스는삭제할수있음 SQL>DROP SEQUENCE PRD_SEQ; sequence dropped.

68 8. 오라클객체 - SYNONYM( 동의어 ) 68 시노님이란? 시노님 : 오라클객체 ( 테이블, 뷰, 시퀀스, 프로시저 ) 에대한대체이름 (Alias) Synonym 은실질적으로그자체가 Object 가아니라 Object 에대한직접적인참조 시노님을사용하는이유 1 데이터베이스의투명성을제공시노님은다른유저의객체를참조할때많이사용함. 2 만약에다른유저의객체를참조할경우가있을때시노님을생성해서사용을하면은추후에참조하고있는오프젝트가이름을바꾸거나이동할경우객체를사용하는 SQL 문을모두다시고치는것이아니라시노님만다시정의하면되기때문에매우편리하다. 3 객체의긴이름을사용하기편한짧은이름으로해서 SQL 코딩을단순화 4 또한객체를참조하는사용자의오브젝트를감추수있기때문에이에대한보안을유지시노님을사용하는유저는참조하고있는객체를에대한사용자의 object 의소유자, 이름, 서버이름을모르고시노님이름만알아도사용할수있다. 시노님을사용하는이유 오브젝트의실제이름과소유자그리고위치를감춤으로써 database 보안을개선하는데사용 Object 에의 Public Access 를제공 Remote Database 의 Table, View, Program Unit 를위해투명성을제공 Database 사용자를위해 SQL 문을단순화

69 8. 오라클객체 - SYNONYM( 동의어 ) 69 시노님의종류 1 Private Synonym : 전용시노님은특정사용자만이용 2 Public Synonym : 공용시노님은공용사용자그룹이소유하며그 Database 에있는모든사용자가공유 시노님생성문법 CREATE [PUBLIC] SYSNONYM sysnonym_name FOR object_name scott USER 의 emp 테이블을 test USER 가사용하는예제. 1. 먼저 scott/tiger USER 로접속해서 test USER 에게 emp 테이블을조작할권한부여 SQL>GRANT ALL ON emp TO test; è test user 에대하여 scott 의 emp 테이블을조작할수있는권한부여 2. test USER 로접속해동의어생성 SQL> connect test/test SQL> CREATE SYNONYM scott_emp FOR scott.emp ; è scott USER 가소유하고있는 emp 테이블에대해 scott_emp 라는일반시노님생성 scott 사용자의 emp 테이블을 test 사용자가 scitt_emp 라는동의어로사용 -- 시노님을이용한쿼리 -- 일반테이블을쿼리 SQL> SELECT empno, ename FROM scott_emp; SQL> SELECT empno, ename FROM scott.emp; è 이두쿼리의결과같다. 동의어삭제 è SQL> DROP SYNONYM scott_emp

70 9. ORACLE 사용자의생성과권한의설정 - 오라클을설치하면기본적으로생성되는유저 70 오라클을설치하면아래의유저를포함한여러유저들이기본적으로생성 유저명 SYS SYSTEM SCOTT 비밀번호 CHANGE_ON_INSTALL MANAGER TIGER SYS - 데이터베이스의모든기본테이블과뷰는 SYS 스키마에저장 - 기본테이블과뷰는 oracle 을운영하는데꼭필요 - SYS 스키마의테이블은 data dictionary 의무결성유지관리를위해 oracle 에의해처리 - 대부분의 database 사용자는 SYS 계정으로접속하지말아야함 SYSTEM - 관리정보를화면으로보여주는추가테이블과뷰, 오라클도구가사용하는내부테이블과뷰를만들수있다. - SYSTEM 유저는모든시스템권한을가지고있다. 참고 - SYS 와 SYSTEM 은사용자를만들거나데이터베이스를관리할수있는권한 (DBA) 을가진다. ( 막강한어드민유저 ) - SYS 나 SYSTEM 유저에테이블을생성하거나, 일반데이터들을 Insert 하는방법은아주좋지않은방법 SYS 나 SYSTEM 유저는데이터베이스를관리하기위해서만사용되어야함. SCOTT - SCOTT 유저는일반사용자로오라클의기본적인 SQL 문을테스트를하기위한테이블과데이터들이있다.

71 9. ORACLE 사용자의생성과권한의설정 - 사용자의생성 71 사용자생성문법 CREATE USER user_name IDENTIFIED [BY password EXTERNALLY ] [ DEFAULT TABLESPACE tablespace ] [ TEMPORARY TABLESPACE tablespace ] [ QUOTA { integer [ K M ] UNLIMITIED } ON tablespace] [ PASSWORD EXPIRE ] [ ACCOUNT { LOCK UNLOCK } ] [ PROFILE { profile DEFAULT } ] - user_name : 생성될사용자이름 - BY password : 사용자가데이터베이스에의해인증되도록지정하며, 데이터베이스유저로그온시사용하는비밀번호 - EXTERNALLY : 사용자가운영체제에의해서인증되도록지정 - DEFAULT TABLESPACE 는사용자스키마를위한기본테이블스페이스지정 - TEMPORARY TABLESPACE 는사용자의임시테이블스페이스지정 - QUOTA 절을사용하여사용자가사용할테이블스페이스의영역할당 - PASSWORD EXPIRE : 사용자가 SQL*PLUS 를사용하여데이터베이스에로그인할때암호를재설정 ( 사용자가데이터베이스에의해인증될경우에만적합한옵션 ) - ACCOUNT LOCK/UNLOCK : 사용자계정을명시적으로잠그거나풀때사용할수있다.(UNLOCK 이기본값 ) - PROFILE: 자원사용을제어하고사용자에게사용되는암호제어처리방식을지정하는데사용

72 9. ORACLE 사용자의생성과권한의설정 - 사용자의생성 72 새로운 USER 를생성하기위해서는 CREATE USER 문을이용 USER 를생성하기위해서는 USER 생성권한이있는사용자로접속 아래는유저를생성하는아주간단한예제 SQL PLUS 를실행시키고 SCOTT/TIGER 로접속 SQL>CREATE USER TEST IDENTIFIED BY TEST; 1 행에오류 : ORA-01031: 권한이불충분 SCOTT USER 는사용자생성권한이없어서사용자를생성할수없다. 위의유저생성예제는테이블스페이스를지정하지않음. 아래 [ 참고 ] 의내용은유저를생성할때테이블스페이스를지정해주지않을경우의문제 SQL>CONN SYSTEM/MANAGER -- DBA Role 이있는유저로접속 SQL>CREATE USER TEST IDENTIFIED BY TEST; 사용자가생성 -- USER 를다시생성 참고 - 임시테이블스페이스를지정해주지않으면시스템테이블스페이스가기본으로지정되지만시스템테이블스페이스에단편화가발생할수있으므로사용자를생성할때임시테이블스페이스를따로지정해주는것이좋음. - 또한 DEFAULT TABLESPACE 도사용자를생성할때지정해주지않으면기본적으로시스템테이블스페이스가지정이된다. 하지만사용자를생성할때 DEFAULT TABLESPACE 를지정을해서사용자가소유한데이터와객체들의저장공간을별도로관리를해야함. 시스템테이블스페이스는본래의목적 ( 모든데이터사전정보와, 저장프로시저, 패키지, 데이터베이스트리거등을저장 ) 을위해서만사용되어져야하지일반사용자의데이터저장용으로사용되어서는안됨.

73 9. ORACLE 사용자의생성과권한의설정 - 사용자의생성 73 새로생성한 USER 로접속 SQL> CONN TEST/TEST ERROR: ORA-01045: 사용자 TEST 는 CREATE SESSION 권한을가지고있지않음 ; 로그온이안됨 - 새로생성한 TEST USER 는권한이없어서접근할수없음. - 모든 USER 는권한이있고권한에해당하는역할 - TEST 라는 USER 를사용하기위해서도권한을부여해주어야함 SQL> CONN SYSTEM/MANAGER 연결 SQL> GRANT connect, resource TO TEST ; 권한이부여 SQL> CONN TEST/TEST 연결 권한에대한자세한내용은권한설정강좌참고. 참고테이블스페이스란? - 오라클서버가테이터를저장하는논리적인구조 - 테이블스페이스는하나또는여러개의데이터파일로구성되는논리적인데이터저장구조

74 9. ORACLE 사용자의생성과권한의설정 - 사용자의변경및삭제 74 USER 변경하기위해서는 ALTER USER 문사용 ALTER USER문으로변경가능한옵션 - 비밀번호 - 운영체제인증 - 디폴트테이블스페이스 - 임시테이블스페이스 - 테이블스페이스분배할당 - 프로파일및디폴트역할 사용자수정문법 ALTER USER user_name [ IDENTIFIED {BY password EXTERNALLY } ] [ DEFAULT TABLESPACE tablespace ] [ TEMPORARY TABLESPACE tablespace ] [ PASSWORD EXPIRE ] [ ACCOUNT { LOCK UNLOCK } ] User 의 Password 수정예제 SQL>CONN SYSTEM/MANAGER SQL>ALTER USER scott IDENTIFIED BY lion; -- SYSTEM USER 로접속 -- scott USER 의비밀번호를 lion 으로수정 SQL>conn scott/lion -- scott USER 의비밀번호가수정된것을확인 SQL>conn system/manager SQL>ALTER USER scott IDENTIFIED BY tiger; -- scott USER 의비밀번호를처음처럼수정

75 9. ORACLE 사용자의생성과권한의설정 - 사용자의변경및삭제 75 사용자삭제문법 DROP USER user_name [CASCADE] SQL>DROP USER scott; -- scott 유저를삭제하는예제 SQL>DROP USER scott CASCADE; -- scott 유저가객체를소유하고있을경우에는 CASCADE옵션을추가해서삭제 CASCADE 를사용하게되면사용자이름과관련된모든데이터베이스스키마가데이터사전으로부터삭제되며모든스키마객체들또한물리적으로삭제 데이터베이스에등록된사용자정보의확인 데이터베이스에등록된사용자를조회하기위해서는 DBA_USERS 라는데이터사전을조회 SQL*Plus 를실행시켜 system/manager 로접속 SQL>SELECT username, default_tablespace, temporary_tablespace FROM ALL_USERS; USERNAME DEFAULT_TABLESPACE TEMPORARY_TABLES SYS SYSTEM TEMP SYSTEM TOOLS TEMP CTXSYS DRSYS DRSYS SCOTT SYSTEM SYSTEM STORM STORM STORMTEMP... 위와같이유저와테이블스페이스에대한정보가화면에나옴

76 9. ORACLE 사용자의생성과권한의설정 - 권한 (Privileges) 과롤 (Role) 76 권한이란? 오라클에서권한 (Privilege) 은특정타입의 SQL 문을실행하거나데이터베이스나데이터베이스객체에접근할수있는권리 시스템권한 (System Privileges) 시스템권한 - 시스템권한은사용자가데이터베이스에서특정작업을수행할수있도록함 - 약 126 개의시스템권한이있으며그수는계속증가 - 권한의 ANY 키워드는사용자가모든스키마에서권한을가짐을의미 - GRANT 명령은사용자또는 Role 에대해서권한부여 - REVOKE 명령은권한삭제 시스템권한의종류몇가지 - CREATE SESSION : 데이터베이스를연결할수있는권한 - CREATE ROLE : 오라클데이터베이스역할을생성할수있는권한 - CREATE VIEW : 뷰의생성권한 - ALTER USER : 생성한사용자의정의를변경할수있는권한 - DROP USER : 생성한사용자를삭제시키는권한 시스템권한부여문법 GRANT [system_privilege role] TO [user role PUBLIC] [WITH ADMIN OPTION]

77 9. ORACLE 사용자의생성과권한의설정 - 권한 (Privileges) 과롤 (Role) [ 문법설명 ] - system_privilege : 부여할시스템권한의이름 - role : 부여할데이터베이스역할의이름 - user, role : 부여할사용자이름과다른데이터베이스역할이름 - PUBLIC : 시스템권한, 또는데이터베이스역할을모든사용자에게부여할수있다. - WITH ADMIN OPTION : 권한을부여받은사용자도부여받은권한을다른사용자또는역할로부여할수있게되며, 만약사용자가 WITH ADMIN OPTION 과같이역할을부여받는다면부여된역할은그사용자에의해변경또는삭제될수있다. 시스템권한부여예제 SQL>GRANT CREATE USER, ALTER USER, DROP USER TO scott WITH ADMIN OPTION. 권한부여 * 설명 : scott 사용자에게사용자를생성, 수정, 삭제할수있는권한을부여 scott 사용자도다른사용자에게그권한을부여 77 시스템권한박탈문법 REVOKE [system_privilege role] FROM [user role PUBLIC] SQL>REVOKE CREATE USER, ALTER USER, DROP USER FROM scott 권한회수 * 설명 : scott 사용자에게부여한생성, 수정, 삭제권한회수

78 9. ORACLE 사용자의생성과권한의설정 - 권한 (Privileges) 과롤 (Role) WITH ADMIN OPTION 을사용하여시스템권한취소 78 WITH ADMIN OPTION 을사용하여시스템권한을부여했어도시스템권한을취소할때는연쇄적으로취소되지않는다. 시나리오 1. DBA 가 STORM 에게 WITH ADMIN OPTION 을사용하여 CREATE TABLE 시스템권한부여 2. STORM 이테이블을생성 2. STORM 이 CREATE TABLE 시스템권한을 SCOTT 에게부여 3. SCOTT 가테이블을생성 4. DBA 가 STORM 에게부여한 CREATE TABLE 시스템권한취소 결과 - STORM 의테이블은여전히존재하지만새테이블을생성할수있는권한은없다. - SCOTT 는여전히테이블과새로운테이블을생성할수있는 CREATE TABLE 권한을가진다.

79 9. ORACLE 사용자의생성과권한의설정 - 권한 (Privileges) 과롤 (Role) 객체권한 (Object Privileges) Object Privileges( 객체권한 ) 객체권한은유저가소유하고있는특정한객체를다른사용자들이액세스하거나조작할수있게하기위하여생성 - 테이블이나뷰, 시퀀스, 프로시저, 함수, 또는패키지중지정된한오브젝트에특별한작업을수행할수있게함. - Object 소유자는다른사용자에게특정 Object Privileges 를부여 - PUBLIC 으로권한을부여하면회수할때도 PUBLIC 으로해야함. - 기본적으로유저가소유한오브젝트에대한모든권한은자동적으로획득 - WITH GRANT OPTION 옵션은롤에권한을부여할때는사용할수없다 Object 별부여할수있는권한 객체권한테이블 (Table) 뷰 (View) 시퀀스 (Sequence) 프로시져 (Procedure) ALTER DELETE EXECUTE INDEX INSERT REFERENCES SELECT UPDATE 79

80 9. ORACLE 사용자의생성과권한의설정 - 권한 (Privileges) 과롤 (Role) 80 객체권한부여문법 GRANT object_privilege [column] ON object TO {user[,user] role PUBLIC] [WITH GRANT OPTION] 이전페이지표에서맨왼쪽에있는 ALTER, DELETE, EXECUTE.. 등등은 object_privilege 란에오면되고, 맨윗줄에있는테이블, 뷰, 시퀀스, 프로시져등등은 ON 다음에있는 object 에입력하면된다. 문법설명 - object_privilege : 부여할객체권한의이름 - object : 객체명 - user, role : 부여할사용자이름과다른데이터베이스역할이름 - PUBLIC : 오브젝권한, 또는데이터베이스역할을모든사용자에게부여 - WITH GRANT OPTION : 권한을부여받은사용자도부여받은권한을다른사용자또는역할로부여할수있다. 객체권한부여예제 SQL>GRANT SELECT, INSERT ON emp TO scott WITH GRANT OPTION 권한부여 * 설명 : scott 사용자에게 emp 테이블을 SELECT, INSERT 할수있는권한부여 scott 사용자도다른사용자에게그권한을부여

81 9. ORACLE 사용자의생성과권한의설정 - 권한 (Privileges) 과롤 (Role) 81 객체권한회수문법 REVOKE {privilege[,privilege,..] ALL} ON object FROM {user[,user] role PUBLIC] [CASCADE CONSTRAINTS] 문법설명 - 객체권한의철회는그권한을부여한부여자만이수행 - CASCADE CONSTRAINTS : 이명령어의사용으로 REFERENCES 객체권한에서사용된참조무결성제한을같이삭제 - WITH GRANT OPTION 으로객체권한을부여한사용자의객체권한을철회하면, 권한을부여받은사용자가부여한객체권한또한같이철회되는종속철회가발생 객체권한회수예제 SQL>REVOKE SELECT, INSERT ON emp FROM scott * 설명 : scott 사용자에게부여한 emp 테이블에대한 SELECT, INSERT 권한이회수만약 scott 사용자가다른사용자에게 SELECT, INSERT 권한을부여했으면.. 그권한들도같이철회된다.

82 9. ORACLE 사용자의생성과권한의설정 - 권한 (Privileges) 과롤 (Role) WITH GRANT OPTION 을사용하여객체권한취소 WITH GRANT OPTION 을사용하여부여한객체권한을취소하면취소작업이연쇄적으로수행 WITH ADMIN OPTION 과비교 시나리오 82 WITH GRANT OPTON SCOTT STORM TEST 권한부여 SCOTT STORM TEST 1. SCOTT 가 STORM 에게 WITH GRANT OPTION 을사용하여 emp 테이블의 SELECT 권한을부여 2. STORM 이 emp 테이블의 SELECT 권한을 TEST 에게부여 3. SCOTT 가 STORM 에게부여한 emp 테이블의 SELECT 권한을취소 결과 SCOTT STORM TEST 권한취소 X 결과 - SCOTT 가 STORM 에게부여한 emp 테이블에대한 SELECT 권한을취소하면 STORM 이부여한 TEST 유저가 emp 테이블을 SELECT 할수있는권한도자동으로취소

83 9. ORACLE 사용자의생성과권한의설정 - 권한 (Privileges) 과롤 (Role) 롤 (Role) ROLE 이란사용자에게허가할수있는권한들의집합이라고할수있다. - ROLE 을이용하면권한부여와회수를쉽게할수있다. - ROLE 은 Create Role 권한을가진 User 에의해서생성 - 한사용자가여러개의 ROLL 을 ACCESS 할수있고, 여러사용자에게같은 ROLE 을부여할수있다. - 시스템권한을부여하고, 취소할때와동일한명령을사용하여사용자에게부여하고, 취소 - 사용자는 ROLE 에 ROLE 을부여 - 오라클데이터베이스를설치하면기본적으로 CONNECT, RESOURCE, DBA ROLE 이제공 아래의그림처럼 DBA 가유저들에게권한을부여할때일일이권한하나하나씩을지정을한다면몹시불편할것이다. DBA 가 USER 의역할에맞도록 Role 을생성하여서 Role 만유저에게지정을한다면보다효율적으로유저들의권한을관리할수있다. 83 권한 1 권한 2 권한 3 DBA 권한1 권한1 권한2 권한2 권한3 권한3 User1 User2 User3 DBA 권한1 권한2 권한3 Role Role Role Role User1 User2 User3 [ 일반적으로권한을부여하는방법 ] [ 롤을생성하여권한을부여하는방법 ]

84 9. ORACLE 사용자의생성과권한의설정 - 권한 (Privileges) 과롤 (Role) 84 롤의생성문법 CREATE ROLE role_name ROLE 의부여순서 1 ROLE 의생성 : CREATE ROLE manager 2 ROLE 에권한부여 : GRANT create session, create table TO manager 3 ROLE 을사용자또는 ROLE 에게부여 : GRANT manager TO scott, test; SQL> CREATE ROLE manager -- role 생성 SQL>GRANT create session, create table TO manager -- role 에권한부여 SQL>GRANT manager TO scott, test; -- 권한이부여된 role 을 user 나 role 에부여 롤관련데이터사전 Dictionary 뷰 ROLE_SYS_PRIVS ROLE_TAB_PRIVS USER_ROLE_PRIVS USER_TAB_PRIVS_MADE USER_TAB_PRIVS_RECD USER_COL_PRIVS_MADE USER_COL_PRIVS_RECD 테이블 (Table) Role에부여된시스템권한 Role에부여된테이블권한현재사용자가 ACCESS할수있는 ROLE 현재사용자의객체에부여한객체권한현재사용자의객체에부여된객체권한현재사용자객체의특정컬럼에부여한객체권한현재사용자객체의특정컬럼에부여된객체권한

85 9. ORACLE 사용자의생성과권한의설정 - 권한 (Privileges) 과롤 (Role) 85 오라클데이터베이스를생성하면기본적으로생성되는롤 (Role) 오라클데이터베이스를생성하면기본적으로몇가지의 Role 이생성 DBA_ROLES 데이터사전을통하여미리정의된 Role 을조회할수있다. SQL>SELECT * FROM DBA_ROLES; ROLE PASSWORD CONNECT NO RESOURCE NO DBA NO EXP_FULL_DATABASE NO... 이외에도많이 ROLE 이존재. 그중에서가장많이사용하는 3 가지만설명 DBA Role - 모든시스템권한이부여된 Role - DBA Role 은데이터베이스관리자에게만부여

86 9. ORACLE 사용자의생성과권한의설정 - 권한 (Privileges) 과롤 (Role) RESOURCE - Store Procedure 나 Trigger 와같은 PL/SQL 을사용할수있는권한들로이루어짐 - PL/SQL 을사용하려면 RESOURCE Role 을부여 - 유저를생성하면일반적으로 CONNECT, RESOURCE 롤을부여 SQL>SELECT grantee, privilege FROM DBA_SYS_PRIVS WHERE grantee = 'RESOURCE'; CONNECT - 오라클에접속할수있는세션생성및테이블을생성하거나조회할수있는가장일반적인권한들로이루어짐 - CONNECT Role 이없으면유저를생성하고서도 Oracle 에접속할수없음 - 아래의명령어로 CONNECT Role 이어떤권한으로이루어져있는지확인할수있음 SQL>SELECT grantee, privilege FROM DBA_SYS_PRIVS WHERE grantee = 'CONNECT'; GRANTEE PRIVILEGE CONNECT ALTER SESSION CONNECT CREATE CLUSTER CONNECT CREATE DATABASE LINK CONNECT CREATE SEQUENCE CONNECT CREATE SESSION. 86

1. SQL 문의종류 2 DDL (Data Definition Language) : 데이터와그구조를정의 SQL문 CREATE DROP ALTER 내용데이터베이스객체를생성데이터베이스객체를삭제기존에존재하는데이터베이스객체를다시정의하는역할 DML (Data Manipulati

1. SQL 문의종류 2 DDL (Data Definition Language) : 데이터와그구조를정의 SQL문 CREATE DROP ALTER 내용데이터베이스객체를생성데이터베이스객체를삭제기존에존재하는데이터베이스객체를다시정의하는역할 DML (Data Manipulati Oracle SQL 1 1. SQL 문의종류 2 DDL (Data Definition Language) : 데이터와그구조를정의 SQL문 CREATE DROP ALTER 내용데이터베이스객체를생성데이터베이스객체를삭제기존에존재하는데이터베이스객체를다시정의하는역할 DML (Data Manipulation Language) : 데이터의검색과수정등의처리 SQL 문 INSERT

More information

DBMS & SQL Server Installation Database Laboratory

DBMS & SQL Server Installation Database Laboratory DBMS & 조교 _ 최윤영 } 데이터베이스연구실 (1314 호 ) } 문의사항은 cyy@hallym.ac.kr } 과제제출은 dbcyy1@gmail.com } 수업공지사항및자료는모두홈페이지에서확인 } dblab.hallym.ac.kr } 홈페이지 ID: 학번 } 홈페이지 PW:s123 2 차례 } } 설치전점검사항 } 설치단계별설명 3 Hallym Univ.

More information

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r -------------------------------------------------------------------- -- 1. : ts_cre_bonsa.sql -- 2. :

More information

강의 개요

강의 개요 DDL TABLE 을만들자 웹데이터베이스 TABLE 자료가저장되는공간 문자자료의경우 DB 생성시지정한 Character Set 대로저장 Table 생성시 Table 의구조를결정짓는열속성지정 열 (Clumn, Attribute) 은이름과자료형을갖는다. 자료형 : http://dev.mysql.cm/dc/refman/5.1/en/data-types.html TABLE

More information

Microsoft Word - SQL튜닝_실습교재_.doc

Microsoft Word - SQL튜닝_실습교재_.doc * 실습환경 * 1. 오라클데이터베이스의튜닝실습을하기위해서는기본적인테이블과데이터가필요합니다. 다음과같은절차에의해환경설정을하십시오. 1) 강사가제공하는 Export 된파일 (scott.dmp) 을자신의 ORACLE 경로에저장하십시오. [C: ] cd C: ORACLE ORA92 BIN [C: ] dir scott.dmp scott.dmp 2) SYSTEM 사용자로접속하여

More information

<C1A62038B0AD20B0ADC0C7B3EBC6AE2E687770>

<C1A62038B0AD20B0ADC0C7B3EBC6AE2E687770> 제 8강 SQL: 관계데이터베이스언어 강의목표 관계데이타베이스언어로서상용 DBMS에서가장널리사용되는 SQL의동작원리에관하여학습하고, 이를이용하여다양한질의문을작성하는방법을습득한다 기대효과 SQL의데이터정의기능을이해한다 SQL의데이터조작기능중질의기능을이해한다 SQL의데이터조작기능중데이터갱신기능을이해한다 SQL의데이터조작기능중뷰및인덱스관련기능을이해한다 SQL 의개요

More information

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL 다양한예제로쉽게배우는 오라클 SQL 과 PL/SQL 서진수저 9 장인덱스를배웁니다 1 1. 인덱스란무엇인가? 2 - ROWID ( 주소 ) 조회하기 SCOTT>SELECT ROWID, empno, ename 2 FROM emp 3 WHERE empno=7902 ; ROWID EMPNO ENAME --------------------------------- ----------

More information

단답형 (26 회기출문제 ) 1. 아래와같은테이블이있을때아래의 SQL 결과에대해서 Oracle, SQL Server 순서로적으시오 TAB1 COL1 CHAR(10) COL2 CHAR(10) INSERT INTO TAB1 VALUES ('1',''); INSERT INT

단답형 (26 회기출문제 ) 1. 아래와같은테이블이있을때아래의 SQL 결과에대해서 Oracle, SQL Server 순서로적으시오 TAB1 COL1 CHAR(10) COL2 CHAR(10) INSERT INTO TAB1 VALUES ('1',''); INSERT INT Study Room Doc.03 : SQLD 예상문제 ( 단답형 ) 네이버 Cafe : 데이터베이스전문가포럼 Study Room http://cafe.naver.com/sqlpd SQLD 26,25,24,21 회기출문제를바탕으로작성 작성자 : 월야루 도움 : 빙수민외카페댓글 2017-11-30 단답형 (26 회기출문제 ) 1. 아래와같은테이블이있을때아래의 SQL

More information

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL 다양한예제로쉽게배우는 오라클 SQL 과 PL/SQL 서진수저 4 장 JOIN 을배웁니다 1 2 1. Cartesian Product ( 카티션곱, CROSS Join) - Oracle Join 문법 SQL> SELECT e.ename, d.dname 2 FROM emp e, dept d ; - ANSI Join 문법 SQL> SELECT e.ename, d.dname

More information

PowerPoint Presentation

PowerPoint Presentation 6 장 SQL (section 4-6) 목차 SECTION 01 SQL 의개요 1-1 SQL의역사 1-2 SQL의유형별종류 SECTION 02 데이터정의어 (DDL) 2-1 스키마 2-2 테이블생성 (CREATE TABLE) 2-3 테이블변경 (ALTER TABLE) 2-4 테이블제거 (DROP TABLE) 2-5 제약조건 SECTION 03 데이터조작어 (DML)

More information

13주-14주proc.PDF

13주-14주proc.PDF 12 : Pro*C/C++ 1 2 Embeded SQL 3 PRO *C 31 C/C++ PRO *C NOT! NOT AND && AND OR OR EQUAL == = SQL,,, Embeded SQL SQL 32 Pro*C C SQL Pro*C C, C Pro*C, C C 321, C char : char[n] : n int, short, long : float

More information

6장. SQL

6장. SQL 학습목표 SQL이 무엇인지 개념을 설명 테이블을 생성, 변경, 제거할 할 수 있다. 수 있다. 데이터를 검색, 갱신, 삽입, 삭 제할 수 있다. 뷰, 시스템 카탈로그, 저장 프 로시저, 트리거에 대한 개념 을 설명할 수 있다. 2 목차 SECTION 01 SQL의 개요 11 SQL의 역사 12 SQL의 유형별 종류 SECTION 0 21 스키마 22 테이블

More information

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL 다양핚예제로쉽게배우는 오라클 SQL 과 PL/SQL 서진수저 10 장 view 를배웁니다 1 - View 란가상의테이블이다! 2 1. 단순 View (Simple View) SCOTT>CONN / AS SYSDBA; SYS>GRANT CREATE VIEW TO scott ; CREATE [OR REPLACE] [ FORCE NOFORCE] VIEW view

More information

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE ALTIBASE HDB 6.3.1.10.1 Patch Notes 목차 BUG-45710 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG-45730 ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG-45760 ROLLUP/CUBE 절을포함하는질의는 SUBQUERY REMOVAL 변환을수행하지않도록수정합니다....

More information

@OneToOne(cascade = = "addr_id") private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a

@OneToOne(cascade = = addr_id) private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a 1 대 1 단방향, 주테이블에외래키실습 http://ojcedu.com, http://ojc.asia STS -> Spring Stater Project name : onetoone-1 SQL : JPA, MySQL 선택 http://ojc.asia/bbs/board.php?bo_table=lecspring&wr_id=524 ( 마리아 DB 설치는위 URL

More information

객관식 1. 아래의쿼리를만족하는결과를가장잘설명한것은? SELECT A.* FROM HR.EMPLOYEES A, HR.EMPLOYEES B WHERE 1=1 AND A.MANAGER_ID = B.EMPLOYEE_ID AND B.SALARY >= ANY A.SALARY;

객관식 1. 아래의쿼리를만족하는결과를가장잘설명한것은? SELECT A.* FROM HR.EMPLOYEES A, HR.EMPLOYEES B WHERE 1=1 AND A.MANAGER_ID = B.EMPLOYEE_ID AND B.SALARY >= ANY A.SALARY; Study Room Doc.02 : SQLD 예상문제 네이버 Cafe : 데이터베이스전문가포럼 Study Room http://cafe.naver.com/sqlpd SQLD 21 회기출문제를바탕으로작성 작성자 : 월야루 2016-09-04 객관식 1. 아래의쿼리를만족하는결과를가장잘설명한것은? SELECT A.* FROM HR.EMPLOYEES A, HR.EMPLOYEES

More information

´ÙÁß Row °á°ú¸¦ ´ÜÀÏÇàÀ¸·Î Äĸ¶·Î ºÐ¸®ÇØ Ãâ·ÂÇÏ´Â ¹æ¹ý

´ÙÁß Row °á°ú¸¦ ´ÜÀÏÇàÀ¸·Î Äĸ¶·Î ºÐ¸®ÇØ Ãâ·ÂÇÏ´Â ¹æ¹ý 5 중 1 2007-06-12 오후 5:52 Home Login Register SQL Query SQL Tuning Oracle Administration Tools References Boards SoQooL? 쏘쿨 SoQooL) 이란? Q&A Tips Lectures Function Lectures Oracle Spatial Tips Scripts SQL

More information

MySQL-.. 1

MySQL-.. 1 MySQL- 기초 1 Jinseog Kim Dongguk University jinseog.kim@gmail.com 2017-08-25 Jinseog Kim Dongguk University jinseog.kim@gmail.com MySQL-기초 1 2017-08-25 1 / 18 SQL의 기초 SQL은 아래의 용도로 구성됨 데이터정의 언어(Data definition

More information

Microsoft PowerPoint - QVIZMVUMWURI.pptx

Microsoft PowerPoint - QVIZMVUMWURI.pptx 데이타베이스시스템 2011.03 충북대학교경영정보학과조완섭 (wscho@chungbuk.ac.kr) Chap. 4 SQL 질의어 C4 2 목차 - SQL2에서데이터정의, 제약조건및스키마변경 - SQL에서의기본질의 - 더복잡한 SQL 질의들 - SQL에서삽입, 삭제, 갱신구문 - SQL 뷰 - 주장으로추가적인제약조건명시 - SQL의부가적인기능들 Ch4 3 SQL

More information

ORACLE-SQL

ORACLE-SQL ORACLE-SQL SELECT 문 2014-04-12 Blog.ksh123jjang.me 내용 SELECT문이란?... 2 SLELECT문사용하기... 3 모든열선택... 4 특정열검색... 5 SQL문작성방법... 6 열머리글기본값... 7 산술식... 8 NULL... 9 열 alias... 10 연결연산자... 11 대체인용연산자 (q)... 12 중복행제거...

More information

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL 다양한예제로쉽게배우는 오라클 SQL 과 PL/SQL 서진수저 6 장. DML 을배웁니다 1 - SQL 명령어들 DML (Data Manipulation Language) : INSERT( 입력 ), UPDATE( 변경 ), DELETE( 삭제 ), MERGE( 병합 ) DDL (Data Definition Language) : CREATE ( 생성 ), ALTER

More information

Tablespace On-Offline 테이블스페이스 온라인/오프라인

Tablespace On-Offline 테이블스페이스 온라인/오프라인 2018/11/10 12:06 1/2 Tablespace On-Offline 테이블스페이스온라인 / 오프라인 목차 Tablespace On-Offline 테이블스페이스온라인 / 오프라인... 1 일반테이블스페이스 (TABLESPACE)... 1 일반테이블스페이스생성하기... 1 테이블스페이스조회하기... 1 테이블스페이스에데이터파일 (DATA FILE) 추가

More information

슬라이드 제목 없음

슬라이드 제목 없음 4.2 SQL 개요 SQL 개요 SQL은현재 DBMS 시장에서관계 DBMS가압도적인우위를차지하는데중요한요인의하나 SQL은 IBM 연구소에서 1974년에 System R이라는관계 DBMS 시제품을연구할때관계대수와관계해석을기반으로, 집단함수, 그룹화, 갱신연산등을추가하여개발된언어 1986년에 ANSI( 미국표준기구 ) 에서 SQL 표준을채택함으로써 SQL이널리사용되는데기여

More information

Microsoft PowerPoint - 10Àå.ppt

Microsoft PowerPoint - 10Àå.ppt 10 장. DB 서버구축및운영 DBMS 의개념과용어를익힌다. 간단한 SQL 문법을학습한다. MySQL 서버를설치 / 운영한다. 관련용어 데이터 : 자료 테이블 : 데이터를표형식으로표현 레코드 : 테이블의행 필드또는컬럼 : 테이블의열 필드명 : 각필드의이름 데이터타입 : 각필드에입력할값의형식 학번이름주소연락처 관련용어 DB : 테이블의집합 DBMS : DB 들을관리하는소프트웨어

More information

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL 다양한예제로쉽게배우는 오라클 SQL 과 PL/SQL 서진수저 3 장 SQL 복수행함수 ( 그룹함수 ) 를배웁니다 1 함수이름 의 미 사용예 COUNT 입력되는데이터들의건수를출력 COUNT(sal) SUM 입력되는데이터들의합계값을출력 SUM(sal) AVG 입력되는데이터들의평균값을출력 AVG(sal) MAX 입력되는데이터들중최고값을출력 MAX(sal) MIN

More information

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins Project 1-3: Implementing DML Due: 2015/11/11 (Wed), 11:59 PM 이번프로젝트의목표는프로젝트 1-1 및프로젝트 1-2에서구현한프로그램에기능을추가하여간단한 DML을처리할수있도록하는것이다. 구현한프로그램은 3개의 DML 구문 (insert, delete, select) 을처리할수있어야한다. 테이블데이터는파일에저장되어프로그램이종료되어도사라지지않아야한다.

More information

TITLE

TITLE CSED421 Database Systems Lab MySQL Basic Syntax SQL DML & DDL Data Manipulation Language SELECT UPDATE DELETE INSERT INTO Data Definition Language CREATE DATABASE ALTER DATABASE CREATE TABLE ALTER TABLE

More information

FlashBackt.ppt

FlashBackt.ppt 1. Flashback 목적 Flashback 이란? 사용자실수에의한손상된데이터를 Database 의크기와상관없이복구를할수있는기능이다. 이 Flashback 기능은일반적인복구에서우려되는데이터베이스의크기를걱정하지않아도된다. 보통의사용자실수는커다란시스템장애가수반되며, 이를복구하기위해서는많은자원과시간이필요하다. 하지만 9i 에서지원되느 flashback query

More information

WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역

WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역 WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역시쉽게해결할수있다. 이번화이트페이퍼에서는 Window Function 중순위 RANK, ROW_NUMBER,

More information

,, - - - : DELETE : ROW (ROWID) row ROWID : I/O Full Table Scan scan I/O scan Index Scan ROWID scan I/O Fast Full Index Scan scan scan I/O Unique, nonunique. (Concatenated Index) B* Tree Bitmap Reverse

More information

PostgreSQL 2 Uniersity of California at Berkeley ( ) 에서개발된관계형데이터베이스서버인 Ingres 가시초 ( 후에 Computer Associates 에인수됨 ) 1

PostgreSQL 2  Uniersity of California at Berkeley ( ) 에서개발된관계형데이터베이스서버인 Ingres 가시초 ( 후에 Computer Associates 에인수됨 ) 1 ERwin 과 PostgreSQL 연동하기 인하대학교지리정보공학과데이터베이스실습 PostgreSQL 2 http://www.postgresql.org/ Uniersity of California at Berkeley (1977-1985) 에서개발된관계형데이터베이스서버인 Ingres 가시초 ( 후에 Computer Associates 에인수됨 ) 1996 년부터

More information

5장 SQL 언어 Part II

5장 SQL 언어 Part II 5 장 SQL 언어 Part II 박창이 서울시립대학교통계학과 박창이 ( 서울시립대학교통계학과 ) 5 장 SQL 언어 Part II 1 / 26 데이터조작문 데이터검색 : SELECT 문데이터추가 : INSERT 문데이터수정 : UPDATE 문데이터삭제 : DELETE 문 박창이 ( 서울시립대학교통계학과 ) 5 장 SQL 언어 Part II 2 / 26 SELECT

More information

MS-SQL SERVER 대비 기능

MS-SQL SERVER 대비 기능 Business! ORACLE MS - SQL ORACLE MS - SQL Clustering A-Z A-F G-L M-R S-Z T-Z Microsoft EE : Works for benchmarks only CREATE VIEW Customers AS SELECT * FROM Server1.TableOwner.Customers_33 UNION ALL SELECT

More information

Jerry Held

Jerry Held ,, - - - : DELETE : ROW (ROWID) row ROWID : I/O Full Table Scan I/O Index Scan ROWID I/O Fast Full Index Scan scan scan scan I/O scan scan Unique, nonunique. (Concatenated Index) B* Tree Bitmap Reverse

More information

목 차

목      차 Oracle 9i Admim 1. Oracle RDBMS 1.1 (System Global Area:SGA) 1.1.1 (Shared Pool) 1.1.2 (Database Buffer Cache) 1.1.3 (Redo Log Buffer) 1.1.4 Java Pool Large Pool 1.2 Program Global Area (PGA) 1.3 Oracle

More information

SQL Tuning Business Development DB

SQL Tuning Business Development DB SQL Tuning Business Development DB Oracle Optimizer 4.1 Optimizer SQL SQL.. SQL Optimizer :.. Rule-Based Optimization (RBO), Cost-Based Optimization (CBO) SQL Optimizer SQL Query Parser Dictionary Rule-Based

More information

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4 ALTIBASE HDB 6.5.1.5.10 Patch Notes 목차 BUG-46183 DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG-46249 [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4 BUG-46266 [sm]

More information

PowerPoint Presentation

PowerPoint Presentation 6 장 SQL 목차 SECTION 01 SQL 의개요 1-1 SQL의역사 1-2 SQL의유형별종류 SECTION 02 데이터정의어 (DDL) 2-1 스키마 2-2 테이블생성 (CREATE TABLE) 2-3 테이블변경 (ALTER TABLE) 2-4 테이블제거 (DROP TABLE) SECTION 03 데이터조작어 (DML) 3-1 데이터검색 (SELECT)

More information

문서 템플릿

문서 템플릿 HDSI 툴분석 [sql injection 기술명세서 ] Sql injection 기술명세서 Ver. 0.01 이문서는 sql injection 기술명세가범위입니다. Copyrights Copyright 2009 by CanvasTeam@SpeeDroot( 장경칩 ) All Rights Reserved. 장경칩의사전승인없이본내용의전부또는일부에대한복사, 전재,

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 MySQL - 명령어 1. 데이터베이스관련명령 2. 데이터베이스테이블관련명령 3. SQL 명령의일괄실행 4. 레코드관련명령 5. 데이터베이스백업및복원명령 1. 데이터베이스관련명령 데이터베이스접속명령 데이터베이스접속명령 mysql -u계정 -p비밀번호데이터베이스명 C: > mysql -ukdhong p1234 kdhong_db 데이터베이스생성명령 데이터베이스생성명령

More information

슬라이드 제목 없음

슬라이드 제목 없음 뷰와시스템카탈로그 관계데이터베이스시스템의뷰 (view) 는다른릴레이션으로부터유도된릴레이션 (derived relation) 으로서 ANSI/SPARC 3단계아키텍처의외부뷰와다름 뷰는관계데이터베이스시스템에서데이터베이스의보안메카니즘으로서, 복잡한질의를간단하게표현하는수단으로서, 데이터독립성을높이기위해서사용됨 시스템카탈로그는시스템내의객체 ( 기본릴레이션, 뷰, 인덱스,

More information

Microsoft PowerPoint - Oracle Data Access Pattern.ppt

Microsoft PowerPoint - Oracle Data Access Pattern.ppt Special Key Note Oracle Data Access Pattern ( 주 ) 오픈메이드컨설팅 오동규수석컨설턴트 1 What is Data Access Pattern? > 데이터를 I/O 하는방식 Index Scan Full Table Scan Rowid 2 Why is The Pattern Important? >SQL 의성능을좌지우지함. >SQL

More information

untitled

untitled (shared) (integrated) (stored) (operational) (data) : (DBMS) :, (database) :DBMS File & Database - : - : ( : ) - : - : - :, - DB - - -DBMScatalog meta-data -DBMS -DBMS - -DBMS concurrency control E-R,

More information

Microsoft PowerPoint - ch07_데이터베이스 언어 SQL.pptx

Microsoft PowerPoint - ch07_데이터베이스 언어 SQL.pptx 05-01 SQL의소개 SQL을이용한데이터정의 SQL을이용한데이터조작 뷰 삽입 SQL 학습목표 SQL의역할을이해하고, 이를기능별로분류해본다. SQL의데이터정의기능을예제를통해익힌다. SQL의데이터조작기능을예제를통해익힌다. 뷰의개념과장점을이해한다. 삽입 SQL의역할을이해한다. 2 01 SQL 의소개 SQL (Structured Query Language) 의미

More information

빅데이터분산컴퓨팅-5-수정

빅데이터분산컴퓨팅-5-수정 Apache Hive 빅데이터분산컴퓨팅 박영택 Apache Hive 개요 Apache Hive 는 MapReduce 기반의 High-level abstraction HiveQL은 SQL-like 언어를사용 Hadoop 클러스터에서 MapReduce 잡을생성함 Facebook 에서데이터웨어하우스를위해개발되었음 현재는오픈소스인 Apache 프로젝트 Hive 유저를위한

More information

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O Orange for ORACLE V4.0 Installation Guide ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE...1 1....2 1.1...2 1.2...2 1.2.1...2 1.2.2 (Online Upgrade)...11 1.3 ORANGE CONFIGURATION ADMIN...12 1.3.1 Orange Configuration

More information

10.ppt

10.ppt : SQL. SQL Plus. JDBC. SQL >> SQL create table : CREATE TABLE ( ( ), ( ),.. ) SQL >> SQL create table : id username dept birth email id username dept birth email CREATE TABLE member ( id NUMBER NOT NULL

More information

<4D F736F F D203033C6C4C6BCBCC72DB8AEBFC0B1D7B9E6B9FD2E646F63>

<4D F736F F D203033C6C4C6BCBCC72DB8AEBFC0B1D7B9E6B9FD2E646F63> Reviewed by Oracle Certified Master Korea Community ( http:www.ocmkorea.com http:cafe.daum.netoraclemanager ) 1.1.1 파티션테이블에서사용할수있는리오그방법파티션 level 의 importexport 방법을이용해파티션테이블중특정파티션 ( 혹은서브파티션 ) 만을선택적으로리오그할수있다.

More information

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

Microsoft PowerPoint - Oracle Data Join Method.pptx [읽기 전용]

Microsoft PowerPoint - Oracle Data Join Method.pptx [읽기 전용] Special Key Note Oracle Data Join Method ( 주 ) 오픈메이드컨설팅 오동규수석컨설턴트 1 What is Join? JOIN is Multiply. 2 Why is the Join Method so important? 잘못사용하면큰재앙이따른다.( 위의그림처럼 ) 두개의집합을연결할수있는유일한수단. Join Method 는모든 DBMS

More information

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770> 연습문제해답 5 4 3 2 1 0 함수의반환값 =15 5 4 3 2 1 0 함수의반환값 =95 10 7 4 1-2 함수의반환값 =3 1 2 3 4 5 연습문제해답 1. C 언어에서의배열에대하여다음중맞는것은? (1) 3차원이상의배열은불가능하다. (2) 배열의이름은포인터와같은역할을한다. (3) 배열의인덱스는 1에서부터시작한다. (4) 선언한다음, 실행도중에배열의크기를변경하는것이가능하다.

More information

ALTIBASE HDB Patch Notes

ALTIBASE HDB Patch Notes ALTIBASE HDB 6.5.1.5.6 Patch Notes 목차 BUG-45643 암호화컬럼의경우, 이중화환경에서 DDL 수행시 Replication HandShake 가실패하는문제가있어수정하였습니다... 4 BUG-45652 이중화에서 Active Server 와 Standby Server 의 List Partition 테이블의범위조건이다른경우에 Handshake

More information

CH04) 쿼리 (Query) 데이터베이스일반 1- 쿼리 (Query) 1) 쿼리의개념 테이블의데이터에서사용자가원하는조건에의해필드를추출하거나레코드를추출할수있는개체로즉, 여러가지방법으로데이터를보고, 변경하고, 분석할수있음 쿼리를폼, 보고서, 데이터액세스페이지등의레코드원본

CH04) 쿼리 (Query) 데이터베이스일반 1- 쿼리 (Query) 1) 쿼리의개념 테이블의데이터에서사용자가원하는조건에의해필드를추출하거나레코드를추출할수있는개체로즉, 여러가지방법으로데이터를보고, 변경하고, 분석할수있음 쿼리를폼, 보고서, 데이터액세스페이지등의레코드원본 1- 쿼리 (Query) 1) 쿼리의개념 테이블의데이터에서사용자가원하는조건에의해필드를추출하거나레코드를추출할수있는개체로즉, 여러가지방법으로데이터를보고, 변경하고, 분석할수있음 쿼리를폼, 보고서, 데이터액세스페이지등의레코드원본으로사용할수도있음 여러개의테이블에서서로유기적인관계를설정하여하나의테이블에서작업하는것처럼작업이가능 2- 쿼리 (Query) 종류 1) 선택쿼리가장일반적인방법형태의쿼리

More information

Microsoft Word - [Unioneinc] 특정컬럼의 통계정보 갱신_ _ldh.doc

Microsoft Word - [Unioneinc] 특정컬럼의 통계정보 갱신_ _ldh.doc 특정 Column 통계정보갱신가이드 유니원아이앤씨 DB 사업부이대혁 2015 년 03 월 02 일 문서정보프로젝트명서브시스템명 버전 1.0 문서명 특정 Column 통계정보갱신가이드 작성일 2015-03-02 작성자 DB사업부이대혁사원 최종수정일 2015-03-02 문서번호 UNIONE-201503021500-LDH 재개정이력 일자내용수정인버전 문서배포이력

More information

Result Cache 동작원리및활용방안 엑셈컨설팅본부 /DB 컨설팅팀김철환 개요 ORACLE DBMS 를사용하는시스템에서 QUERY 성능은무엇보다중요한요소중하나이며그 성능과직접적인관련이있는것이 I/O 이다. 많은건수를 ACCESS 해야만원하는결과값을얻을수있는 QUER

Result Cache 동작원리및활용방안 엑셈컨설팅본부 /DB 컨설팅팀김철환 개요 ORACLE DBMS 를사용하는시스템에서 QUERY 성능은무엇보다중요한요소중하나이며그 성능과직접적인관련이있는것이 I/O 이다. 많은건수를 ACCESS 해야만원하는결과값을얻을수있는 QUER Result Cache 동작원리및활용방안 엑셈컨설팅본부 /DB 컨설팅팀김철환 개요 ORACLE DBMS 를사용하는시스템에서 QUERY 성능은무엇보다중요한요소중하나이며그 성능과직접적인관련이있는것이 I/O 이다. 많은건수를 ACCESS 해야만원하는결과값을얻을수있는 QUERY 을실행하게된다면 BLOCK I/O 가많이발생하게된다. 이런이유로 QUERY 의성능은좋지못할것이다.

More information

Visual Basic 반복문

Visual Basic 반복문 학습목표 반복문 For Next문, For Each Next문 Do Loop문, While End While문 구구단작성기로익히는반복문 2 5.1 반복문 5.2 구구단작성기로익히는반복문 3 반복문 주어진조건이만족하는동안또는주어진조건이만족할때까지일정구간의실행문을반복하기위해사용 For Next For Each Next Do Loop While Wend 4 For

More information

chap 5: Trees

chap 5: Trees 5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경

More information

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자 SQL Developer Connect to TimesTen 유니원아이앤씨 DB 팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 2010-07-28 작성자 김학준 최종수정일 2010-07-28 문서번호 20100728_01_khj 재개정이력 일자내용수정인버전

More information

슬라이드 제목 없음

슬라이드 제목 없음 MS SQL Server 마이크로소프트사가윈도우운영체제를기반으로개발한관계 DBMS 모바일장치에서엔터프라이즈데이터시스템에이르는다양한플랫폼에서운영되는통합데이터관리및분석솔루션 2 MS SQL Server 개요 3.1 MS SQL Server 개요 클라이언트-서버모델을기반으로하는관계 DBMS 로서윈도우계열의운영체제에서만동작함 오라클관계 DBMS 보다가격이매우저렴한편이고,

More information

강의 개요

강의 개요 정규화와 SELECT (II) 웹데이터베이스 학과 학생 과목 학과 지도교수 학과학번성명 수강과목 담당교수 A 김수정 A 0001 고길동 성질이론 김수정 B 허영만 A 0002 둘리 한식의멋 허영만 C 강풀 B 0003 희동이 심리학의이해 강풀 과목 _ 성적 학번 수강과목 성적 0001 성질이론 A 0001 한식의멋 C 0002 성질이론 A 0002 한식의멋

More information

SQL

SQL 데이터베이스및 SQL 언어의기초 박창이 서울시립대학교통계학과 박창이 ( 서울시립대학교통계학과 ) 데이터베이스및 SQL 언어의기초 1 / 36 Part I 데이터베이스 박창이 ( 서울시립대학교통계학과 ) 데이터베이스및 SQL 언어의기초 2 / 36 데이터의구성및표현 개체 (entity): DB가표현하려는유형 / 무형적정보의대상속성 (attribute): 개체가갖는특성도메인

More information

PowerPoint Presentation

PowerPoint Presentation MySQL 한번에끝내기 목차 1. MySQL 소개 2. MySQL 설치 3. SQL 기본 4. SQL 고급 MySQL 한번에끝내기 3 1. MySQL 소개 MySQL 소개 MySQL 은가장널리사용되고있는관계형데이터베이스관리시스템 (RDBMS: Relational DBMS) MySQL 은오픈소스이며, 다중사용자와다중스레드를지원 C 언어, C++, JAVA, PHP

More information

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt 변수와상수 1 변수란무엇인가? 변수 : 정보 (data) 를저장하는컴퓨터내의특정위치 ( 임시저장공간 ) 메모리, register 메모리주소 101 번지 102 번지 변수의크기에따라 주로 byte 단위 메모리 2 기본적인변수형및변수의크기 변수의크기 해당컴퓨터에서는항상일정 컴퓨터마다다를수있음 short

More information

Microsoft PowerPoint - 3장-MS SQL Server.ppt [호환 모드]

Microsoft PowerPoint - 3장-MS SQL Server.ppt [호환 모드] MS SQL Server 마이크로소프트사가윈도우운영체제를기반으로개발한관계 DBMS 모바일장치에서엔터프라이즈데이터시스템에이르는다양한플랫폼에서운영되는통합데이터관리및분석솔루션 2 MS SQL Server 개요 3.1 MS SQL Server 개요 클라이언트-서버모델을기반으로하는관계 DBMS로서윈도우계열의운영체제에서만동작함 오라클관계 DBMS보다가격이매우저렴한편이고,

More information

Bind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터

Bind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터 Bind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터를사용자에게전송하게되며 Parsing 단계에서실행계획이생성된다. Bind 변수를사용하는 SQL

More information

Microsoft Word - PLSQL.doc

Microsoft Word - PLSQL.doc PL/SQL 2008 DB system and programming 보충자료 PL/SQL의실행절 BEGIN 절에서의몇가지규칙 - 실행문은여러라인에걸쳐사용할수있다. - 변수명의명명규칙은오라클의일반적인명명규칙과동일하다. PL/SQL 블록내에서 SQL 문을사용할때에는컬럼명과같은변수명은피해야한다. - SQL에서와마찬가지로날짜와문자는홑따옴표 ( ) 를사용하여인용하여야한다.

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소

More information

예제소스는 에서다운로드하여사용하거나툴바의 [ 새쿼리 ]( 에아래의소스를입력한다. 입력후에는앞으로실습을위해서저장해둔다. -- 실습에필요한 Madang DB 와 COMPANY DB 를모두생성한다. -- 데이터베이스생성 US

예제소스는  에서다운로드하여사용하거나툴바의 [ 새쿼리 ]( 에아래의소스를입력한다. 입력후에는앞으로실습을위해서저장해둔다. -- 실습에필요한 Madang DB 와 COMPANY DB 를모두생성한다. -- 데이터베이스생성 US A.4 마당서점데이터베이스생성 1 마당서점의데이터베이스 Madang을생성하기위해윈도우의 [ 시작 ]-[ 모든프로그램 ]- [Microsoft SQL Server 2012]-[SQL Server Management Studio] 를선택한다. 인증을 [Windows 인증 ] 으로선택한후 < 연결 > 을클릭한다. 2 1 3 서버이름 MADANG_DB\SQLEXPRESS

More information

Microsoft Word - 05_SUBPROGRAM.doc

Microsoft Word - 05_SUBPROGRAM.doc ORACLE SUBPROGRAM INTRODUCTION PLSQL 은오라클에서제공하는프로그래밍언어이다. 이는데이터베이스언어인 SQL 과함께효과적으로데이터베이스에접근할수있는방법을제공하고있다. Procedural LanguageSQL 의약자에서볼수있듯이절차적인기능을기본적으로가지는프로그래밍언어이다. PLSQL 은기본적으로블록 (BLOCK) 구조를가지고있다. 블록의기본적인구성은선언부

More information

Microsoft PowerPoint Python-DB

Microsoft PowerPoint Python-DB 순천향대학교컴퓨터공학과이상정 순천향대학교컴퓨터공학과 1 학습내용 데이터베이스 SQLite 데이터베이스 파이썬과데이터베이스연결 순천향대학교컴퓨터공학과 2 데이터베이스 (Database) 소개 데이터베이스 DBMS (DataBase Management System) 이라고도함 대용량의데이터를매우효율적으로처리하고저장하는기술 SQLite, 오라클, MySQL 등이있음

More information

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include

More information

Microsoft PowerPoint - 사본 - DB06-SQL,시스템카탈로그,뷰.ppt

Microsoft PowerPoint - 사본 - DB06-SQL,시스템카탈로그,뷰.ppt . SQL(Structured Query Language) 특징 [ 출제빈도 상 ] 사용자 SQL ) 관계대수와관계해석을기초로한고급데이터언어 ) 이해하기쉬운형태 3) 대화식질의어로사용가능 4) 데이터정의, 조작, 제어기능제공 5) COBOL, C, PASCAL 등의언어에삽입 -> 내장 SQL 6) 레코드집합단위로처리 7) DBMS 에서사용되는비절차적대화형 Language

More information

슬라이드 1

슬라이드 1 Pairwise Tool & Pairwise Test NuSRS 200511305 김성규 200511306 김성훈 200614164 김효석 200611124 유성배 200518036 곡진화 2 PICT Pairwise Tool - PICT Microsoft 의 Command-line 기반의 Free Software www.pairwise.org 에서다운로드후설치

More information

슬라이드 1

슬라이드 1 Tadpole for DB 1. 도구개요 2. 설치및실행 4. 활용예제 1. 도구개요 도구명 소개 Tadpole for DB Tools (sites.google.com/site/tadpolefordb/) 웹기반의데이터베이스를관리하는도구 Database 스키마및데이터관리 라이선스 LGPL (Lesser General Public License) 특징 주요기능

More information

Spring Data JPA Many To Many 양방향 관계 예제

Spring Data JPA Many To Many 양방향 관계 예제 Spring Data JPA Many To Many 양방향관계예제 오라클자바커뮤니티 (ojc.asia, ojcedu.com) 엔티티매핑 (Entity Mapping) M : N 연관관계 사원 (Sawon), 취미 (Hobby) 는다 : 다관계이다. 사원은여러취미를가질수있고, 하나의취미역시여러사원에할당될수있기때문이다. 보통관계형 DB 에서는다 : 다관계는 1

More information

歯sql_tuning2

歯sql_tuning2 SQL Tuning (2) SQL SQL SQL Tuning ROW(1) ROW(2) ROW(n) update ROW(2) at time 1 & Uncommitted update ROW(2) at time 2 SQLDBA> @ UTLLOCKT WAITING_SESSION TYPE MODE_REQUESTED MODE_HELD LOCK_ID1

More information

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CC0E7B0EDB0FCB8AE5C53746F636B5F4D616E D656E74732E637070>

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CC0E7B0EDB0FCB8AE5C53746F636B5F4D616E D656E74732E637070> 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include "QuickSort.h" 7 using namespace std; 8 9 10 Node* Queue[100]; // 추가입력된데이터를저장하기위한 Queue

More information

PowerPoint Presentation

PowerPoint Presentation Class - Property Jo, Heeseung 목차 section 1 클래스의일반구조 section 2 클래스선언 section 3 객체의생성 section 4 멤버변수 4-1 객체변수 4-2 클래스변수 4-3 종단 (final) 변수 4-4 멤버변수접근방법 section 5 멤버변수접근한정자 5-1 public 5-2 private 5-3 한정자없음

More information

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2 비트연산자 1 1 비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2 진수법! 2, 10, 16, 8! 2 : 0~1 ( )! 10 : 0~9 ( )! 16 : 0~9, 9 a, b,

More information

<C1A4BAB8C3B3B8AE5FBBEABEF7B1E2BBE75FC7CAB1E25F E687770>

<C1A4BAB8C3B3B8AE5FBBEABEF7B1E2BBE75FC7CAB1E25F E687770> 3.2 관계데이터언어 0709 (1) 관계대수 0703 0705 0703 1) 관계대수정의 1 원하는정보와그정보를어떻게유도하는가를기술하는절차적인방법 0503 2 주어진관계로부터원하는관계를얻기위해연산자와연산규칙을제공하는언어 0503 3 릴레이션조작을위한연산의집합으로피연산자와결과가모두릴레이션이라는특성을가짐 2) 순수관계연산자 0305 관계데이터베이스에적용할수있도록특별히개발된관계연산자

More information

슬라이드 1

슬라이드 1 17.1 데이터베이스트리거 17.2 DML 트리거 17.3 DML 트리거작성 17.4 DML 트리거관리 17.5 INSTEAD OF 트리거 17.6 NON-DML 트리거 17.1 데이터베이스트리거 데이터베이스트리거 (database trigger) 테이블에어떤조작이가해졌을때에미리지정해놓은처리를자동으로실행시키는블록 PL/SQL 블록으로작성, 오라클데이터베이스에저장

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 IT CookBook, SQL Server 로배우는데이터베이스개론과실습 [ 강의교안이용안내 ] 본강의교안의저작권은한빛아카데미 에있습니다. 이자료를무단으로전제하거나배포할경우저작권법 136 조에의거하여최고 5 년이하의징역또는 5 천만원이하의벌금에처할수있고이를병과 ( 倂科 ) 할수도있습니다. Chapter9. 데이터베이스보안과관리 SQL Server 로배우는데이터베이스개론과실습

More information

Spring Boot/JDBC JdbcTemplate/CRUD 예제

Spring Boot/JDBC JdbcTemplate/CRUD 예제 Spring Boot/JDBC JdbcTemplate/CRUD 예제 오라클자바커뮤니티 (ojc.asia, ojcedu.com) Spring Boot, Gradle 과오픈소스인 MariaDB 를이용해서 EMP 테이블을만들고 JdbcTemplate, SimpleJdbcTemplate 을이용하여 CRUD 기능을구현해보자. 마리아 DB 설치는다음 URL 에서확인하자.

More information

PowerPoint Presentation

PowerPoint Presentation FORENSIC INSIGHT; DIGITAL FORENSICS COMMUNITY IN KOREA SQL Server Forensic AhnLab A-FIRST Rea10ne unused6@gmail.com Choi Jinwon Contents 1. SQL Server Forensic 2. SQL Server Artifacts 3. Database Files

More information

最即時的Sybase ASE Server資料庫診斷工具

最即時的Sybase ASE Server資料庫診斷工具 TOAD 9.5 Toad Oracle 料 SQL 料 行 理 SQLprofile Quest Software 了 Oracle -Toad Tools of Oracle Application Developers Toad 了 DBA DBA 理 易 度 Toad 料 SQL PL/SQL Toad Oracle PL/SQL Toad Schema Browser Schema Browser

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 6 강. 함수와배열, 포인터, 참조목차 함수와포인터 주소값의매개변수전달 주소의반환 함수와배열 배열의매개변수전달 함수와참조 참조에의한매개변수전달 참조의반환 프로그래밍연습 1 /15 6 강. 함수와배열, 포인터, 참조함수와포인터 C++ 매개변수전달방법 값에의한전달 : 변수값,

More information

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft PowerPoint - ch07 - 포인터 pm0415 2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자

More information

make life game.doc

make life game.doc Database design guide ( 테이블, 컬럼정의방법 ) 2004 년 11 월 18 일 Sunny Kwak sunnykwak@hanmail.net sunnykwak.egloos.com Copyrights 2004 Sunny Kwak. All rights reserved. Other disclaimers The names of actual companies

More information

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 (   ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각 JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.

More information

Microsoft Word - 07_TRIGGER.doc

Microsoft Word - 07_TRIGGER.doc DATABASE TRIGGER INTRODUCTION 프로그램단위 1 의하나인트리거 2 (Trigger) 는테이블, 뷰, 스키마또는데이터베이스에관련된 PLSQL 블록 ( 또는프로시저 ) 으로관련된특정사건 (Event) 이발생될때마다묵시적 ( 자동 ) 으로실행이이루어진다 (Fire). 트리거를생성할때관련된사건 (Event) 도함께정의되며, 실행부에서저장된프로시저

More information

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate ALTIBASE HDB 6.1.1.5.6 Patch Notes 목차 BUG-39240 offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG-41443 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate 한뒤, hash partition

More information

객관식 1번풀이사전지식 * 비교연산자 ANY ( 서브쿼리 ) - 서브쿼리의결과에존재하는어느하나의값이라도만족하는조건을의미. 비교연산자로 " > " 를사용했다면메인쿼리는서브쿼리의값들중어떤값이라도만족하면되므로서브쿼리의결과의최소값보다큰모든건이조건을만족 - SOME 과동일 1번

객관식 1번풀이사전지식 * 비교연산자 ANY ( 서브쿼리 ) - 서브쿼리의결과에존재하는어느하나의값이라도만족하는조건을의미. 비교연산자로  >  를사용했다면메인쿼리는서브쿼리의값들중어떤값이라도만족하면되므로서브쿼리의결과의최소값보다큰모든건이조건을만족 - SOME 과동일 1번 Study Room Doc.02 : SQLD 예상문제 네이버 Cafe : 데이터베이스전문가포럼 Study Room http://cafe.naver.com/sqlpd SQLD 21 회기출문제를바탕으로작성 작성자 : 월야루 2016-09-04 객관식 1번풀이사전지식 * 비교연산자 ANY ( 서브쿼리 ) - 서브쿼리의결과에존재하는어느하나의값이라도만족하는조건을의미.

More information

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL 다양한예제로쉽게배우는 오라클 SQL 과 PL/SQL 서짂수저 1 장. SELECT 문을이용하여 원하는데이터가져오기 1 - DESC 명령어로컬럼을확인하자! SCOTT>DESC emp ; Name Null? Type ------------------------ ------------------ -------------------- EMPNO NOT NULL NUMBER(4)

More information

<4D F736F F F696E74202D20BFC0B6F3C5AC2D38C0E52DBAE4BFCD20BDC3BDBAC5DB20C4ABC5BBB7CEB1D72DBFC0B6F3C5AC2E BC8A3C8AF20B8F0B

<4D F736F F F696E74202D20BFC0B6F3C5AC2D38C0E52DBAE4BFCD20BDC3BDBAC5DB20C4ABC5BBB7CEB1D72DBFC0B6F3C5AC2E BC8A3C8AF20B8F0B 8 제장오라클 81 8.1 뷰 8.2 관계 DBMS의시스템카탈로그 8.3 오라클의시스템카탈로그연습문제 뷰와시스템카탈로그 관계데이터베이스시스템의뷰 (view) 는다른릴레이션으로부터유도된릴레이션 (derived relation) 으로서 ANSI/SPARC 3단계아키텍처의외부 뷰와다름 뷰는관계데이터베이스시스템에서데이터베이스의보안메카니즘으로서, 복잡한질의를간단하게표현하는수단으로서,

More information

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 )

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 ) 8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 ) - DDL(Data Definition Language) : show, create, drop

More information

PowerPoint Presentation

PowerPoint Presentation Computer Science Suan Lee - Computer Science - 06 데이터베이스 1 06 데이터베이스 - Computer Science - 06 데이터베이스 2 목차 1. 데이터베이스의개요 2. 데이터모델 3. 관계형데이터베이스 4. SQL 5. 모바일데이터베이스 - Computer Science - 06 데이터베이스 3 데이터베이스의개념

More information

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures 단일연결리스트 (Singly Linked List) 신찬수 연결리스트 (linked list)? tail 서울부산수원용인 null item next 구조체복습 struct name_card { char name[20]; int date; } struct name_card a; // 구조체변수 a 선언 a.name 또는 a.date // 구조체 a의멤버접근 struct

More information

윈도우시스템프로그래밍

윈도우시스템프로그래밍 데이터베이스및설계 MySQL 을위한 MFC 를사용한 ODBC 프로그래밍 2012.05.10. 오병우 컴퓨터공학과금오공과대학교 http://www.apmsetup.com 또는 http://www.mysql.com APM Setup 설치발표자료참조 Department of Computer Engineering 2 DB 에속한테이블보기 show tables; 에러발생

More information

쉽게 풀어쓴 C 프로그래밊

쉽게 풀어쓴 C 프로그래밊 Power Java 제 27 장데이터베이스 프로그래밍 이번장에서학습할내용 자바와데이터베이스 데이터베이스의기초 SQL JDBC 를이용한프로그래밍 변경가능한결과집합 자바를통하여데이터베이스를사용하는방법을학습합니다. 자바와데이터베이스 JDBC(Java Database Connectivity) 는자바 API 의하나로서데이터베이스에연결하여서데이터베이스안의데이터에대하여검색하고데이터를변경할수있게한다.

More information

C# Programming Guide - Types

C# Programming Guide - Types C# Programming Guide - Types 최도경 lifeisforu@wemade.com 이문서는 MSDN 의 Types 를요약하고보충한것입니다. http://msdn.microsoft.com/enus/library/ms173104(v=vs.100).aspx Types, Variables, and Values C# 은 type 에민감한언어이다. 모든

More information