목록2017/05/23 (8)
C#,Delphi,Oracle,MSSQL 개발자블로그
● 데이터베이스 객체 - Table : 행과 열로 구성된 기본적인 저장매체의 단위 - View : 하나 이상의 테이블로부터 데이터의 부분집합을 논리적으로 표현 - Sequence : 기본 키 값을 발생 - Index : 어떤 질의의 성능을 향상 - Synonym : 객체에 대체 이름을 부여 ● 뷰 란? 테이블 또는 다른 뷰를 기초로 하는 논리적 테이블이다. 뷰는 그 자체로서 소유하는 데이터는 없지만 창문처럼 창문을 통해 어떤 데이터를 보거나 변경할 수 있다. ● 뷰의 사용 목적 1. 뷰는 데이터베이스의 선택적인 부분을 디스플레이 할 수 있기 때문에 데이터베이스에 대한 액세스를 제한할 수 있다. 2. 사용자가 복잡한 질의로부터 결과를 검색하기 위한 단순한 질의를 만들도록 한다. 예를들면, 뷰는 조인 문장을..
● 제약조건 오라클 서버는 부적합한 데이터가 테이블에 삽입되는 것을 방지하기 위해 CONSTRAINT(제약조건)를 사용한다. * 데이터 무결성 제약조건 - NOT NULL : 이열은 NULL값을 포함하지 않음을 지정한다. - UNIQUE Key : 테이블의 모든 행에 대해 유일해야 하는 값을 가진 열 또는 열의 조합을 지정한다. - PRIMARY KEY : 유일하게 테이블의 각 행을 식별한다. - FOREIGN KEY : 열과 참조된 테이블의 열 사이의 외래키 관계를 적용하고 설정한다. - CHECK : 참이어야 하는 조건을 지정한다. 1. NOT NULL 제약조건 열 레벨에서 정의된다. 해당 열의 데이터는 NULL값을 가질 수 없다. CREATE TABLE emp(empno NUMBER(4) ,enam..
TABLE에서 모든 행을 삭제하는 방법에는 다음과 같은 세 가지 OPTION이 있다. 1. DELETE 명령어 사용 DELETE 명령어를 사용하여 TABLE의 행을 삭제할 수 있다. 예를 들어 EMP TABLE에서 모든 행을 삭제하는 명령문은 다음과 같다. SQL>DELETE FROM emp; ◈ DELETE 문을 사용할 때 TABLE이나 CLUSTER에 행이 많으면 행이 삭제 될 때마다 많은 SYSTEM 자원이 소모된다. 예를 들어 CPU 시간,REDO LOG 영역, TABLE이나 INDEX에 대한 ROLLBACK SEGMENT 영역 등의 자원이 필요하다. ◈ TRIGGER가 걸려있다면 각 행이 삭제될 때 실행된다. ◈ 이전에 할당되었던 영역은 삭제되어 빈 TABLE이나 CLUSTER에 그대로 남아 있..
● 데이터베이스 객체 - Table : 행과 열로 구성된 기본적인 저장매체의 단위 - View : 하나 이상의 테이블로부터 데이터의 부분집합을 논리적으로 표현 - Sequence : 기본 키 값을 발생 - Index : 어떤 질의의 성능을 향상 - Synonym : 객체에 대체 이름을 부여 ● 이름 지정 규칙 - 문자로 시작해야한다. - 문자 길이는 1-30이어야 한다. - 오직 A-Z, a-z, 0-9, _, $, #만을 포함할 수 있다. - 동일한 사용자가 소유한 객체의 이름은 중복되어서는 안된다. - 오라클 서버 예약어는 안된다. ● 테이블 생성 CREATE TABLE [schema.]table (col1 datatype [DEFAULT expr] col2 datatype [DEFAULT expr]..
※ 이전 단원인 8단원은 SQL PLUS에 관한 내용이므로 생략. - 데이터조작어 DML (Data Manipulation Language) ● INSERT INTO table(col1, col2, ...) VALUES (val1, val2, ...) ☞ NULL 값을 가진 새로운 행 추가 * 암시적 방법 : 열 목록으로부터 열을 생략한다. INSERT INTO dept(deptno, dname, ) VALUES (60, 'MIS'); * 명시적 방법 : VALUES 목록에 NULL키워드를 명시한다. INSERT INTO dept VALUES (70, 'FINANCE', NULL); ☞ 다른테이블로부터 행 복사 * 서브쿼리로 INSERT 문장을 작성한다. * VALUES절을 사용하지 않는다. * 서브쿼리..
SQL SQL (Structured Query Language) 은 구조적인 질의 언어라는 것이다. 이 SQL 이라는 질의 언어를 통해서 데이터베이스를 제어, 관리한다. SQL 은 다음 언어로 나눌 수 있다. ⒜ DDL : 데이터 정의 언어 ⒝ DML : 데이터 조작 언어 ⒞ DCL : 데이터 제어 언어 DDL DDL (Data Definition Language) 는 데이터 베이스 스키마를 정의 하거나 조작하기 위해 사용한다. SCHEMA, DOMAIN, TABLE, VIEW, INDEX 를 다음 명령어로 정의, 변경, 삭제한다. ⒜ CREATE : 정의 ⒝ ALTER: 수정 ⒞ DROP : 삭제 ⒟ TRUNCATE : DROP 후 CREATE * Oracle 11g 이전 버전과 MySQL은 DDL에 ..
● 다중열 서브 쿼리 여러개의 컬럼을 검색하는 서브 쿼리 - 서브 쿼리의 SELECT 문에 여러 개의 컬럼을 검색한다. - 반드시 비교 대상 컬럼과 1:1 대응돼야 한다. - 다중 열 서브쿼리는 주로 IN을 사용하지만 '='사용도 가능하다. IN의 사용이 권장된다. Ex. 각 부서별로 최소 급여를 받는 사원의 정보를 검색. (Pairwise 방식) SELECT dept_ID, employeeID, first_name, salary FROM emp WHERE (dept_ID, salary) IN (SELECT dept_ID, MIN(salary) FROM emp GROUP BY dept_ID) ● 다중 열 서브쿼리에서의 열 비교 - Pairwise 방식. SELECT empno, sal, deptno FR..
- 서브쿼리를 작성할 수 있는 부분 1. WHERE 절 2. HAVING 절 3. FROM 절 서브쿼리 = 중첩SELECT = 부속 SELECT = 내부SELECT - 서브쿼리는 괄호로 둘러싸야 한다. - 서브쿼리는 비교연산자의 오른쪽에 있어야 한다. - 서브쿼리에 ORDER BY 절을 포함하면 안된다. (SELECT문장에 대해서는 오직 하나의 ORDER BY를 가질 수 있으며, SELECT문장의 제일 마지막에 있어야 한다.) ● 서브쿼리의 유형 1. 단일 행 서브쿼리 : 내부 SELECT 문장으로부터, 오직 하나의 행만을 리턴하는 질의이다. 단일 행 비교연산자(비교대상이 1개의 결과 리턴)를 사용한다. =, >, >=, SELECT ename, sal, deptno FROM emp WHERE sal I..