Cute Hello Kitty Kaoani

Database

Database/SQL

[SQL] Java를 사용한 데이터베이스 응용프로그램의 개발 - JDBC

JDBC JAVA 언어를 사용하여 응용프로그램을 개발하는 경우, 가장 널리 사용되는 표준적인 DBMS 인터페이스 방식 DBMS에 접근하여 데이터를 사용하기 위한 Java API 제공 💡 기능 DBMS 서버에 접속 SQL 문을 전송 전달된 결과를 처리 💡 종류 🎀 Type 1: JDBC-ODBC 브리지와 ODBC 드라이버 사용 🎀 Type 2: Native-APi (클라이언트 라이브러리) + Java JDBC 드라이버 🎀 Type 3: 순수 Java JDBC 드라이버 + 서버 라이브러리 🎀 Type 4: 순수 Java JDBC 드라이버 Type1, Type2는 드라이버 외 부가적인 라이브러리 사용 Type3, Type4는 드라이버 외 부가적인 라이버러리 사용 X Type3은 여러 DBMS에 접근 가능 Ty..

Database/SQL

[SQL] 트리거

트리거 테이블에 이벤트가 발생하면 자동으로 실행되는 작업 데이터베이스 작업을 제한하거나, 작업의 기록log, 작업에 대한 감사audit를 수행하기 위해 사용 트리거의 구성요소 : 이벤트, 조건, 동작 행 트리거 : 테이블 내에 변경되는 행에 대해 각각 실행 문장 트리거 : INSERT UPDATE DELETE 문장 전체에 대해 실행 [트리거 정의] CREATE\[OR REPLACE\] TRIGGER \[BEFORE|AFTER\] \[INSERT|UPDATE|DELETE\] ON \[FOR EACH ROW|FOR EACH STATEMENT\] \[WHEN condition\] BEGIN ... END; [트리거 삭제] DROP TRIGGER [트리거 카탈로그] ALL_TRIGGERS : 데이터베이스 내의 ..

Database/SQL

[SQL] 함수

