코딩공작소

기본 SQL 본문

어플리케이션개발/DB

기본 SQL

안잡아모찌 2018. 11. 9. 00:52

SQL 언어

 - 관계 DB관리를 위한 표준 DB언어

 - Structured Query Language


Data Definition Language(DDL)

 - 스키마를 정의하는 언어

 - 스키마, 테이블 ,무결성 제약조건, 뷰 , 인덱스의 생성 , 드랍, alter

 - DBA에 의해 사용되며 악용을 방지한다.


Data Manipulaiton Language(DML)

 - 테이블의 인스턴스를 조작한다.

 - 삽입, 업데이트, 삭제, 쿼리 인스턴스

 - 앱 개발자 혹은 인터렉티브 유저에 의해 사용된다.


Data Control Language(DCL)

 - 접근 권리를 조절하고 백업과 복구 기능

 - DBA에 의해 사용된다.

Tuple ~ record

Attribute ~ field

하드웨어에서는 relation file




<기본 데이터 타입>

Numeric : Integer numbers(INTEGER, INT ,SMALLINT) , Floating-point(real) numbers :FLOAT or REAL and DOUBLE PRECISION

Character-string : Fixed length( CHAR(n), CHARACTER(n) ) , Varying length( VARCHAR(n), CHAR VARYING(n), CHARACTER VARYING(n) )

Bit-string : BIT(n), BIT VARYING(n)

Boolean : Values of TRUE or FALSE or NULL

DATE : YYYY-MM-DD



<도메인>

 - 스키마의 가독성을 증가시킨다.

 - 속성의 특징을 사용하여 이름을 짓는다.

 - 도메인에 데이터 타입을 바꾸는 것을 더 쉽게 만든다.   ex) create domain SSN_TYPE as char(9);


테이블을 만들면 실제 stored DB에 file, record, file이 저장된다.


<View>

 - Virtual relation ( 뷰는 DBMS가 따로 저장하기 위한 공간을 만들지 않는다.)

 - 뷰는 데이터에 저장된 쿼리들의 집합의 결과이다. 


<가상 뷰>

 - 질의들을 간단히 작성할 수 있다.

 - 최신 정보를 유지 한다.

 - Stored DB에 공간을 차지하지 않는다.

 - 정의 변경 불가

 - 삽입,갱신,삭제에 많은 제약조건

 - 짧은 시간 동일한 뷰에 많은 질의가 적용될 시 비효율적이다.


<실제 뷰>

 - 짧은 시간에 동일한 뷰에 많은 질의가 적용되면 효율적이다.

 - 질의 처리 속도가 빠르다.

 - Stored DB에 공간을 차지함.

 - 지속적으로 갱신해야 한다.


 

*뷰를 만들때

 - 각 어플에서 필요로 하는것을 만든다.

 - 자주 이용될 질의를 만든다.

 - 실행시간을 증진하진 않지만 복잡한 질의를 대신함 --> stored DB에 저장X , Meta DB에 어떤 형태로 저장된지 나타낸다.



CREATE SCHEMA or CREATE DATABASE : 스키마를 생성한다.

CREATE TABLE company.employee or employee : 테이블을 생성한다. 테이블과 그것의 튜플들은 실제로 생성되며 DBMS에 의해 파일로 저장된다.

DROP TABLE : 테이블을 삭제한다. DB or table 삭제는 undo가 되지 않으며, 거의 사용하지 않는다.  cascade and restrict

ALTER TABLE : 추가하거나 지운다. 일부분의 제약조건 변경 or 삭제의 경우. 칼럼의 정의를 바꾼다. 제약조건을 추가하거나 삭제한다.

ex) alter table company.employee add column job varchar(12);

ex) alter table company.employee drop constraint emsuperkey cascade



<제약조건 구체화>

 - 키와 참조 무결성 제약조건

 - 도메인 앤티티 무결성 제약조건

 - 관계내에 있는 개별 튜플들에 대한 제약조건


<키와 참조무결성 제약조건>

 - Primary key clause : 관계의 주 키를 구성하는 하나 이상의 속성을 구체화한다. Dnumber INT PRIMARY KEY

 - UNIQUE clause : 두번째 키를 구체화한다. Dname VARCHAR(15) UNIQUE;

 - Foreign key clause : 외래 키안에 속성들은 주키 속성 PK와 같은 도메인을 갖는다. Default operation(reject update on violation)

 - 외래키를 선언해줄때 참조해야할 테이블이 먼저 존재하지 않으면 에러라고 나온다. 

 - 각 관계가 서로를 참조할때 circular references.


 



<속성 도메인 제약과 널>

 - 널은 특정 속성에 대해서는 허락되지 않는다.

 - Default value









'어플리케이션개발 > DB' 카테고리의 다른 글

형식 DB언어  (0) 2018.11.21
SQL DML  (0) 2018.11.15
데이터베이스물리설계  (0) 2018.11.07
File  (0) 2018.10.21
DB하드웨어(디스크저장,기본파일구조,해싱)  (0) 2018.10.21