평가영역
- 기본 테이블
- 색인
와 드디어 SQL
기본 테이블
하기전에 SQL 특징
- 대화식 언어이며 내장언어
온라인 터미널을 통하여 대화식으로 사용가능, COBOL이나 C등 호스트 언어에서 내장언어로 사용가능 - 집합 단위로 연산하는 언어
관계형 데이터베이스가 집합을 근거로 하기때문에 레코드 단위 연산이 아닌 집합단위 연산 방식 - 비절차 언어
자료 접근을 위한 방식이나 경로 지정등의 절차를 기술할 필요가 없음 - 표현력이 풍부하고 구조가 단순
관계대수 언어만큼 표현 능력이 뛰어나며 select-from-where구조로 간단함
진짜 기본테이블
1. 테이블 정의
CREATE TABLE 테이블명(필드명 데이터 타입 UNIQUE NOT NULL,
NAME CHAR(5)
);
- UNIQUE = 중복값 허용 안함
2. 테이블에 필드 추가
ALTER TABLE 테이블명 ADD 필드명 DATA_TYPE [제약조건];
3. 테이블에 필드 삭제
ALTER TABLE 테이블명 DROP 필드명 [CASCADE|RESTRICT];
4. 테이블에 필드 수정
ALTER TABLE 테이블명 ALTER 필드명 [제약조건];
5. 제약조건 삭제
DROP CONSTRAINT 제약조건명;
6.테이블 삭제
DROP TABLE 테이블명 CASCADE;
- CASCADE = 이 테이블을 참조한 인덱스나 뷰, 제약조건도 함께 삭제된다.
- RESTRICT = 이 테이블을 참조한 인덱스나 뷰, 제약조건이 있으면 테이블이 삭제되지 않는다.
색인(index)
응용 프로그램에서 찾고자 하는 레코드를 쉽게 검색하기 위해 각 레코드의 저장위치를 목록으로 작성한 것
- 기본키 색인
기본키값마다 해당하는 레코드의 저장위치를 설정한것. 모든 기본키는 자동으로 색인화 된다. - 분류키 색인
기본키가 아닌 속성중 색인을 설정한 것. 반드시 단일 속성별로 설정하지 않아도 된다.
색인을 무분별하게 생성하면 데이터에 입력, 갱신, 삭제 등 작업이 이루어 질때마다 색인테이블 또한 갱신이 필요해지므로 추가적인 비용이 발생한다.
인덱스 생성
CREATE (UNIQUE|CLUSTER) INDEX 인덱스명
ON 테이블명(컬럼명1 ASC, 컬럼명2 DESC, 컬럼명3);
- UNIQUE = 대상이 되는 컬럼에 중복되는 값이 있을 수 없다.
- CLUSTER = 인덱스를 생성할데 데이터를 인덱스 정렬에 맞게 정렬한다.(테이블당 하나만 생성가능)
- ASC = 오름차순 (디폴트값)
- DESC = 내림차순
인덱스 삭제
DROP INDEX 인덱스명;