함수 SP와 동일하게 데이터베이스에 저장되는 서브루틴이며 값을 리턴할 수 있다 함수는 SQL 문장 내에서 사용 가능 [함수 정의] CREATE\[OR REPLACE\] FUNCTION { \[IN|OUT|IN OUT\] (data\_type), \[IN|OUT|IN OUT\] (data\_type), ... } IS|AS ... return data\_type; BEGIN ... return expression; END; [함수 삭제] DROP FUNCTION [함수 카탈로그 정보] ALL_OBJECTS : where 절 조건에 object_type = 'FUNCTION' 사용 USER_PROCEDURES : 사용자가 정의한 프로시저 및 함수 USER_SOURCE : 함수 소스 코드( 컴파일 에러 발생도..

Database/SQL

[SQL] 저장 프로시저(SP)

저장 프로시저(SP, Stored Procedure) 데이터베이스 내에 저장된 서브루틴 영구저장모듈(PSM) 이라고도 함 데이터 뿐만아니라 처리 로직을 DB에 저장할 수 있음을 의미 SQL/PSM 표준이 있으나 DBMS 별로 구문에 차이가 존재 Oracle의 경우 PL/SQL : 표준 SQL 언어 + 변수, 정의, 조건문, 반복문 등의 기능을 가짐 범용 프로그래밍 언어 사용 가능 (Oracle의 경우 Java) 💡 저장프로시저의 장점 하나의 요청으로 일련의 SQL문을 수행 미리 컴파일되어 있는 코드를 실행하므로 처리시간이 줄어듬 응용프로그램 수준의 데이터 무결성 관리를 대신함 응용프로그램을 수정하지 않고서도 프로그램의 동작을 변경 💡 저장프로시저의 단점 DBMS 별로 SP 지원 방식 및 기능에 차이가 있..

Database/SQL

[SQL] View

View 란? 다른 테이블로 유도된 가상의 테이블 기본 테이블은 데이터가 실제 데이터베이스에 저장되지만 뷰의 경우 정의만 저장 뷰를 기반으로 새로운 뷰를 정의할 수 있음 create view [컬럼 이름 리스트] as select 문 [with check option]; -- where 절이 만족되는지 체크 (생략가능) select 문은 union 또는 order by를 포함할 수 없음 컬럼명을 지정하지 않으면 select 결과의 컬럼명과 동일 View 의 확인 all_catalog : 테이블, 뷰, 시퀀스 확인 all_view : 뷰의 정의 확인 View 의 삭제 drop view [restric|cascade] restric : 가 다른 곳에 사용되지 않을 때만 삭제 cascade : 해당 뷰를 사용..

Database/SQL

[SQL] DML/SELECT (Advanced)

부속질의 select문 안에 포함된 select문 --'C413'과목을 등록한 학생 이름을 검색하라 select sname from STUDENT where sno in (select sno from ENROL where cno = 'C413'); --학번이 100인 학생과 동일한 학과에 속한 학생을 모두 찾아라 select sname from STUDENT where dept = (select dept from STUDENT where sno = 100 ); 카티션 프로덕트 from절에 여러 개의 테이블을 지정하면 카티션 프로덕트 생성 select * from STUDENT, ENROL; 조인 Join은 자식테이블의 외래키와 부모테이블의 기본키 사이에서 자주 사용 아무 관계가 없는 테이블의 컬럼들 사이..

Database/SQL

[SQL] DML/INSERT, UPDATE, DELETE

데이터 조작어 데이터 조작을 위해서는 CREATE, READ, UPDATE, DELETE 연산이 가능해야함 SQL의 DML은 insert, select, update, delete 명령문에 해당 💡insert insert into values (...); 💡 update : 레코드 값을 변경 update set , ... (where 조건식) 💡 delete : 테이블 내 행 삭제 delete _\-- 테이블 내의 모든 행 삭제_ delete where 조건식 _\-- 조건에 해당하는 행 삭제_ 🎀 delete와 drop table 과의 차이점 drop table은 테이블의 정의까지 삭제 delete는 테이블 정의는 남아있음 💡 commit 이전 commit 시점부터 현재 commit 명령 실행 시점까지..

Database/SQL

[SQL] DML/SELECT (Basic)

💡 select : 조건에 맞는 데이터를 검색 select 컬럼1, 컬럼2 ... from [where ] -- '산공'과 4학년 학생들의 이름을 찾아라 select sname from student where dept = '산공' and year = 4; -- 기말고사 또는 중간고사의 성적이 90점 이상인 학생들의 학번을 찾아라 select sno from enrol where midterm < finterm; 💡 select distinct : 중복된 레코드는 한 번만 출력 💡 order by : select 결과를 정렬하여 출력 asc : 오름차순 desc : 내림차순 select * from order by 컬럼1 [asc|desc]; select * from STUDENT order by yea..

Database/SQL

[SQL] DDL

테이블 생성 명령어 create table ( 컬럼1 자료형1 [constraint 제약조건이름] [제약조건], 컬럼2 자료형2 [constraint 제약조건이름] [제약조건], ... ); 제약조건 💡 not null : 해당 컬럼이 null값을 가지면 안됨 create table STUDENT ( sname nchar(3) constraint sname_always_exists not null -- 또는 sname nchar(3) not null -- 제약 조건의 이름이 주어지지 않은 경우에는 시스템이 자동으로 이름 생성 ); 💡 primary key : 해당 컬럼이 기본키임을 나타냄 테이블에 최대 한 번만 정의 null이 될 수 없음 create table STUDENT ( sno number(3)..

Database/SQL

[SQL] SQL 개요

SQL이란? 비절차적 데이터베이스 언어 DDL, DML, DCL 기능을 모두 포함 💡 테이블 생성 create table ( 컬럼1 자료형1, ); create table STUDENT ( sno number(3), sname nvarchar2(4), year number(1), dept nvarchar2(5) ); 💡 테이블 삭제 drop table 💡 데이터 삭제 insert into values ( 컬럼값1, 컬럼값2, ... ,컬럼값N ); insert into STUDENT values (100, '나수영', 4, '컴퓨터'); insert into STUDENT values (200, '이찬수', 3, '전기'); insert into STUDENT values (300, '정기태', 1, '..

Database/데이터베이스

[Database] 관계 데이터베이스

관계 데이터베이스 모든 데이터는 릴레이션으로 표현한다. 릴레이션 ≒ 테이블(표) 릴레이션 릴레이션 : 스키마 + 인스턴스 스키마 : 속성들의 집합 👉 시간에 따라 변하지 않음 인스턴스 : 투플들의 집합 👉 시간에 따라 변함 릴레이션의 특성 투플의 상이성 투플의 무순서성 속성의 무순서성 속성의 원자성 : 관계 데이터 모델은 정규화 릴레이션만을 대상으로 함 데이터베이스 키 키(key) 릴레이션 내의 투플을 항상 유일하게 식별할 수 있는 속성들의 집합 동일한 투플이 존재할 수 있다면 키가 될 수 없음 후보키(candidate key) 유일성, 최소성을 만족하는 키 -> 하나의 속성이라도 제외하면 키가 되지 못함 모든 릴레이션은 적어도 하나의 후보키를 갖음 슈퍼키(super key) 유일성은 만족하나 최소성은 ..