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