Transcript 강의 10

웹 프로그래밍
HTML, 자바스크립트, ASP를 중심으로
제 10장 ASP와 데이터베이스 활용
최황규, 하진영 공저
목차
 제 10장 ASP와 데이터베이스 활용
– 10.1 데이터베이스
– 10.2 데이터베이스 관리 시스템(DBMS)
– 10.3 관계형 데이터베이스
– 10.4 SQL
– 10.5 SQL 문
– 10.6 MS-SQL Server 2000
– 10.7 MS-SQL Server 엔터프라이즈 관리자
– 10.8 쿼리 분석기
– 10.9 ODBC 설정
2
 10.1 데이터베이스
 데이터베이스란
– 데이터를 다루는 방법으로 데이터를 논리적으로 구
조화하여 모아놓은 것
– 각각의 데이터는 컴퓨터가 처리할 수 있는 일관성
있게 저장
– 방대한 데이터의 검색과 수정이 용이
3
 10.2 데이터베이스 관리 시스템
 데이터베이스 관리 시스템(DBMS)
– 데이터베이스를 생성하고 관리
– 사용자의 물음에 대한 대답 추출
4
 10.3 관계형 데이터베이스
 관계형 데이터베이스(Relational Database)
– 모든 데이터를 테이블(표) 형태로 저장
 테이블과 레코드
s_ID
name
sex
dept
E-mail
20071234
김철수
남
컴퓨터전공
[email protected]
20071235
김영희
여
수학과
[email protected]
20071357
김철수
남
전기공학과
[email protected]
학생 테이블(Table)
한 학생에 대한 정보를 묶어놓은 레코드(Record)
5
 10.3 관계형 데이터베이스





MS SQL Server
IBM DB2
Oracle
MySQL
Microsoft Access
MS-SQL Server 2005 or 2008 R2 Express with management tools
6
 10.3 관계형 데이터베이스
 테이블 정의
– 데이터를 표로 정리한 것
 데이터 속성
– 관계형 데이터베이스상의 열
 데이터베이스 스키마(Schema)
– 테이블의 열을 이루는 각 항목을 정의하여 만든 구
조틀
 테이블의 키 속성
– 한 테이블의 열들을 나타내는 속성 중 행과 행을 구
별할 수 있게 하는 속성
7
 10.4 SQL
 SQL (Structured Query Language)
– 데이터베이스에 직접 명령을 전달하는 언어
– 대문자 소문자 구분하지 않음
 SQL의 언어구성
– 데이터 정의언어 (DDL)
– 데이터베이스 제어언어 (DCL)
– 데이터베이스 관리언어 (DML)
8
 10.4 SQL
DML part of SQL:
SELECT - extracts data from a database
UPDATE - updates data in a database
DELETE - deletes data from a database
INSERT INTO - inserts new data into a databa
9
 10.4 SQL
The DDL part of SQL
CREATE DATABASE - creates a new database
ALTER DATABASE - modifies a database
CREATE TABLE - creates a new table
ALTER TABLE - modifies a table
DROP TABLE - deletes a table
CREATE INDEX - creates an index (search key)
DROP INDEX - deletes an index
10
 10.5 SQL 문
 테이블 관련 명령
– 테이블 생성
– 테이블 수정
– 테이블 삭제
 데이터 관련 명령
– 데이터 삽입
– 데이터 수정
– 데이터 삭제
– 데이터 검색
11
 10.5.1 테이블 생성
 테이블 생성을 위해서 ‘CREATE TABLE’ 문 사용
CREATE TABLE <테이블 이름> [테이블 제약조건]
(<애트리뷰트 이름> <데이터 타입> [애트리뷰트 제약조건],…
<애트리뷰트 이름> <데이터 타입> [애트리뷰트 제약조건]);
<테이블 이름> : 생성할 테이블 이름
[테이블 제약조건] : 생성할 테이블이 가지는 제약조건
<애트리뷰트 이름> : 테이블을 구성하는 애트리뷰트의 이름
<데이터 타입> : 애트리뷰트가 가지는 데이터의 타입
[애트리뷰트 제약조건] : 애트리뷰트가 가지는 제약조건
 학생 테이블을 생성하고 기본키를 학번으로 설정
