Download - 제 1 강 SQL 개요
![Page 1: 제 1 강 SQL 개요](https://reader033.vdocuments.site/reader033/viewer/2022061502/56815b3f550346895dc91b4f/html5/thumbnails/1.jpg)
제 1 강 SQL 개요
데이터베이스 개론임덕성 교수
![Page 2: 제 1 강 SQL 개요](https://reader033.vdocuments.site/reader033/viewer/2022061502/56815b3f550346895dc91b4f/html5/thumbnails/2.jpg)
SQL 데이터 정의어1 강 SQL 개요
학습 목표학습목표
프로그래밍 언어와 데이터 접근 언어
SQL 언어의 기원과 특성
SQL 언어의 표준화
1
2
3
![Page 3: 제 1 강 SQL 개요](https://reader033.vdocuments.site/reader033/viewer/2022061502/56815b3f550346895dc91b4f/html5/thumbnails/3.jpg)
SQL 데이터 정의어1 강 SQL 개요
절차적 (Procedural) 프로그래밍 언어기계어 , 어셈블리 언어 , 고급 프로그래밍 언어 ( 포트란 , C, JAVA)
비절차적 (Non-procedural) 데이터 접근 언어SQL- 1970 년대 후반기에 개발- 애플리케이션 프로그램에서 손쉽게 데이터에 접근- 특정한 목적으로 상호 작용을 하면서 데이터에 접근
1. 프로그래밍 언어와 데이터 접근 언어
![Page 4: 제 1 강 SQL 개요](https://reader033.vdocuments.site/reader033/viewer/2022061502/56815b3f550346895dc91b4f/html5/thumbnails/4.jpg)
SQL 데이터 정의어1 강 SQL 개요
‘A Relational Model of Data for Large Shared Data Banks’(E.F. Codd, 1970.6)- 관계형 데이터 모델 구성요소 정의- ‘DSL/ 알파’라는 수학적 데이터 조작 언어 정의
2.1 SQL 기원
![Page 5: 제 1 강 SQL 개요](https://reader033.vdocuments.site/reader033/viewer/2022061502/56815b3f550346895dc91b4f/html5/thumbnails/5.jpg)
SQL 데이터 정의어1 강 SQL 개요
DSL/ 알파- 비 수학자가 이해하기 어려움SQUARE (Specifying Queries as Relational Expressions)- 아래첨자를 키보드로 입력하기 어려움SEQUEL (Structured English Query Language)- SQUARE 의 확장 / 향상SQL (Structured Query Language)- SEQUEL 이라는 이름이 트레이드 마크 문제로 SQL 로 변경
2.2 SQL 탄생
![Page 6: 제 1 강 SQL 개요](https://reader033.vdocuments.site/reader033/viewer/2022061502/56815b3f550346895dc91b4f/html5/thumbnails/6.jpg)
SQL 데이터 정의어1 강 SQL 개요
비 절차적 언어질의 (Query) 결과가 테이블 형태로 생성SQL 을 사용하여 데이터 사전 (Data Dictionary) 검색
널 (null) 을 제대로 처리하지 못하는 점동일한 질의를 여러 방법으로 작성하게 하는 점
3.1 SQL 언어 주요 특성과 단점
![Page 7: 제 1 강 SQL 개요](https://reader033.vdocuments.site/reader033/viewer/2022061502/56815b3f550346895dc91b4f/html5/thumbnails/7.jpg)
SQL 데이터 정의어1 강 SQL 개요
데이터 정의어 (DDL)- 데이터가 저장되는 테이블 ( 릴레이션 ) 을 생성 , 변경 , 삭제하는 기능
제공
- 테이블에 저장된 데이터를 빨리 접근하기 위한 인덱스 (index) 정의 및뷰 (view) 를 정의할 수 있는 기능 포함
데이터 조작어 (DML)- 테이블에 데이터를 삽입하고 , 저장 데이터 중 조건에 맞는 것들을
검색하며 , 불필요한 데이터를 삭제하는 기능 제공
• 대화식 DML : 사용자가 직접 데이터베이스에 접근하여 이용
• 삽입 DML : 개발자들이 응용 프로그램 제작 시에 이용
3.3 SQL 언어의 구성
![Page 8: 제 1 강 SQL 개요](https://reader033.vdocuments.site/reader033/viewer/2022061502/56815b3f550346895dc91b4f/html5/thumbnails/8.jpg)
SQL 데이터 정의어1 강 SQL 개요
SQL
데이터 정의어(DDL : Data Definition Language)
• 테이블 생성 기능 (create table)• 테이블 변경 기능 (alter table)• 테이블 삭제 기능 (drop table)• 뷰 생성 기능 (create view)• 뷰 삭제 기능 (drop view) 등
데이터 조작어(DML : Data Manipulation Language)
• 데이터 검색 기능 (select)• 데이터 삽입 기능 (insert)• 데이터 삭제 기능 (delete)
대화식 DML(Interactive DML)
내장 DML(Embedded DML)
3.3 SQL 언어의 구성 ( 계속 )
![Page 9: 제 1 강 SQL 개요](https://reader033.vdocuments.site/reader033/viewer/2022061502/56815b3f550346895dc91b4f/html5/thumbnails/9.jpg)
SQL 데이터 정의어1 강 SQL 개요
1986 년 발표첫번째 공식적인 SQL 표준CREATE 기능 등을 포함하는 기본 SQL 언어 정의DROP, ALTER, GRANT, REVOKE 기능 등은 제외
1989 년 발표무결성 증대 기능 (Integrity Enhancement Feature) 추가
4. SQL 언어의 표준화 (SQL-86, SQL-89)
![Page 10: 제 1 강 SQL 개요](https://reader033.vdocuments.site/reader033/viewer/2022061502/56815b3f550346895dc91b4f/html5/thumbnails/10.jpg)
SQL 데이터 정의어1 강 SQL 개요
1992 년 발표다양한 기능 추가- 외부조인- 날짜 / 시간 유형과 기타 유형- 표준화한 에러 리포팅- 표준화한 카탈로그 테이블의 집합- 동적인 스키마 조작 (DROP, ALTER, GRANT, REVOKE)- 종속된 (Cascaded) 변경과 삭제 참조 작업- 트랜잭션 일관성
4. SQL 언어의 표준화 (SQL-92)
![Page 11: 제 1 강 SQL 개요](https://reader033.vdocuments.site/reader033/viewer/2022061502/56815b3f550346895dc91b4f/html5/thumbnails/11.jpg)
SQL 데이터 정의어1 강 SQL 개요
1999 년 7 월 발표SQL-99 의 새로운 기능- 사용자 정의 프로시저와 함수- INSERT, UPDATE, DELETE 문장의 전후에 실행되는 행 수준 또는 문장
수준 데이터베이스 트리거- 부울형 데이터 유형과 대규모 객체 ( 이진 객체 , 문자 객체 )- 새로운 WHERE 술어 (for all, for some, similar to)- 보안 프로파일을 정의하기 위한 룰- 부분적으로 완료된 트랜잭션이 롤백할 수 있는 지점을 정의하는 저장점 (SAVEPOINTS)
4. SQL 언어의 표준화 (SQL-99)
![Page 12: 제 1 강 SQL 개요](https://reader033.vdocuments.site/reader033/viewer/2022061502/56815b3f550346895dc91b4f/html5/thumbnails/12.jpg)
SQL 데이터 정의어1 강 SQL 개요
학과 (DEPARTMENT) : 학과에 대한 정보를 포함하는 테이블 학과코드 (dept_no) : 학과를 유일하게 식별할 수 있는 속성 값 학과명 (dept_name) : 학과 이름 학과장 (chief) : 학과장을 맞고 있는 교수의 교수번호 조교 (assistant) : 학과의 조교 이름 전화 (dept_tel) : 학과의 전화번호 위치 (location) : 학과가 위치한 건물의 방 번호
교수 (PROFESSOR): 교수에 대한 정보를 포함하는 테이블 교수번호 (p_no) : 교수를 유일하게 식별할 수 있는 속성 값 이름 (p_name) : 교수의 이름 직급 (grade) : 교수의 직급 소속학과 (dept_no) : 교수가 소속된 학과의 학과코드 연구실 (room_no) : 교수의 연구실이 위치한 건물의 방 번호 전화 (p_tel) : 교수 연구실의 전화번호 주소 (p_address) : 교수의 집 주소 생년월일 (p_birth) : 교수의 생년월일 입사일 (join_date) : 교수의 입사일 호봉 (pay_step) : 교수의 호봉
5. 예제 테이블
![Page 13: 제 1 강 SQL 개요](https://reader033.vdocuments.site/reader033/viewer/2022061502/56815b3f550346895dc91b4f/html5/thumbnails/13.jpg)
SQL 데이터 정의어1 강 SQL 개요
강좌 (COURSE) : 강좌에 대한 정보를 포함하는 테이블 강좌번호 (c_no) : 강좌를 유일하게 식별할 수 있는 속성 값 강좌이름 (c_name) : 강좌의 이름 시수 (times) : 강좌의 시수 학점 (point) : 강좌의 학점 필수 / 선택 (R/O) : 강좌의 필수 · 선택 여부
학생 (STUDENT) : 학생에 대한 정보를 포함하는 테이블 학번 (s_no) : 학생을 유일하게 식별할 수 있는 속성 값 이름 (s_name) : 학생의 이름 학과 (dept) : 학생이 소속된 학과의 이름 학년 (year) : 학생의 학년 전화 (s_tel) : 학생의 집 전화번호 주소 (s_address) : 학생의 집 주소 지도교수 (advisor) : 학생의 지도교수를 가리키는 교수번호 생년월일 (s_birth) : 학생의 생년월일
5. 예제 테이블 ( 계속 )
![Page 14: 제 1 강 SQL 개요](https://reader033.vdocuments.site/reader033/viewer/2022061502/56815b3f550346895dc91b4f/html5/thumbnails/14.jpg)
SQL 데이터 정의어1 강 SQL 개요
강의 (LECTURE) : 강의에 대한 정보를 포함하는 테이블 강좌번호 (c_no) : 강의가 개설된 강좌번호 교수번호 (p_no) : 강의가 개설된 강좌를 담당하는 교수번호 요일 (day_week) : 강의 요일 시작시간 (start_time) : 강의 시작 시간 강의실 (room_no) : 강의가 진행되는 강의실 번호
등록 (ENROLLMENT) : 등록에 대한 정보를 포함하는 테이블 강좌번호 (c_no) : 학생이 강좌를 등록한 번호 학번 (s_no) : 강좌를 등록한 학생의 번호 성적 (grade) : 해당 강좌의 수강 성적 점수 (merits) : 해당 강좌의 수강 점수
5. 예제 테이블 ( 계속 )
![Page 15: 제 1 강 SQL 개요](https://reader033.vdocuments.site/reader033/viewer/2022061502/56815b3f550346895dc91b4f/html5/thumbnails/15.jpg)
SQL 데이터 정의어1 강 SQL 개요
학과 (DEPARTMENT) : 학과에 대한 정보를 포함하는 테이블 학과코드 (dept_no) : 학과를 유일하게 식별할 수 있는 속성 값 학과명 (dept_name) : 학과 이름 학과장 (chief) : 학과장을 맞고 있는 교수의 교수번호 조교 (assistant) : 학과의 조교 이름 전화 (dept_tel) : 학과의 전화번호 위치 (location) : 학과가 위치한 건물의 방 번호
CREATE TABLE department(
dept_no NUMBER(4),dept_name VARCHAR2(30),chief NUMBER(5),assistant VARCHAR2(10),dept_tel NUMBER(5),location VARCHAR2(6)
)
5. 예제 테이블
간단한 예제를 이용한 테이블 생성 , 데이터 삽입 , 데이터 검색
![Page 16: 제 1 강 SQL 개요](https://reader033.vdocuments.site/reader033/viewer/2022061502/56815b3f550346895dc91b4f/html5/thumbnails/16.jpg)
SQL 데이터 정의어1 강 SQL 개요
CREATE TABLE department(
dept_no NUMBER(4),dept_name VARCHAR2(20),chief NUMBER(5),assistant VARCHAR2(10),dept_tel NUMBER(5),location VARCHAR2(6)
)입력 데이터
학과코드 :001 학과명 :' 컴퓨터정보계열 ', 학과장 :0001, 조교 : '최수연 ', 전화 :5290, 위치 :‘M303'
5. 예제 테이블
간단한 예제를 이용한 테이블 생성 , 데이터 삽입 , 데이터 검색
입력 SQLINSERT INTO department VALUES (001, ' 컴퓨터정보계열 ', 0001, ' 최수연 ', 5290, 'M303');
![Page 17: 제 1 강 SQL 개요](https://reader033.vdocuments.site/reader033/viewer/2022061502/56815b3f550346895dc91b4f/html5/thumbnails/17.jpg)
SQL 데이터 정의어1 강 SQL 개요
CREATE TABLE department(
dept_no NUMBER(4),dept_name VARCHAR2(20),chief NUMBER(5),assistant VARCHAR2(10),dept_tel NUMBER(5),location VARCHAR2(6)
)입력 데이터
학과코드 :002 학과명 :‘ 간호학과 ', 학과장 :0002, 조교 : '박소연 ', 전화 :5317, 위치 :‘M404'
5. 예제 테이블
간단한 예제를 이용한 테이블 생성 , 데이터 삽입 , 데이터 검색
입력 SQLINSERT INTO department VALUES (002,' 간호학과 ', 0002, ' 박소연 ', 5317,'M404');
![Page 18: 제 1 강 SQL 개요](https://reader033.vdocuments.site/reader033/viewer/2022061502/56815b3f550346895dc91b4f/html5/thumbnails/18.jpg)
SQL 데이터 정의어1 강 SQL 개요
CREATE TABLE department(
dept_no NUMBER(4),dept_name VARCHAR2(20),chief NUMBER(5),assistant VARCHAR2(10),dept_tel NUMBER(5),location VARCHAR2(6)
)모든 부서의 정보를 출력하세요 .
5. 예제 테이블
간단한 예제를 이용한 테이블 생성 , 데이터 삽입 , 데이터 검색
입력 SQLselect * from department
DEPT_NO DEPT_NAME CHIEF ASSISTANT DEPT_TEL LOCATI 1 컴퓨터정보계열 1 최수연 5290 M303 2 간호학과 2 박소연 5317 M404
![Page 19: 제 1 강 SQL 개요](https://reader033.vdocuments.site/reader033/viewer/2022061502/56815b3f550346895dc91b4f/html5/thumbnails/19.jpg)
SQL 데이터 정의어1 강 SQL 개요
요 약요약
프로그래밍 언어와 데이터 접근 언어
SQL 언어의 기원과 특성
SQL 언어의 표준화
1
2
3
![Page 20: 제 1 강 SQL 개요](https://reader033.vdocuments.site/reader033/viewer/2022061502/56815b3f550346895dc91b4f/html5/thumbnails/20.jpg)
끝 ~