제약조건이란? 테이블에 올바른 데이터만 입력받기 위해서 올바르지 못한 데이터는 입력되지 못하도록 컬럼마다 정하는 규칙입니다. 제약조건특징 데이터 무결성을 보장하기 위한 용도 컬럼에 대한 속성 정의 테이블이나 속성에 적절치 않은 데이터가 들어오는 것을 방지하기 위한 규칙을 정하는 것 데이터베이스의 객체 , 고유의 이름(제약조건 명)을 지정해야 함 사용자가 지정하지 않는 경우 ,ORACLE이 자동으로 부여 제약조건종류 NOT NULL : 해당 컬럼값으로 NULL을 허용하지 않는다. UNIQUE : 테이블 내에서 해당 컬럼값은 항상 유일한 값을 가진다. PRIMARY KEY : NULL을 허용하지 않고 중복된 값을 허용하지 않는다. FOREIGN KEY : 참조하는 테이블의 컬럼값이 존재하면 허용한다. CHE..
Sub Query 서브쿼리란 하나의 쿼리 안에 또 다른 하나의 쿼리가 있는 것입니다. 서브 쿼리는 연산자와 같은 비교 또는 조회 대상의 오른쪽에 놓이며 괄호 ( ) 로 묶어서 사용합니다. FROM 절 안에 괄호()를 사용하여 서브쿼리를 기술하는 것을 인라인 뷰 라고 합니다. 서브 쿼리에 명시된 열은 메인 쿼리의 비교 대상과 동일한 데이터 타입(자료 형)과 동일한 열 개수를 가져야 합니다. 서브 쿼리에 사용할 연산자는 메인 쿼리에 사용된 연산자와 호환 가능해야 합니다. 특별한 경우(Top-n 분석 등)를 제외하고는 서브 쿼리에서 ORDER BY 절을 사용할 수 없습니다. 기본 사용 예시 SELECT ENAME,SAL FROM EMP WHERE SAL > ( SELECT SAL FROM EMP WHERE E..
JOIN 두 개 이상의 테이블을 가로로 연결하여 하나의 테이블처럼 출력할 때 사용하는 방식입니다. 오라클에서만 사용 가능한 Oracle Join방식과 SQL-99표준 문법의 ANSI Join 방식이 있습니다. From절에 조회할 테이블을 명시합니다. Oracle Join은 Where절에 Join조건을 명시합니다. ANSI Join은 From절에 Join조건을 명시합니다. 테이블 별칭 지정 JOIN을 사용할 때 두개 이상의 테이블을 연결하기 때문에 내가 조할 컬럼에 대해서 어떤 테이블에 존재하는지 명시하기 위해 FROM절에 TABLE명 뒤에 테이블 별칭을 지정해줍니다. (래퍼런스 변수같은 개념) 위의 테이블을 보면 EMP 테이블의 별칭을 E, DEPT 테이블의 별칭을 D 로 지정을 해주었습니다. 그 다음 ..
GROUP 기본 함수 함수 기능 SUM 컬럼의 합계를 구함 AVG 컬럼의 평균값을 구함 MAX 컬럼의 최대값을 구함 MIN 컬럼의 최소값을 구함 COUNT 컬럼의 갯수를 구함 사용예 SELECT SUM(SAL)SUM_SAL,ROUND(AVG(SAL),1) AVG_SAL, MAX(SAL)MAX_SAL,MIN(SAL) MIN_SAL, COUNT(*) COUNT_SAL FROM EMP; 결과값 SAL 컬럼의 순서대로 합,평균,최대,최소,갯수를 구해보았다. 위처럼 컬럼 하나만 그룹함수를 사용해서 결과를 구할때는 GROUP BY절을 사용하지 않아도 되지만 다른 컬럼을 기준으로 그룹함수를 사용할때는 GROUP BY절을 사용해야 한다. 예제 EMP테이블에서 HIREDATE를 연도만 출력되도록하고, 부서번호, 평균/최..
SELECT 데이터 조회#1 itjy2.tistory.com/75 SELECT 데이터 조회#3 itjy2.tistory.com/76 SELECT 조건문 컬럼의 원하는 부분만 조회하기 (WHERE) SELECT * FROM EMP WHERE DEPTNO='20'; EMP테이블의 사원번호가 20인 사원의 정보만 조회하고 싶을때 WHERE 조건을 써주고 [필드] = '[값]' 조건을 주면 된다. 조건 여러개 사용 SELECT * FROM EMP WHERE DEPTNO='20' AND JOB='MANAGER'; 여러 조건을 사용할때는 AND를 사용할 수 있다. ( AND기 때문에 둘중에 하나만 조건이 맞지 않아도 결과가 나오지않음 , OR 조건도 사용가능하다.) DEPTNO,JOB 컬럼에 OR 조건을 사용하고 ..
SELECT 데이터 조회 #1 itjy2.tistory.com/75 SELECT 데이터 조회 #2 itjy2.tistory.com/77 ORDER BY 데이터가 1,3,2,5,4,7... 등등 정렬이 되지 않고 값이 들어가있을때 정렬시켜 조회하는 방법이다. 오름차순 => 1,2,3,4,5..... 내림차순 => 5,4,3,2,1..... ASC ( 오름차순 ), DESC ( 내림차순 ) //사원의 정보를 출력할때 EMPNO를 기준으로 오름차순정렬시켜서 조회 SELECT * FROM EMP ORDER BY EMPNO ASC; //사원의 정보를 출력할때 EMPNO를 기준으로 내림차순정렬시켜서 조회 SELECT * FROM EMP ORDER BY EMPNO DESC; 집합연산자 종류 내용 UNION 두 집합의..
SELECT 데이터 조회(조건사용) #2 itjy2.tistory.com/77 SELECT 데이터 조회(정렬,집합) #3 itjy2.tistory.com/76 SELECT 1. Select 기능 - select 명령어는 오라클에게 DB에 저장된 데이터를 꺼내와서 출력함 2. Select 문법 SELECT [ 컬럼명 ] FROM [ 테이블명 ]; 모든 컬럼 조회하기 SELECT * FROM [ 테이블명 ]; object 정보 조회하기 (VIEW , TABLE 등) SELECT * FROM TAB; 정말정말 간단한 실습 테이블 조회하려면 테이블이 있어야한다. 테이블을 만들고 만든 테이블의 모든 컬럼을 조회해보도록 하겠다. no = number형식의 컬럼 (글자수는 10) name = varchar2형식의 컬..
MERGE 여러 테이블이 있고 테이블 A에 테이블 B,C,D.... 등 에 있는 값들을 넣거나 그 값들로 변경을 하고 싶을때 병합을 사용할 수 있는데 그때 사용하는 문법이 MERGE이다. create table product1( product varchar(10), class varchar(10), price number, primary key(product, class) ); create table product2( product varchar(10), class varchar(10), dml varchar(10), price number, primary key(product, class) ); insert into product1 values ('사과', '과일', 1000); insert into ..
GLOBAL TEMPORARY TABLE ( 임시 테이블 ) 사용 목적 - 데이터베이스에 저장할 목적이 아닌 임시 작업용 데이터를 저장하기 위해 사용 - 데이터는 영구적이지 않고 임시로 사용 - 트랜잭션 처리를 하는 순간 값들이 사라진다. 임시테이블 생성 문법 CREATE GLOBAL TEMPORARY TABLE TEMP01( NO NUMBER, NAME VARCHAR2(10)) ON COMMIT [DELETE | PRESERVE] ROWS ; TEMP01 이라는 임시테이블을 만들엇다. 옵션은 ON COMMIT 뒤에 DELETE, PRESERVE가 붙게 되는데 DELETE 를 주면 COMMIT 시 데이터가 삭제되고 PRESERVE를 사용하면 삭제되지 않는다. 테이블에 아무 값이나 입력 해주고 각각 옵션을..
기본 키 설정 (PRIMARY KEY) 기본 생성 방법(DEPT 테이블) CREATE TABLE DEPT( DEPT VARCHAR2(10), DEPTNO NUMBER PRIMARY KEY); DEPT 라는 테이블의 DEPTNO 컬럼을 기본키로 지정한다. 기본키로 지정하게 되면 DEPTNO 컬럼의 값은 중복된 값이 올 수 없다. 다른 테이블에서 외래키로 참조하는 방법(EMP 테이블) CREATE TABLE EMP( EMPNO NUMBER PRIMARY KEY NOT NULL, NAME VARCHAR2(10) NOT NULL, DEPT VARCHAR2(10) NOT NULL, DEPTNO NUMBER , FOREIGN KEY (DEPTNO) REFERENCES DEPT(DEPTNO)); EMP테이블의 기본키..
복합 뷰 ▶ 여러 개의 테이블을 한번에 참조 할 수 있는 뷰 ▶ 복합 뷰를 사용하면 TABLE1,TABLE2의 원하는 컬럼 부분만 JOIN해서 사용 할 수 있음 ▶생성 문법은 서브 쿼리 부분에 join을 사용하는 것 말고는 단일 뷰와같음 복합 뷰 생성예제 1.TABLE1 ( 학과 ) , TABLE2 ( 학생 ) 테이블 두개를 JOIN해서 복합 뷰 생성 2. 학과테이블에서 학과이름, 학생테이블에서 학생이름과 학년 세가지 컬럼을 합쳐 하나의 뷰로 만들기 테이블구조 VIEW생성 결과 코드 -----학과 테이블 생성 및 값 넣기 ------ create table department( dept_name NVARCHAR2(20), subject NVARCHAR2(20), semester NVARCHAR2(10))..
ORDER BY 우리가 테이블을 만들고 데이터를 조회해보면 정렬이 되어 나오지 않는다. 그 때 데이터를 오름차순 혹은 내림차순으로 정렬 시켜줄 수 있는 명령어가 바로 ORDER BY이다. 데이터 타입은 문자,숫자, 한글,영어 다 가능하다. 우선 확인해 보기 위해 테이블을 하나 만들어 보겠다. create table od ( no NUMBER(1)); insert into od values('2'); insert into od values('1'); insert into od values('4'); insert into od values('3'); insert into od values('6'); insert into od values('5'); insert into od values('7'); 위 처럼 ..