1. 개념 서브쿼리(subquery)란 다른 쿼리 내부에 포함되어 있는 SELETE 문을 의미한다. 서브쿼리를 포함하고 있는 쿼리를 외부쿼리(outer query)라고 부르며, 서브쿼리는 내부쿼리(inner query)라고도 부른다. 서브쿼리는 다음과 같이 괄호() 로 감싸져서 표현 된다. - 실행 순서(서브쿼리 실행 → 메인(부모) 쿼리 실행) (select * from table) 같이 괄호()안에 있는 쿼리를 서브 쿼리라 말한다 서브쿼리(=자식쿼리, 내부쿼리) - 메인쿼리 컬럼 사용 가능 메인쿼리(=부모쿼리, 외부쿼리) - 서브쿼리 컬럼 사용 불가 2. 서브쿼리 위치에 따른 명칭 SELECT col1, (SELECT ...) -- 스칼라 서브쿼리(Scalar Sub Query): 하나의 컬럼처럼 사..
1. 프로시저 -- PLSQL(프로그래밍 SQL) /* 오라클에서 제공되는 프로그래밍 기능이다. 일반적인 프로그래밍과는 차이가 있지만, 오라클 내부에서 아주 적절한 방식을 적용해준다. 쿼리문의 집합으로 어떠한 동작을 일괄처리 하기 위한 용도로 사용됩니다. 절차형 SQL(PLSQL)은 코드 부분만 선택하여 f5로 컴파일 하여 실행합니다. */ -- 오라클에서는 출력 구문으로 나올 수 있는 것을 선언해줘야 함. (출력을 허용함) set serveroutput on; DECLARE -- 실행시키고 싶은 부분만 선택 후 f5로 실행 vi_num NUMBER; -- 변수 선언(변수명, 타입) BEGIN vi_num := 100; -- 대입(:= - 대입 연산자) DBMS_OUTPUT.PUT_LINE(vi_num)..
1. jdbc 다운로드 - 오라클 홈페이지 → jdbc 검색한 후 다운로드 - 다운받은 파일을 이클립스에서 폴더 생성 후 옮기기 - 이클립스에서 build path 들어가기 - JDBC insert import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; public class JDBCInsert { public static void main(String[] args) { //insert String url = "jdbc:oracle:thin:@localhost:1521:xe"; String uid = "hr"; //계정 String upw = "hr"; //비밀번호 String sql = "i..
1. 정규화 - 정규화 ( Normalization ) 정제되지 않은 데이터를 관계형 데이터베이스 어울리게 만들어주는 방법이다. 정규화는 1정규화 ~ 5정규화 까지 있지만, 실무에서는 대체로 1~3 정규화까지의 과정을 거친다. 제 1정규화 (First Nomal Form) - 도메인이 원자값 제 2정규화 (Second Nomal Form) - 부분적 함수 종속 제거 제 3정규화 (Thired Nomal Form) - 이행적 함수 종속 제거 BCNF (Boyce-codd Nomal Form) - 결정자가 키 값이어야 함 (보통 1정규화 과정에서 Cardinality를 생각하면 완료 된다) 제 4정규화 - 다치 종속 제거 제 5정규화 - 조인 종속성에 의해 정규화 2. 강의교안 12_논리적 데이터 모델링 문..
1. 롤 -- 롤을 이용한 생성 (여기) create user com02 identified by com02; -- 롤 grant connect, resource to com02; -- 테이블 스페이스 연결 alter user com02 default tablespace users quota unlimited on users; 2. 데이터 베이스 모델링 - draw.io - 새로운 다이어그램 만들기 - M:N 관계(암기) * 테이블로 만들 수 없어서 1:N으로 만들어주고 N에다 fk를 넣음 비식별 관계: 의사컬럼을 하나 넣음. 먼저 데이터가 들어가고 나중에 변경 가능 -fk는 null값을 가질 수 있으니까, 첫번째 그림처럼 비식별은 신청번호를 넣어주기 때문에 null값이 들어갈 수 있다는 것! (보통 많..
1. 인덱스 -- index -- index는 primary key, unique 제약 조건에서 자동으로 생성되고, 조회를 빠르게 해주는 hint 역할을 합니다. -- index 종류로는 고유, 비고유 인덱스가 있습니다. -- 유니크 컬럼에는 unique 인덱스, 일반 컬럼에서는 unique를 생략하고 지정할 수 있습니다. -- index는 조회를 빠르게 하지만, 무작위하게 많은 인덱스 생성해서 사용하면 오히려, 성능 부하를 일으킬 수 있습니다. -- 그래서 최후의 수단으로 index를 사용하는 것이 올바른 사용방법. create table emps2 as (select * from employees); -- 인덱스 없을 때 full 스캔 select * from emps2 where first_name..
1. 제약 조건 -- 테이블 생성과 제약 조건 -- primary key(테이블의 고유 키, 중복 X, null 허용 X) -- unique(중복 X) -- not null(null을 허용하지 않음) -- foreign key(참조하는 테이블의 pk를 저장하는 컬럼, 참조테이블의 pk에 없다면 등록 x, null 허용) -- check( 정의된 형식만 저장되도록 허용) -------------------------------------------------------------------------------- select * from user_constraints; -- 열레벨 제약 create table dept2 ( dept_no number(2) constraint dept2_no_pk prima..
1. DML -- Insert(행 삽입) DESC departments; --lst INSERT INTO departments VALUES(280,'개발자',null,1700); --2nd INSERT INTO departments(department_id , department_name , location_id ) VALUES (290,'DBA',1700); SELECT * FROM departments; rollback; -- 되돌리기 INSERT INTO departments VALUES(290,'디자이너',null,1700); INSERT INTO departments VALUES(300,'DB관리자',null,1800); INSERT INTO departments VALUES(310,'데이터분석..