데이터 사전데이터베이스를 구성하고 운영하는데 필요한 모든 정보를 저장하는 특수한 테이블데이터 베이스가 생성되는 시점에 자동으로 만들어진다.데이터 사전에는 데이터베이스 메모리, 성능, 사용자, 권한, 객체 등 오라클 데이터베이스 운영에 중요한 데이터가 보관되어 있어 데이터 사전 뷰로 사용자에게 보여진다. 데이터 사전 뷰 접두어USER_XXXX : 현재 데이터베이스에 접속한 사용자가 소유한 객체 정보ALL_XXXX : 현재 데이터베이스에 접속한 사용자가 소유한 객체 또는 다른 사용자가 소유한 객체 중 사용 허가를 받은 객체, 즉 사용 가능한 모든 객체 정보DBA_XXXX : 데이터베이스 관리를 위한 정보(데이터베이스 관리 권한을 가진 SYSTEM, SYS 사용자만 열람 가능)V$_XXXX : 데이터베이스 ..
제약조건이란 ?테이블 열에 저장될 데이터의 특성, 조건을 지정하는 최소한의 장치 종류설명NOT NULL지정한 열에 NULL을 허용하지 않는다. NULL을 제외한 데이터의 중복은 허용된다.UNIQUE지정한 열이 유일한 값을 가져야 한다. 즉, 중복될 수 없다. 단, NULL은 값의 중복에서 제외된다.PRIMARY KEY지정한 열이 유일한 값이면서 NULL을 허용하지 않는다. PRIMARY KEY는 테이블에 하나만 지정 가능하다.FOREIGN KEY다른 테이블의 열을 참조하여 존재하는 값만 입력할 수 있다.CHECK설정한 조건식을 만족하는 데이터만 입력 가능하다. 제약 조건 지정 방법테이블을 생성하며 제약 조건 지정하기테이블을 생성하며 제약 조건 이름 직접 지정하기 데이터 무결성이란?데이터베이스에 저장되는..
데이터 정의어(DDL)란 ?데이터베이스 데이터를 보관하고 관리하기 위해 제공되는 여러 객체의 생성, 변경, 삭제 관련 기능을 수행하는 언어. 유의사항DDL을 실행하면 자동으로 COMMIT이 되기 때문에 롤백이 불가능하다. 종류CREATEALTERDROP CREATE테이블을 만들 때 사용하는 정의어기본 형식CREATE TABLE 소유 계정(생략 가능).테이블 이름( 열1 이름 열1 자료형, 열2 이름 열2 자료형, ... 열N 이름 열N 자료형); 테이블 이름 규칙대, 소문자 구별 X문자로 시작이름은 30BYTE 이하중복 불가능영문자(한글), 숫자, 특수문자 사용 가능SQL 키워드는 테이블 이름으로 사용 불가 열 이름 생성 규칙문자로 시작30BYTE 이하한 테이블의 열 이름은 중복 X..
트랜잭션이란 ?일련의 연산 집합. DB 시스템에서 하나의 논리적 기능을 수행하기 위한 작업의 단위이다. 계좌이체를 하는 상황을 떠올려보자.계좌이체 라는 행위는 인출과 입금 두 과정으로 이루어진다. 이 두 과정은 동시에 성공하던지 동시에 실패해야 한다.이 과정을 묶는 방법을 트랜잭션이다. 트랜잭션의 특징 (ACID)원자성더이상 나누어 질 수 없는 작업단위(All or Nothing)일관성트랜잭션 실행 전과 후에도 항상 일관성을 유지해야 함.(정상적으로 실행 된다면)격리성실행 중 연산의 중간 결과를 다른 트랜잭션이 접근 불가능영속성트랜잭션이 성공적으로 실행되면 그 결과는 영속적.앞으로 날라가면 X. 영원히 유지되어야 함 TCL이란?트랜잭션을 제어하기 위해 사용하는 명령어 TCL의 상태모든 명령어가 정상적으로..
INSERT문기본 형태INSERT INTO 테이블 이름[(열1, 열2, ..., 열N)]VALUES(열1에 들어갈 데이터, 열2에 들어갈 데이터, ..., 열N에 들어갈 데이터);INSERT문에 지정하는 열은 생략할 수 있다.열을 생략하면 해당 테이블을 만들 때 설정한 열 순서대로 모두 나열되어 있다고 가정하고 데이터를 작성해야 한다.열 개수나 자료형 및 길이는 반드시 맞춰 줘야 한다. NULL 데이터 입력하기데이터를 추가할 때 특정 열에 들어갈 데이터가 확정되지 않았거나 굳이 넣을 필요가 없는 데이터인 경우에는 NULL을 사용한다. NULL을 INSERT문에 지정하는 방법NULL을 직접 명시적으로 입력해주는 방법대상 열을 생략하여 암시적으로 NULL이 입력되도록 유도하는 방식 NULL을 지정 입력INS..
서브 쿼리서브 쿼리란?필요한 데이터를 추가로 조회하기 위해 SQL내부에서 사용하는 SELECT문 Q) EMP 테이블에서 월급을 가장 많이 받는 사원의 이름, 업무, 입사일, 급여 정보를 출력하는 쿼리를 작성하세요. 이렇게 쿼리 한 줄로만 결과물이 안나올 땐 서브쿼리를 생각해보자.select ename, job, hiredate, sal from emp where sal = (select max(sal) from emp); 단일행 서브쿼리실행 결과가 단 하나의 행으로 나오는 서브쿼리데이터가 여러 개 존재하는 열의 경우에는 단일행 연산자를 사용 X 단일행 연산자 사용 다중행 서브쿼리실행 결과가 여러 개의 행으로 나오는 서브쿼리 다중행 연산자 사용다중행 연산자설명IN메인쿼리의 데이터가 서브쿼리의 결과 중 ..
조인(JOIN)이란?두 개 이상의 테이블을 연결하여 하나의 테이블처럼 출력할 때 사용하는 방식⇒ 두 개 이상의 테이블 데이터를 가로로 연결 조인 종류등가 조인테이블을 연결한 후 출력 행을 각 테이블의 특정 열에 일치한 데이터를 기준으로 선정하는 방식내부조인(INNER JOIN) or 단순조인(SIMPLE JOIN)으로 부른다일반적으로 가장 많이 사용되는 조인 방식조인을 특별히 명시하지 않으면, 대부분 등가 조인을 사용하는 방식이다.SELECT E.EMPNO, E.ENAME, E.DEPTNO, D.DNAME, D.LOC FROM EMP E, DEPT DWHERE E.DEPTNO = D.DEPTNO AND E.SAL >= 3000; 비등가 조인등가 조인 방식 이외의 방식SELECT E.EMPNO,..
다중행 함수는 지정 테이블의 데이터를 가공하여 하나의 결과 값만 출력한다. 하나의 결과가 아닌 특정 데이터를 기준으로 묶어서 결과를 각각 알고 싶을 때는 어떻게 하면 편리할까? GROUP BY 절기본 형식SELECT [조회할 열1 이름], ..., [열N 이름]FROM [조회할 테이블 이름]WHERE [조회할 행을 선별하는 조건식]GROUP BY [그룹화할 열을 지정(여러개가능)]ORDER BY [정렬 기준] DEPTNO 열 값별로 급여의 평균 값을 구해보자.group by 사용 xSELECT AVG(SAL) FROM EMP WHERE DEPTNO = 10;SELECT AVG(SAL) FROM EMP WHERE DEPTNO = 20;SELECT AVG(SAL) FROM EMP WHERE DEPTNO = ..
오라클 함수의 종류내장 함수(built-in function): 오라클에서 기본을 제공하고 있는 함수사용자 정의 함수(user-defined functino): 사용자가 필요에 의해 직접 정리하는 함수 내장 함수단일행 함수(single-row function): 한 행당 결과가 하나씩 나오는 함수다중행 함수(multiple-row function): 여러 행이 하나의 행으로 결과가 반환되는 함수 단일행 함수문자 함수숫자 함수날짜 함수변환 함수일반 함수 문자 함수대, 소문자 바꿔주는 함수`UPPER(문자열)` : 문자열을 모두 대문자로 변환`LOWER(문자열)` : 문자열을 모두 소문자로 변환`INITCAP(문자열)` : 문자열 중 첫 글자는 대문자로, 나머지 문자를 소문자로 변환select * from ..
앞서 설명한 SELECT 문에서 WHERE 절이 나오는 것을 확인할 수 있었지만, 이번에는 WHERE 절에 대해 자세히 알아보자. WHERE절이란?SELECT문으로 데이터를 조회할 때 특정 조건을 기준으로 원하는 행을 출력하는데 사용SELECT [조회할 열1 이름], ... , [열N 이름]FROM [조회할 테이블 이름]WHERE [조회할 행을 선별하기 위한 조건식]; 위의 쿼리를 실행하면 조회할 테이블의 각 행에 조건식을 대입하여 결과가 True인 데이터만 출력한다. AND, OR 연산자AND : 피연산자가 둘 다 TRUE → TUREOR : 피연산자가 하나 이상이 TRUE → TRUE 연산자산술 연산자 : +, -, *, /비교 연산자대소 비교 연산자 : >, 등가 비교 연산자 : =, ≠논리 부정 ..