oracle

    [Oracle] CONSTRAINT(제약조건)_CHECK

    * CHECK(조건식) 제약조건 해당 컬럼에 들어올 수 있는 값에 대한 조건을 제시해둘 수 있음 해당 조건에 만족하는 데이터값만 담길 수 있음 CREATE TABLE MEM_CHECK( MEM_NO NUMBER NOT NULL, MEM_ID VARCHAR2(20) NOT NULL UNIQUE, MEM_PWD VARCHAR2(20) NOT NULL, MEM_NAME VARCHAR2(20) NOT NULL, GENDER CHAR(3) CHECK (GENDER IN('남', '여')), PHONE VARCHAR2(13), EMAIL VARCHAR2(50) --CHECK(GENDER IN ('남', '여')) -- 테이블 레벨 방식 ); INSERT INTO MEM_CHECK VALUES(1, 'user01',..

    [Oracle] CONSTRAINT(제약조건)_제약조건명 부여

    * 제약조건 부여시 제약조건명까지 지어주는 방법 > 컬럼 레벨 방식 CREATE TABLE 테이블명( 컬럼명 자료형 [CONSTRAINT 제약조건명]제약조건 컬럼명 자료형 ); > 테이블 레벨 방식 CREATE TABLE 테이블명{ 컬럼명 자료형, 컬럼명 자료형, ... [CONSTRAINT 제약조건명]제약조건(컬럼명) ); CREATE TABLE MEM_UNIQUE( MEM_NO NUMBER CONSTRAINT MEMNO_NN NOT NULL, -- 컬럼 레벨 방식 MEM_ID VARCHAR2(20) CONSTRAINT MEMID_NN NOT NULL, MEM_PWD VARCHAR2(20) CONSTRAINT MEMPWD_NN NOT NULL, MEM_NAME VARCHAR2(20) CONSTRAINT..

    [Oracle] CONSTRAINT(제약조건)_UNIQUE

    * UNIQUE 제약조건 해당 컬럼에 중복된 값이 들어가서는 안 될 경우 컬럼값에 중복값을 제한하는 제약 조건 삽입 / 수정시 기존에 있는 데이터값 중 중복값이 있을경우 오류 발생 !! 컬럼 레벨 방식 CREATE TABLE MEM_UNIQUE( -- 컬럼레벨방식 MEM_NO NUMBER NOT NULL, MEM_ID VARCHAR2(20) NOT NULL UNIQUE, MEM_PWD VARCHAR2(20) NOT NULL, MEM_NAME VARCHAR2(20) NOT NULL, GENDER CHAR(3), PHONE VARCHAR2(13), EMAIL VARCHAR2(50) ); 테이블 레벨 방식 CREATE TABLE MEM_UNIQUE( MEM_NO NUMBER NOT NULL, MEM_ID VA..

    [Oracle] CONSTRAINT(제약조건)_NOTNULL

    - 원하는 데이터값 (유효한 형식의 값) 만 유지하기 위해서 특정 컬럼에 설정하는 제약조건 - 데이터 무결성 보장을 목적으로 한다! * 종류 : NOT NULL, UNIQUE, CHECK, PRIMARY KEY, FOREIGN KEY * NOT NULL 제약조건 해당 컬럼에 반드시 값이 존재해야만 할 경우 (즉, 해당 컬럼에 절대 NULL이 들어와서는 안되는 경우) 삽입 / 수정시 NULL 값을 허용하지 않도록 제한 제약 조건을 부여하는 방식은 크게 2가지가 있음 (컬럼레벨방식 / 테이블레벨방식) * NOT NULL 제약조건은 오로지 컬럼레벨방식 밖에 안됨 ** -- 컬럼레벨방식 : 컬럼명 자료형 제약조건 CREATE TABLE MEM_NOTNULL( MEM_NO N..

    [Oracle] DDL(1) - CREATE

    * DDL (DATA DEFINITION LANGUSAGE) : 데이터 정의 언어 오라클에서 제공하는 객체(OBJECT)를 새로이 만들고, 구조를 변경(ALTER) 하고, 구조 자체를 삭제(DROP) 하는 언어즉, 실제 데이터 값이 아닌 구조 자체를 정의하는 언어 주로 DB관리자, 설계자가 사용함 오라클에서 제공하는 객체(구조) : 테이블(TABLE), 뷰(VIEW), 시퀀스(SEQUENCE), 인덱스(INDEX), 패키지(PACKAGE), 트리거(TRIGGER), 프로시저(PROCEDURE), 함수(FUNCTION), 동의어(SYNONYM), 사용자(USER) 객체를 새로이 생성하는 구문 1. 테이블 생성 - 테이블이란? 행(ROW)과 열(COLUMN)로 구성되는 가장 기본적인 데이터베이스 객체 모든 ..

    [Oracle] JOIN 및 subquery 실습문제

    -- 1. 70년대 생(1970~1979) 중 여자이면서 전씨인 사원의 이름과 주민번호, 부서 명, 직급 조회 SELECT * FROM EMPLOYEE; SELECT * FROM DEPARTMENT; SELECT * FROM JOB; SELECT EMP_NAME, EMP_NO, DEPT_TITLE, JOB_NAME FROM EMPLOYEE JOIN DEPARTMENT ON DEPT_CODE = DEPT_ID JOIN JOB USING (JOB_CODE) WHERE SUBSTR(EMP_NO,1,2) BETWEEN 70 AND 79 AND SUBSTR(EMP_NO,8,1) = 2 AND EMP_NAME LIKE '전%'; --2. 나이 상 가장 막내의 사원 코드, 사원 명, 나이, 부서 명, 직급 명 조회 ..

    [Oracle] 순위를 매기는 함수 (Window Function)

    * 순위 매기는 함수 ( WINDOW FUNCTION ) RANK() OVER(정렬기준) | DENSE_RANK() OVER(정렬기준) - RANK() OVER (정렬기준) : 동일한 순위 이후의 등수를 동일한 인원수 만큼 건너뛰고 순위 계산 EX) 공동 1위가 2명 그 다음 순위는 3위 => 1 1 3 - DENSE_RANK() OVER(정렬기준) : 동일한 순위가 있다고 해도 그 다음 등수를 무조건 1씩 증가 시킴 EX) 공동 1위가 2명이더라도 그 다음 순위를 2위 => 1 1 2 - row_number() over(정렬기준) : 동일한 순위가 있더라도 그 다음 순위를 부여 => 1 2 3 4 .. >> 세 함수는 무조건 SELECT절에서만 사용 가능!! RANK() -- 급여가 높은 순대로 순위를..

    [Oracle] 서브쿼리 (Subquery)

    - 하나의 SQL문 안에 포함된 또 다른 SELECT문 - 메인 SQL문을 위해 보조 역할을 하는 쿼리문 * 서브쿼리의 구분 서브쿼리 수행한 결과값이 몇 행 몇열이냐에 따라서 분류됨 - 단일행 서브쿼리 : 서브쿼리의 조회 결과값의 개수가 오로지 1개 일 때 (한 행 한 열) - 다중행 서브쿼리 : 서브쿼리의 조회 결과값이 여러행 일 때(여러행 한열) => 동명이인 노옹철 - 다중열 서브쿼리 : 서브쿼리의 조회 결과값이 한 행이지만 컬럼이 여러개일 때 (한 행 여러 열) - 다중행 다중열 서브쿼리 : 서브쿼리 조회 결과값이 여러 행 여러 컬럼일 때 (여러 행 여러 열) >> 서브쿼리 종류가 뭐냐에 따라서 서브쿼리 앞에 붙는 연산자가 달라짐! -- 간단 서브쿼리 예시1 -..