코딩공작소
기본 SQL 본문
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 |