본문 바로가기

데이터베이스(DB)
(45)
[Oracle] PL/SQL // ANSI-SQL - 비절차 지향 언어 - 순서가 없고 문장 간의 행동이 서로 독립적이다. - 문장 단위 구조 // PL/SQL - Oracle's Procedural Language Extension to SQL - ANSI-SQL에 절차 지향 언어의 기능을 추가한 SQL - ANSI-SQL + 프로그래밍 언어의 기능(변수, 자료형, 제어문, 메서드 ...) - ANSI-SQL의 환경과 거의 동일하게 구현 // 프로시저, Procedure - 메서드, 함수 ... - 순서가 있는 명령어(ANSI-SQL + PL/SQL)의 집합 - 장점 1. 단순화(모듈화) 2. 팀작업 원활 3. 저장 객체 > 공유 원활 4. 속도 향상★ - PL/SQL 프로시저 블럭 구조 > 4개의 키워드(블럭)으로 구성 a. d..
[Oracle] 복합키 // 복합키 - 두 개 이상의 속성을 묶음으로써 다른 속성과 구분 지어주는 방법 - 컬럼 수준에서는 기본키로 복합키를 선언할 수 없다. - 컬럼 수준에서는 복합키를 참조하는 외래키를 선언할 수 없다. - 주로 테이블 수준에서 복합키를 지정한다. --학생 create table tblStudent ( seq number primary key, --번호(PK) name varchar2(30) not null --학생명 ); --과목 create table tblSubject ( seq number primary key, --번호(PK) name varchar2(30) not null --과목명 ); --수강신청 create table tblRegister ( student_seq number referenc..
[Oracle] 데이터베이스 설계 // 데이터베이스 설계 1. 요구사항 수집 및 분석 2. 개념 데이터 모델링 3. 논리 데이터 모델링 4. 물리 데이터 모델링 5. 데이터베이스 구축 // 데이터 모델링 - 요구 분석을 기반으로 수집한 데이터를 분석하고 저장 구조를 생성한 후 도식화 하여 산출물(ERD)을 도출하는 것 - 데이터 저장을 위한 데이터 구조를 설계하는 작업 - DBMS 종류를 결정하지 않는다. a. 개념 데이터 모델링 : 간단하게 표현한 설계도 > 테이블 + 컬럼 + 관계 b. 논리 데이터 모델링 : 제대로 된 설계도 > 관계형 데이터베이스 성질 반영 > 속성 + 도메인 + 키 c. 물리 데이터 모델링 : 특정 DBMS 결정 > 오라클 선정 + 반영 > 물리적 설정 1. Entity, 엔티티 - 다른 엔티티와 분류될 수 있고..
[Oracle] 계층형 쿼리 // 계층형 쿼리, Hierarchical Query - 오라클 전용 - 레코드 관계가 서로 상하 수직구조일 때 사용 - 서로 다른 테이블 간의 관계가 수직 구조일 대 사용 - 자기 참조를 하는 테이블에서 사용(셀프 조인) - 트리 구조에 사용 - 사용 방법 1. 조인 2. 계층형 쿼리 ~ start with절 + connect by절 -계층형 쿼리 의사 컬럼 a. prior : 자기와 연관된 부모 레코드 참고 b. level : 세대수(depth) 1. join select c1.name as "부품명", c2.name as "부모부품명" from tblComputer c1 --자식부품 inner join tblComputer c2 --부모부품 on c2.seq = c1.pseq; 2. 계층형 쿼리 s..
[Oracle] Pseudo // pseudo, 의사컬럼 - 실제 컬럼이 아닌데 컬럼처럼 행동하는 요소 // rownum - 오라클 전용 - 행번호 > 레코드의 일련번호 - from절이 실행될 때 각 레코드에 일련번호를 할당한다.★★★★ - where절의 영향을 받으면 일련번호를 다시 정비한다.(reindexing) ★★★ ~ where rownum = 5 > null값 반환... > 반드시 1~ 조건의 범위로 사용해야 한다. - order by 전에 rownum이 매겨지기 때문에 order by를 할 경우 rownum이 뒤죽박죽 섞인다. > 서브쿼리 사용해야 함.. ~ select name, buseo, basicpay, rownum from (select name, buseo, basicpay, rownum from tblIns..
[Oracle]식별자 //식별자 정리 - 현재 접속중인 계정명은 생략 가능하다. select * from tblInsa; -- 생략 select * from hr.tblInsa; -- 계정명(스키마).테이블명 - 하나의 select문일 때 컬럼명에서 테이블명은 생략 가능하다. select name, buseo from tblInsa; -- 생략 select hr.tblInsa.name, hr.tblInsa.buseo from hr.tblInsa; -- 계정명(스키마).테이블명 - 와일드카드(*)와 다른 컬럼을 동시에 가져오는 방법 select tblInsa.*, sysdate from tblInsa; -- 테이블명.* - 테이블 별칭 - 최대한 줄여서, 보통 알파벳 1글자로 적는다. select i.*, sysdate fro..
[JDBC] *소소한 프로그래밍* package com.sorrel012.app.entity; import java.util.Date; public class Notice { private int id; private String title; private String writerId; private Date regDate; private String content; private int hit; public Notice(int id, String title, String writerId, Date regDate, String content, int hit) { this.id = id; this.title = title; this.writerId = writerId; this.regDate = regDate; this.content = ..
[JDBC] CRUD //CRUD Create : 생성 Read : 읽기(조회) Update : 수정 Delete : 삭제 - 효과적인 CRUD 작업을 위한 Service가 필요하다. - 데이터베이스의 테이블 역할을 하는 클래스를 생성한다. - 해당 테이블의 칼럼들은 클래스의 멤버 변수로 선언하고 생성자를 이용하여 초기화한다. ~ private으로 선언하고 Getter Setter 이용 - CRUD 각 기능에 맞는 메서드를 구현한다. package com.sorrel012.app.entity; import java.util.Date; public class Notice { private int id; private String title; private String writerId; private Date regDate; p..