슬라이드 제목 없음

Download Report

Transcript 슬라이드 제목 없음

제 5 장 SQL 질의어
1. 개요
2. 데이터 정의 기능
3. 데이터 조작 기능
4. 뷰
0
1. 개요
 질의어
컴퓨터의 데이터베이스에 정보를 저장하거나 저장되어 있는 정보를 추출하기 위해서 사
용하는 언어(명령어)를 질의어라 한다. 질의어의 종류에는
1. 사람의 말을 인식하여 그 결과를 음성으로 들려 주는것이 가장 이상적인 질의어 이고,
2. 다음 단계는 자연어 처리기로 예를 들어 “8월 매출이 가장 많은 직원의 이름은 ?”
이라고 입력하면 “김판매”라고 출력되는 질의어 이며,
3. 우리가 배울 질의어는 “SELECT 이름 FROM 직원 ” 같은 문자 형태이다.
 SQL
Structured Query Language ( 에스큐엘 이라고 읽는다. )
SQL은 데이터베이스 질의어의 한가지 이다.
상업용 데이터베이스 관리 시스템을 개발하고 판매하는 회사에서 데이터베이스 사용자
나 개발자들이 이용하기에 편리하도록 개발하여 제공한다.
1
1. 개요 - 1.1 SQL 역사
 SQL 질의어의 시조 – SEQUEL
1970년대 초 미국 IBM 연구소에서 최초 개발
1976년 기능을 보완하여 SEQUEL 2로 발전.
-
DBMS를 제공하는 회사에서 각기 상이한 형태의 질의어를 제공하였기 때문에 사용자
가 다른 DBMS를 이용하기 위해서는 그 시스템의 질의어를 새롭게 익혀야하는 문제점
이 있었음.

1986년 ANSI 와 ISO가 공동으로 SQL의 표준화 작업을 진행

현재 표준화 작업은 계속 진행되고 있음.
2
1. 개요 - 1.2 SQL 구성
 SQL은 데이터정의어와 데이터조작어, 데이터제어어로 나눌 수 있다.
 데이터 정의어( DDL) : 데이터가 저장되는 테이블(릴레이션)을 생성,
변경, 삭제하는 기능을 제공하며, 테이블에 저장된 데이터를 빨리 접
근하기 위한 인덱스(index)를 정의하고, 뷰(view)를 정의할 수 있는 기
능을 포함한다.
 데이터 조작어(DML) : 테이블에 데이터를 삽입하고, 저장 데이터 중
조건에 맞는 것들을 검색하며, 불필요한 데이터를 삭제하는 기능을 제
공.
 데이터제어어(DCL) : 데이터베이스의 사용자 권한 부여 같은 일반
관리와 백업 복구 등 트랜잭션 관리를 위해 사용되는 명령.
3
SQL 질의어 구성
SQL
데이터 정의어
데이터 조작어
데이터 제어어
(DDL : Data Definition Language)
(DML : Data Manipulation Language)
(DCL : Data Control Language)
• 테이블 생성 기능(create table)
• 테이블 변경 기능(alter table)
• 데이터 검색 기능(select)
• 테이블 삭제 기능(drop table)
• 데이터 삽입 기능(insert)
• 뷰 생성 기능(create view)
• 데이터 삭제 기능(delete)
• 뷰 삭제 기능(drop view)
• 데이터 수정 기능 (update)
• 권한 부여와 회수 (grant, revoke)
• 트랜잭션관리 (commit, rollback)
:
:
4
예제 데이터베이스의 항목 설명
[회사] 예제 데이터베이스의 구성
• 부서
부서코드
부서명
사무실
전화
: 회사 내에 있는 부서들에 대한 정보를 포함하는 테이블
: 부서들을 유일하게 식별할 수 있는 구분 코드
: 학부 이름
: 건물 내 사무실 번호
: 부서의 전화번호
• 사원
사원번호
이름
부서코드
주소
호봉
: 회사에 근무하는 사원들에 대한 정보를 포함하는 테이블
: 사원들을 유일하게 식별할 수 있는 구분 코드
: 사원의 이름
: 사원이 소속되어 있는 부서의 부소코드
: 사원의 거주 시도 명칭
: 사원의 호봉
• 부양가족
일련번호
이름
부양사원
성별
: 사원들이 부양하는 부양가족 정보를 포함하는 테이블
: 자동으로 증가되는 일련번호
: 부양가족의 이름
: 부양가족을 부양하는 사원의 사원번호
: 부양가족의 성별
5
예제 데이터베이스
부서
사원
부서코드
부서명
사무실
전화
C01
인사부
A601
1171
C02
총무부
A602
1181
부양가족
사원번호
이름
부서코드 주소
호봉
C0101
유승우
C01
서울
25
C0102
박웅신
C01
인천
18
C0103
허영무
C01
경기
16
C0104
황민규
C01
12
일련번호
이름
부양사원
성별
C0201
차승익
C02
서울
22
1
문미영
C0101
여
C0202
이재우
C02
서울
15
2
최선자
C0102
여
3
박채원
C0102
여
4
이현주
C0103
여
5
허누리
C0103
여
6
허광옥
C0202
여
7
이기헌
C0202
남
8
이기훈
C0202
남
6
2. 데이터 정의 기능
SQL 질의어에서 지원하는 대표적인 데이터 정의 기능은
릴레이션(테이블) 생성(create), 변경(alter), 삭제(drop) 기능이다.
 2.1 테이블 생성 [create table]
- 명령어 : create table
- 구문형식
create table 테이블_이름
( 열_이름 데이터_유형 [not null],
:
[primary key(열_이름_리스트)]
);
예)
Create table 학생
( 학번 char(10),
이름 varchar(50),
:
생년월일 Date )
# [ ] 안의 내용은 생략 가능
7
2.1.2 데이터 유형 요약
 데이터 유형
• 문자
(계산이
필요없다)
• 숫자
(계산이 필요하면)
고정
char( n )
(자료의 길이가 모두 같다.)
가변
varchar( n )
(자료에 따라 길이가 틀리다.)
integer
예) 학번, 주민번호, 우편번호, …
예) 학과명, 이름, 주소, …
예) 성적, 급여,
• 날짜
• 시간
date
time
8
2.1.2 데이터 유형 요약
유 형
의
미
char(n)
사용자가 지정한 길이(n) 만큼의 고정 길이 문자열을 정의하는 것으로, character로
표기해도 된다.
varchar(n)
사용자가 지정한 최대 길이(n)만큼의 가변 길이 문자열을 정의하는 것으로,
character varying 으로 표기해도 된다.
integer
정수형 데이터를 정의하는 것으로, integer로 표기해도 된다. 일반적으로 정수형
데이터의 길이는 사용 컴퓨터 기종마다 상이하기 때문에 컴퓨터 기종에 의존적이다.
date
년, 월, 일을 포함하는 날짜 유형이다.
time
시, 분, 초를 포함하는 시간 유형이다.
9
2.2 테이블 제거와 변경
 2.2.1 테이블 제거 (drop table)
- 명령어 : drop table
- 구문형식
drop table 테이블_이름
10
2.2 테이블 제거와 변경
 2.2.2 테이블 변경 (alter table)
- 테이블에 속성을 추가하거나 제거하는 기능
- 명령어 : alter table
- 구문형식
<속성 추가>
alter table 테이블_이름 add 열_이름 데이터_유형
<속성 제거>
alter table 테이블_이름 drop 열_이름
11