본문 바로가기

Programming

(111)
DAY 64. [DataBase] 객체 SEQUENCE SEQUENCE 오라클에서 제공하는 객체이다. 순차적으로 정수 값을 자동으로 생성하는 객체이다. 자동 번호 발생기 역할을 한다. -- [표현식] CREATE SEQUENCE 시퀀스명 [START WITH 숫자] -- 처음 발생시킬 시작 값, 기본 값 1 [INCREMENT BY 숫자] -- 다음 값에 대항 증가치, 기본 값 1 [MAXVALUE 숫자 | NOMAXVALUE] -- 발생시킬 최대값, 10의 27승-1까지 가능 [MINVALUE 숫자 | NOMINVALUE] -- 발생시킬 최소값, -10의 26승 [CYCLE | NOCYCLE] -- 시퀀스가 최대값까지 증가 완료 시 CYCLE은 START WITH 설정 값으로 돌아간다. NOCYCLE은 에러 발생한다. / 값의 반복|순환 여부를 결정 [CA..
DAY 64. [DataBase] 객체 VIEW VIEW SELECT 쿼리의 실행 결과를 화면에 저장한 논리적 가상 테이블이다. 실제 테이블과는 다르게 실질적 데이터를 저장하고 있진 않지만 사용자는 테이블을 사용하는 것과 동일하게 사용이 가능하다. 실제 데이터를 저장하는 게 아니라 SQL 쿼리문을 가지고 있는 것이다. ** 서브쿼리의 SELECT 절에 함수가 사용된 경우 반드시 별칭을 지정해야 한다. ** 생성된 뷰를 가지고 DML 구문(INSERT, UPDATE, DELETE) 사용이 가능하다. ** 생성된 뷰에 요청한 DML 구문은 베이스 테이블의 데이터들도 변경이 가능하다. VIEW 옆에 ( 컬럼 별칭 )을 지정할 수 있다. 대신에 이 방법은 서브 쿼리 안에 있는 모든 컬럼들에도 별칭을 부여해야 한다. 서브 쿼리의 SELECT 절에 함수나 산술 ..
DAY 56. [DataBase] 오라클 DML(INSERT, UPDATE, DELETE) DML(Data Manipulation Language) 데이터 조작 언어로 테이블에 값을 **삽입(INSERT), 수정(UPDATE), 삭제(DELETE)**하는 구문을 말한다. INSERT 테이블에 새로운 행을 추가하여 테이블의 행 개수를 증가시키는 구문 ** INSERT하고자 하는 컬럼이 모든 컬럼인 경우는 컬럼명 생략이 가능하다. 단, 컬럼의 순서를 지켜서 VALUES 값을 기입해야 한다. ** INSERT 시 VALUES 대신 서브쿼리의 결과를 바로 INSERT 구문 안에 사용할 수 있다. 대신, 테이블의 컬럼 갯수와 데이터 타입이 서브쿼리로 정한 SELECT절의 결과와 동일해야 한다. ◾ INSERT ALL 서브쿼리가 사용하는 테이블이 같은 경우, 두 개 이상의 테이블에 INSERT ALL을 ..
DAY 55. [DataBase] 오라클 DDL(ALTER, DROP) DDL(Data Definition Language) 데이터 정의 언어 객체를 만들고 수정하고 삭제하는 구문을 말한다. 02. ALTER 오라클에서 제공하는 객체를 수정하는 구문 테이블에 정의된 내용을 수정할 때 사용하는 데이터 정의어 ▪️ 수정할 수 있는 내용 컬럼의 추가/삭제 제약조건의 추가/삭제 → 수정은 불가능(삭제 후 새로 추가해야 한다.) 컬럼의 자료형 변경 DEFAULT 값 변경 테이블 명/컬럼 명/ 제약 조건명(제약 조건 자체는 생성 or 삭제만 가능하고 이름을 바꿀 수는 있다.) 컬럼 추가 ALTER ~ ADD 컬럼 수정 ALTER ~ MODIFY 컬럼 삭제 ALTER ~ DROP ** 컬럼 삭제 시 참조하고 있는 컬럼이 있다면 컬럼 삭제가 불가능하다. 제약조건 추가 ADD CONSTRA..
DAY 53. [DataBase] 오라클 DDL(CREATE), 제약조건 DDL (Data Definition Language) 오라클에서 제공하는 객체를 만들거나(CREATE) 변경하거나(ALTER) 삭제(DROP)하는 쿼리문 값(데이터)을 가지고 하는게 아니라 데이터 구조 자체를 정의하는 언어 db 관리자나 설계자들이 주로 사용한다. 테이블(TABLE), 뷰(VIEW), 시퀀스(SEQUENCE), 인덱스(INDEX), 패키지(PACKAGE), 프로시저(PROCEDUAL), 함수(FUNCTION), 트리거(TRIGGER), 동의어(SYNONYM), 사용자(USER) 01. CREATE 테이블, 인덱스, 뷰 등 데이터 베이스 객체를 생성하는 구문 [표현법] CREATE TABLE 테이블명(컬럼명 [공백] 자료형(크기), 컬럼명 자료형(크기), ...); -- 테이블 내의 컬럼..
DAY 52. [DataBase] 오라클 서브쿼리 SUBQUERY SUBQUERY SELECT 문장 안에 포함된 또 다른 SELECT 문장으로 메인 쿼리가 실행되기 전 한 번만 실행된다. 비교 연산자의 오른쪽에 기술해야 하고, 반드시 괄호로 묶어야 한다. 서브쿼리와 비교할 항목은 반드시 서브쿼리의 SELECT한 항목의 개수와 자료형을 일치시켜야 한다. 1. 단일행 서브쿼리 (SINGLE ROW SUBQUERY) ▶️ 서브쿼리의 조회 결과 값의 개수가 1개인 서브쿼리 단일행 서브쿼리 앞에는 일반 연산자를 사용해서 값을 비교할 수 있다. ( , ≤, ≥, =, ≠//^= (서브쿼리) ) 메인 쿼리에서 비교할 컬럼 값을 가지고 서브쿼리 구문을 작성해서 값을 비교할 수 있다. 단일행, 단일열의 형태 2. 다중행 서브쿼리 (MULTI ROW SUBQUERY) ▶️ 서브쿼리의 조..
DAY 51. [DataBase] 오라클 JOIN JOIN 하나 이상의 테이블에서 데이터를 조회하기 위해 사용한다. 수행 결과는 하나의 Result Set으로 나온다. 관계형 데이터 베이스는 최소한의 데이터를 테이블에 담고 있는다. 그 방법으로 중복을 최소화하고 데이터를 쪼개서 저장, 관리한다. 이 때, 데이터의 무결성(데이터가 일관성 있게 유지되는 것)이 중요하다. 하나의 테이블에서 데이터가 변경되면 나머지 테이블에도 영향을 주기 때문에 JOIN을 통해서 여러 테이블에 있는 데이터를 하나로 합쳐서 가져오게 된다. 즉, SQL문을 사용해서 여러 테이블들 간의 관계를 활용해서 데이터를 하나의 Result Set의 형태로 조회하는 방법이다. 01. 오라클 전용 구문 FROM 절에 ',' 로 구분하여 합칠 테이블 명을 나열하여 기술하고, WHERE 절에 합치..
DAY 50. [DataBase] 오라클 UNION 집합 연산자 여러 개의 SELECT 결과물을 하나의 쿼리로 만드는 연산자 UNION 여러 개의 쿼리 결과를 합치는 연산자로 중복된 영역은 제외하여 합침 두 쿼리문을 수행한 결과 값을 더한 후에 중복되는 행은 중복을 제거한다. UNION ALL 여러 개의 쿼리 결과를 합치는 연산자로 중복된 영역 모두 포함하여 합침 UNION과 동일하게 두 쿼리문을 수행한 결과값을 더하고 중복은 허용한다. 컬럼명은 선행하는 결과값 컬럼값으로 고정이 된다. 각각 컬럼에 해당하는 데이터 타입이 같고, 갯수도 같아야 한다. (컬럼명은 달라도 상관없음) INTERSECT(교집합) 여러 개의 SELECT 결과에서 공통된 부분만 결과로 추출 두 쿼리문을 수행한 결과값에 중복된 결과값만 추출한다. MINUS(차집합) 선행 SELECT ..