본문 바로가기

DataBase

(7)
Oracle(7) - 서브쿼리 서브쿼리(Sub Query) 보통 2개이상의 테이블에서 데이터를 추출하고 싶을 때 서브쿼리를 사용합니다. JOIN과 비슷한듯 하지만 비슷하지 않은 개념입니다. 보통 서브쿼리는 JOIN중 Outer JOIN과 같이 동작을 하는데, JOIN에 실패해도 NULL값을 리턴합니다. 서브쿼리는 하나의 SELECT 문장의 절 안에 또하나의 SELECT문을 포함하고 있습니다.여기서 SELECT문장을 포함하고 있는 쿼리를 메인쿼리라부르고, 포함된 또하나의 쿼리를 서브쿼리라고 부릅니다. SCOTT이라는 사원이 속하는 부서명을 알고싶다면 다음과 같은 쿼리를 작성해야합니다. SELECT DEPTNO FROM EMP WHERE ENMAE = 'SCOTT'; // 알아낸 부서번호가 20이라고 칩시다. SELECT DNAME FR..
Oracle(6) - JOIN JOIN은 한개이상의 테이블에서 원하는 값을 얻기 위해서 사용한다. JOIN의 종류에대해서 먼저 알아보자. 종 류 설 명 Equi JOIN 동일 칼럼을 기준으로 조인한다.(inner join, simple join) NonEqui JOIN 동일 칼럼이 없이 다른 조건을 사용하여 조인한다. Outer JOIN 조인조건에 만족하지 않은 행도 나타낸다. Self JOIN 한 테이블 내에서 조인한다. WHERE 조건절에서 명시한 조건이 FROM절에서 명시한 여러 테이블을 묶는 조건이된다. 이런 JOIN조건은 반드시 묶어야할 테이블보다 하나가 적어야한다. n개의 테이블을 묶어야한다면 n-1개의 조건이 있어야한다. 기본적으로 조인을 하기위해서는 다음과 같은 규칙을 지켜야한다. PK와 FK열을 통해 다른 테이블의 행..
Oracle(5) - 무결성제약조건 1. 무결성 제약조건이란? - 무결성 제약조건은 데이터를 추가, 삭제, 수정하는 과정에서 무결성을 유지하기 위해서 제약을 주는것을 말한다. - 여기서 무결성은 db내에서 확장성을 유지하는 것을 뜻하고, 제약조건이란 바람직하지 않은 데이터가 저장되는 것을 막느것을 말한다. 2. 무결성 제약조건의 종류 NOT NULL - NULL을 허용하지 않는다. UNIQUE - 중복된 값을 허용하지 않는다. 항상 유일한 값만 허용 PRIMARY KEY - NULL과 중복된 값을 허용하지 않는다. FOREIGN KEY - 참조되는 테이블의 칼럼의 값이 존재하면 허용한다. CHECK - 범위나 조건을 지정하여 그안의 값만 허용한다 3. 예시 - 예를들어 사원번호같은경우는 중복되는 값이 있으면 안되기 때문에 UNIQUE로 지..
Oracle(4) - DML, 트랜잭션 DataBase에서 DML(데이터 조작어)는 테이블에 있는 내용을 추가, 수정, 삭제하기 위한 언어이다. 추가하기 위한 INSERT, 수정하기위한 UPDATE, 삭제하기위한 DELETE문으로 이루어져있다. 1. 테이블에 새로운 행을 추가하기위한 INSERT 문 특정 컬럼에만 데이터를 삽입하는 경우 ex) INSERT INTO(COLUMN_NAME, COLUMN_NAME) TABLE_NAME VALUES(DATA, DATA); 모든 컬럼에 데이터를 삽입하는 경우 ex) INSERT INTO TABLE_NAME VALUES(DATA, DATA.....); 문자와, 날짜값을 삽입할 때는 ' ' 따옴표를 사용해야한다. 2. 테이블의 내용을 수정하기위한 UPDATE 문 UPDATE문을 사용할 때는 WHERE조건절..
Oracle(3) - DDL DataBase에서 DDL(데이터 조작어)는 테이블을 생성, 삭제, 수정할 수 있게 해주는 언어이다. 1. CREATE TABLE 테이블 구조 정의 CREATE TABLE을 할때에는 칼럼에 지정할 수 있는 자료형이 정해져있다. VARCHAR2, NUMBER, DATE, LONG을 주로사용한다. 예를들어 사원번호, 사원명, 급여 3개의 컬럼으로 이루어진 테이블을 만들기 위해서는 CREATE TABLE EMP( EMPNO NUMBER(4), ENAME VARCHAR2(20), SAL NUMBER(7, 2) ); 이런 식으로 생성할 수가 있다. 생성후 테이블 구조 확인을 위해서는 SELECT * FROM EMP; 쿼리를 사용해서 확인할 수 있다. 2. 기존 테이블 복사 테이블을 생성할 때 기존테이블을 복사할 ..
Oracle(2) - SQL함수 1. DUAL 테이블 SQL함수에는 한줄로 데이터를 꺼낼수 있는 DUAL테이블이 존재한다. ex) select 60*24 from dual; 2. SUM함수 SUM함수를 사용해서 칼럼에해당하는 값을 더한 총합을 출력할 수 있다. 그룹함수의 값은 여러개의 행에 대해서 1개의 행만을 출력해준다. ex) 부서번호가 30인 사원의 총 급여 select deptno, sum(sal) from emp group by deptno having deptno = 30; 3. 단일행함수 - 행마다 함수가 적용되어 결과를 반환 - 문자, 숫자, 날짜, 변환, 일반함수 - 문자함수(LOWER, UPPER, SUBSTR, LENGTH, INSTR, TRIM등) - 숫자함수 ABS - 절대값 반환 ROUND - 원하는 자리에서 ..
Oracle(1) - SQL기본 필자는 데이터베이스 언어로 ORACLE을 사용하기 때문에 ORACLE에 맞는 내용을 작성할 것이다. SQL이란 관계형 데이터베이스를 처리하기 위해 고안된 언어로 독자적인 문법을 갖는 DB언어이다. 먼저 SQL의 종류에 대해서 알아보겠다. DML - 데이터 조작어로 SELECT, INSERT, DELETE, UPDATE를 사용해 작업을 할 수 있다. TCL - 트랜잭션 관련 문장으로 DML에 의해 변경된 내용을 관리한다. COMMIT, ROLLBACK를 사용한다. DDL - 데이터베이스의 객체를 CREATE(생성), ALTER(수정), DROP(삭제)할 때 사용한다. DCL - 오라클에 접속하는 계정에게 권한을 주거나(GRANT) 뺏는(REVOKE)작업을 할 때 사용한다. 1. SELECT 사용법 - SE..