Database

    [Oracle] CONSTRAINT(제약조건)_PRIMARY KEY

    * PRIMARY KEY(기본키) 제약조건 => PK 테이블에서 각 행들을 식별하기 위해 사용될 컬럼에 부여하는 제약조건 (식별자의 역할) EX) 회원번호, 학번, 사원번호, 부서코드, 직급코드, 주문번호, 예약번호, 운송장번호 PRIMARY KEY 제약조건을 부여하면 그 컬럼에 자동으로 NOT NULL + UNIQUE 제약조건 가진다. * 유의사항 : 한 테이블당 오로지 !!! 한개만 가능 CREATE TABLE MEM_PRI( MEM_NO NUMBER CONSTRAINT MEMNO_PK PRIMARY KEY, MEM_ID VARCHAR2(20) NOT NULL UNIQUE, MEM_PWD VARCHAR2(20) NOT NULL, MEM_NAME VARCHAR2(20) NOT NULL, GENDER C..

    [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() -- 급여가 높은 순대로 순위를..