CREATE TABLE STUDENT
( s_ID nvarchar(15) NOT NULL,
name nvarchar(5) NOT NULL,
sex nvarchar(2),
dept nvarchar(15) NOT NULL,
PRIMARY KEY(s_ID)
nvarchar(max)
);
12
Variable-length Unicode String
 10.5.2 테이블 수정
 테이블의 구조 변경을 위해서 ‘ALTER TABLE’ 문 사
용
ALTER TABLE <테이블 이름> {ADD|MODIFY|DROP}
(<애트리뷰트 이름> <데이터 타입> [애트리뷰트 제약조건],…
<애트리뷰트 이름> <데이터 타입> [애트리뷰트 제약조건]);
ADD : 테이블에 새로운 애트리뷰트를 추가
MODIFY : 기존에 있던 애트리뷰트를 수정
DROP : 기존에 있던 애트리뷰트를 삭제
 학생 테이블에 ‘E-MAIL’ 열 추가
ALTER TABLE STUDENT ADD E-mail nvarchar(30);
13
 10.5.3 테이블 삭제
 테이블을 삭제할 때는 ‘DROP TABLE’ 문 사용
DROP TABLE <테이블 이름>
 학생 테이블 삭제
DROP TABLE STUDENT;
14
 10.5.4 데이터 삽입
 테이블에 새로운 레코드 삽입하기 위해 ‘INSERT
