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