테이블에 새 컬럼 추가하기 - ALTER TABLE 테이블명 ADD (컬럼명 컬럼타입 제약조건, ...); - 새 컬럼이 추가되면 기존에 존재하던 행들은 해당 컬럼값이 null로 추가된다. - 새 컬럼을 추가할 때 DEFAULT를 설정해 놓으면 DEFAULT로 추가된다. -- 디폴트 값을 설정하지 않고 새 컬럼 추가(null로 디폴트 값 설정) ALTER TABLE fruits ADD ( taste NUMBER(1) ); -- 디폴트 값을 설정하고 새 컬럼 추가 ALTER TABLE fruits ADD ( grade VARCHAR2(2) DEFAULT 'B' ); 테이블 컬럼 삭제하기 ALTER TABLE 테이블명 DROP COLUMN 컬럼명; ALTER TABLE fruits DROP COLUMN ta..
무결성 - 결함이 없는 성질 - 데이터를 결함없는 상태로 올바르게 유지하는 것은 무결성을 유지한다고 한다. - 데이터를 올바르게 관리하기 위해서는 다양한 종류의 무결성을 충족시켜야 한다. - 데이터베이스에서는 다양한 제약 조건들을 통해 여러가지 무결성을 보장한다. 개체 무결성 - 테이블의 데이터는 반드시 하나의 행을 선택할 수 있어야 한다. - 개체 무결성을 지키기 위해 제약 조건으로 기본키(PK)를 사용한다. 참조 무결성 - 참조 관계에 있는 데이터는 유효한 데이터를 참조해야 한다. - 참조 무결성을 지키기 위해 제약 조건으로 외래키(FK)를 사용한다. 도메인 무결성 - 하나의 도메인(컬럼)을 구성하는 개체들은 모두 같은 타입이어야 한다. - 컬럼 타입을 지정하여 해당 컬럼의 도메인 무결성을 유지할 수..
서브 쿼리 - 쿼리문 내부에 포함된 또 다른 쿼리문 - 서브 쿼리를 포함하고 있는 쿼리를 메인 쿼리라고 부른다. - 서브 쿼리의 실행 결과에 따라 단일 행 서브 쿼리와 다중 행 서브 쿼리로 분류된다. - 단일 행 대상 연산자와 다중 행 연산자가 다르다. - 서브 쿼리는 비교 또는 연산 값으로 활용되거나 조회해야하는 테이블 대용으로 활용될 수 있다. 단일 행 서브 쿼리 - 서브 쿼리의 결과가 단 하나의 행인 경우 - 단일 값끼리 비교하는 일반 연산자를 사용할 수 있다. (=, >, = (SELECT salary FROM employees WHERE employee_id = 102); -- 테이블 대신 서브 쿼리 사용 SELECT * FROM (SELECT job_id, job_title FROM jobs ..
ANSI JOIN - ANSI에서 지정한 표준 JOIN 문법 - 다른 관계형 데이터베이스에서도 사용할 수 있는 표준 문법 * ANSI(America National Standard Institute) : 미국 국제 표준 기구 CROSS JOIN SELECT * FROM employees CROSS JOIN departments; INNER JOIN (조건을 충족하는 행만 등장하는 것) - 조인 조건에는 ON절을 사용하고 원하는 조건에는 WHERE절을 사용 - 조인하는 두 테이블이 조인하기 위해 사용하는 컬럼명이 같다면 USING을 사용 (조인에 사용된 컬럼이 맨 앞으로 이동되고, 중복도 제거된다.) SELECT * FROM employees e INNER JOIN departments d ON e.dep..
SELF JOIN - 하나의 테이블에서 자기 자신과 JOIN하여 원하는 데이터를 얻어내는 JOIN - 해당 테이블의 기본키를 같은 테이블의 다른 컬럼에서 외래키로 사용하는 경우 ex: employees의 manager_id SELECT * FROM employees; SELECT emp.first_name AS 사원이름, emp.salary AS 부하월급, mgr.first_name AS 담당매니저이름, mgr.salary AS 상사월급 FROM employees emp, employees mgr WHERE emp.manager_id = mgr.employee_id;
OUTER JOIN - JOIN 조건을 만족하지 못해 등장하지 못하는 행을 추가로 확인할 수 있는 JOIN - (+)를 붙인 쪽에 null을 추가해서 조건을 억지로 맞춰 등장하지 못했던 행을 조회한다. -- 일반적인 조인의 경우 외래키 컬럼에 null이 있으면 조회되지 않는 행이 존재한다. -- departments 쪽에 (+)를 붙이면 해당하는 부서가 없더라도 등장하게 된다. SELECT * FROM employees e, departments d WHERE e.department_id = d.department_id(+) ORDER BY employee_id; -- employees 쪽에 (+)를 붙이면 employees쪽에 null을 붙여서 등장하지 못했던 부서들이 등장한다. SELECT * FRO..