INTO’ 문 사용
INSERT INTO <테이블 이름> [(<애트리뷰트 이름>,[,…,<애트리뷰트 이름>)]
{VALUES(<애트리뷰트 값> [,…,<애트리뷰트 값>])|<SELECT 문>};
<테이블 이름> : 데이터를 삽입할 테이블
<애트리뷰트 이름> : 특정 애트리뷰트에만 값을 넣을 경우 지정
<애트리뷰트 값> : 넣고자 하는 애트리뷰트 값을 지정
<SELECT 문> : SELECT 문의 결과를 삽입할 때 쓰임
 새로운 학생을 학생 테이블에 등록
INSERT INTO STUDENT
VALUES ('20041357', ‘ 박 수 연 ’ , ‘ 여 ’ , ‘ 컴 퓨 터 전 공 ’ ,
‘[email protected]’);
15
 10.5.5 데이터 수정
 기존 테이블의 레코드를 수정 시 ‘UPDATE’문 사용
UPDATE <테이블 이름>
SET <애트리뷰트 이름> = <애트리뷰트 값>
[,…, <애트리뷰트 이름> = <애트리뷰트 값>]
WHERE <조건>;
<테이블 이름> : 데이터를 수정할 테이블
<애트리뷰트 이름> : 수정하고자 하는 애트리뷰트
<애트리뷰트 값> : 지정한 애트리뷰트의 값이 이 값으로 바뀜
<조건> : 이 조건을 만족하는 투플에 대해서만 데이터를 수정, 생략 시 모든
투플의 해당 애트리뷰트의 값이 바뀐다.
 학번이 ‘20071235’ 인 학생의 E-mail 주소 변경
UPDATE STUDENT SET E-mail = '[email protected]'
WHERE s_ID = ‘20071235’;
16
 10.5.6 데이터 삭제
 테이블에서 조건에 맞는 행(레코드)을 삭제 시
‘DELETE FROM’ 문 사용
DELETE FROM <테이블 이름> WHERE <조건>;
<테이블 이름> : 데이터를 삭제할 테이블
<조건> : 이 조건을 만족하는 투플에 대해서만 데이터를 삭제, 생략 시 테이블의
모든 투플을 삭제
 학번이 ‘20071235’인 레코드 삭제
DELETE FROM STUDENT WHERE s_ID = ‘20071235’
17
 10.5.7 데이터 검색
 하나 이상의 레코드 검색 시 ‘SELECT’ 문 사용
SELECT <애트리뷰트 목록>
FROM <테이블 목록>
[WHERE <조건>]
[GROUP BY <그룹핑 기준 애트리뷰트 목록>]
[HAVING <그룹 조건>]
[ORDER BY <정렬 기준 애트리뷰트 목록>]
<애트리뷰트 목록> : 질의에서 검색될 애트리뷰트 이름의 목록
<테이블 목록> : 질의 처리를 위해 필요한 테이블 목록
<조건> : 질의에서 검색할 투플에 대한 조건(Boolean) 식
<그룹핑 기준 애트리뷰트 목록> : 지정한 그룹별로 검색
<정렬 기준 애트리뷰트 목록> : 검색 결과를 지정한 애트리뷰트를 기준으로 정렬
 학번이 ‘20071235’인 학생 검색
SELECT * FROM STUDENT WHERE s_ID = ‘20071235’;
18
 문자열은 홑따옴표 숫자는 따옴표 없음
SELECT * FROM Persons WHERE FirstName='Tove'
(대부분의 DBMS에서 곁따옴표를 써도 됨)
SELECT * FROM Persons WHERE Year=1965
19
Operators Allowed in the WHERE Clause
Operator
=
<>
>
<
>=
<=
BETWEEN
LIKE
IN
Description
Equal
Not equal
Greater than
Less than
Greater than or equal
Less than or equal
Between an inclusive range
Search for a pattern
If you know the exact value you want to
return for at least one of the columns
20
AND & OR Operators
SELECT * FROM Persons
WHERE FirstName='Tove'
AND LastName='Svendson'
SELECT * FROM Persons
WHERE FirstName='Tove'
OR FirstName='Ola'
21
ORDER BY
SELECT column_name(s)
FROM table_name
ORDER BY column_name(s) ASC|DES
SELECT * FROM Persons
ORDER BY LastName DESC
22
 SQL 명령어 끝의 세미콜론
DBMS에 따라 세미콜론을 요구하는 것도 있고 그렇지
않은 것도 있다.
MS Access과 SQL Server에서는 세미콜론은 요구하지
않음
23
SQL Data Types
http://www.w3schools.com/sql/sql_datatypes.asp
24
 10.9 ODBC 설정
 ODBC (Open DataBase Connectivity)
– DBMS에 관계없이 윈도우 환경하에 데이터베이스
에 연결하여 사용할 수 있도록 개발한 표준
– 데이터베이스에 연결하기 위해 DSN 설정이 필요
 DSN (Data Source Name)
– 데이터가 있는 곳을 알려주는 이름
25
 10.9 ODBC 설정
 제어판->관리도구->데이터원본으로 시작
26
 10.9 ODBC 설정
 ‘시스템 DSN 설정’ 탭 선택
27
 10.9 ODBC 설정
 ‘SQL Server’ 항목 선택 후 마침
28
 10.9 ODBC 설정
 데이터 원본에 사용할 이름 ‘WebDB’를 사용
 연결할 SQL Server 를 (local)로 지정
(local)\SQLEXPRESS
.\SQLEXPRESS
IP_address\SQLEXPRESS
29
 10.9 ODBC 설정
 ‘사용자가 입력한 로그인 ID 및 암호를 사용하는 SQL
Server 인증 사용’ 선택
 로그인 ID (sa)와 암호 설정
30
 10.9 ODBC 설정
 ‘기본 데이터베이스를 다음으로 변경’ 체크 후 WebDB
선택
31
 10.9 ODBC 설정
 SQL Server 시스템 메시지 언어를 Korean으로 선택
하고 마침
32
 10.9 ODBC 설정
 데이터 원본 테스트를 선택하여 테스트가 성공적인지
를 확인
33
 10.9 ODBC 설정
 ODBC 데이터 원본 관리자에서 추가된 WebDB 의
DSN이 추가된 것을 확인
34