1 / 23

제 2 강 SQL 데이터 정의어

제 2 강 SQL 데이터 정의어. 데이터베이스 개론. 임덕성 교수. 복습. 복습. 프로그래밍 언어와 데이터 접근 언어. 1. SQL 언어의 기원과 특성. 2. 3. SQL 언어의 표준화. 학습목표. 학습 목표. 테이블 생성. 1. 테이블 제거. 2. 3. 테이블 변경. 1 . 데이터 정의어 개요. SQL 에서 지원하는 대표적인 데이터 정의 기능 테이블 생성 (create ) 테이블 변경 (alter ) 테이블 삭제 (drop).

cian
Download Presentation

제 2 강 SQL 데이터 정의어

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 제2강 SQL 데이터 정의어 데이터베이스 개론 임덕성 교수

  2. 복습 복습 프로그래밍 언어와 데이터 접근 언어 1 SQL 언어의 기원과 특성 2 3 SQL 언어의 표준화

  3. 학습목표 학습 목표 테이블 생성 1 테이블 제거 2 3 테이블 변경

  4. 1. 데이터 정의어 개요 • SQL에서 지원하는 대표적인 데이터 정의 기능 • 테이블 생성(create) • 테이블 변경(alter) • 테이블 삭제(drop)

  5. 2.1 테이블 생성 구문 형식 명령어 : CREATE TABLE 구문 형식 CREATE TABLE 테이블 이름 (열 이름데이터유형[not null], ... [primary key (열 이름 리스트)] [check(조건식)] );

  6. 2.2 무결성 제약 검사 • not null • not null로 표기된 열 이름은 속성 값으로 널(null)값을 가질 수 없음을 나타냄 • primary key • primary key 로 지정한 열 이름 리스트는 해당 테이블을 유일하게 식별할 수 있는 기본키임을 나타냄 • check • check 절은 테이블의 특정 열(속성)이 지켜져야 할 조건을 지정 dept_nonumber(4) not null primary key(c_no, p_no) check( 1 <= year <= 4 )

  7. 2.3 데이터 유형 (오라클)

  8. 2.4 테이블 생성 예제 예제 1 예제 테이블의 학과(department) 릴레이션을 생성하는 SQL 질의어를 작성하라. 단, 기본키는dept_no이고, 학과이름(dept_name)은 널 값을 가질 수 없다. CREATE TABLE department ( dept_no NUMBER(4), dept_nameVARCHAR2(30) NOT NULL, chief NUMBER(5), assistant VARCHAR2(10), dept_tel NUMBER(5), location VARCHAR2(6), CONSTRAINT department_dept_no_pk PRIMARY KEY(dept_no));

  9. 2.4 테이블 생성 예제 CREATE TABLE department ( dept_no NUMBER(4), dept_nameVARCHAR2(30) NOT NULL, chief NUMBER(5), assistant VARCHAR2(10), dept_tel NUMBER(5), location VARCHAR2(6), CONSTRAINT department_dept_no_pk PRIMARY KEY(dept_no)); 테이블의 스키마 확인 : descdepartment

  10. 2.4 테이블 생성 예제 (계속) 예제 2 예제 테이블의 교수(professor) 릴레이션을 생성하는SQL 질의어를 작성하라. 단, 기본키는p_no이고, 교수이름(p_name)은 널 값을 가질 수 없다. 교수(PROFESSOR) : 교수에 대한 정보를 포함하는 테이블 교수번호(p_no) : 교수를 유일하게 식별할 수 있는 속성 값 이름(p_name) : 교수의 이름 직급(grade) : 교수의 직급 소속학과(dept_no) : 교수가 소속된 학과의 학과코드 연구실(room_no) : 교수의 연구실이 위치한 건물의 방 번호 전화(p_tel) : 교수 연구실의 전화번호 주소(p_address) : 교수의 집 주소 생년월일(p_birth) : 교수의 생년월일 입사일(join_date) : 교수의 입사일 호봉(pay_step) : 교수의 호봉

  11. 2.4 테이블 생성 예제 (계속) CREATE TABLE professor ( p_no NUMBER(5), p_nameVARCHAR2(10) NOT NULL, grade VARCHAR2(10), dept_no NUMBER(4), room_noVARCHAR2(15), p_tel NUMBER(5), p_addressVARCHAR2(30), p_birth DATE, join_date DATE, pay_step NUMBER(3), CONSTRAINT professor_p_no_pk PRIMARY KEY(p_no), CONSTRAINT professor_dept_no_fk FOREIGN KEY(dept_no) REFERENCES department(dept_no) );

  12. 2.4 테이블 생성 예제 (계속) 테이블의 스키마 확인 : desc professor

  13. 3.1 테이블 제거 구문 형식 • SQL 질의어에서 생성되어 있는 릴레이션(테이블)을 제거하기 위해서 사용하는 명령어 • 명령어 : DROP TABLE • 구문 형식 • Cascade : 제거하려는 테이블을 참조하고 있는 다른 테이블도 자동으로 함께 제거 • restrict : 제거하려는 테이블을 다른 테이블이 참조하고 있으면 제거 명령이 실행되지 않음 • 오라클의 경우 : 기본 restrict, cascade의 경우 종속된 제약조건을 삭제하고 테이블 삭제 (cascade CONSTRAINTS ) DROP TABLE 테이블_이름 cascade | restrict ;

  14. 3.2 테이블 제거 예제 예제 4 예제 테이블의 학과(department) 릴레이션을 제거하는 SQL 질의어를 작성하라. 먼저 참조하고 있는 테이블(professor)을삭제한다. DROP TABLE professor; DROP TABLE department; DROP TABLE professor; Table dropped. DROP TABLE department; Table dropped.

  15. 3.2 테이블 제거 예제 예제 3 예제 테이블의 학과(department) 릴레이션을 제거하는 SQL 질의어를 작성하라. DROP TABLE department ; 에러 발생

  16. 3.2 테이블 제거 예제 예제 5 예제 테이블의 학과(department) 릴레이션을 제거하는 SQL 질의어를 작성하라. (먼저 종속된 제약조건을 제거한뒤 테이블 삭제) DROP TABLE department cascade CONSTRAINTS • 두 테이블이 존재

  17. 3.2 테이블 제거 예제 예제 5 예제 테이블의 학과(department) 릴레이션을 제거하는 SQL 질의어를 작성하라. (먼저 종속된 제약조건을 제거한뒤 테이블 삭제) DROP TABLE department cascade CONSTRAINTS • department 테이블 삭제

  18. 3.2 테이블 제거 예제 예제 5 예제 테이블의 학과(department) 릴레이션을 제거하는 SQL 질의어를 작성하라. (먼저 종속된 제약조건을 제거한뒤 테이블 삭제) DROP TABLE department cascade CONSTRAINTS • Professor테이블 존재제약조건 삭제됨

  19. 4.1 테이블 변경 구문 형식 SQL 질의어에서 생성되어 있는 릴레이션(테이블)을 변경하기 위해서 사용하는 명령어 명령어 : ALTER TABLE 구문 형식 <속성 추가> ALTER TABLE 테이블 이름 ADD열 이름 데이터 유형; <속성 제거> ALTER TABLE 테이블 이름 DROP (열 이름)

  20. 4.2 테이블 변경 예제 예제 5 예제 테이블의 학과(department)릴레이션에교수수(nbrOfFaculty) 속성을 추가하는 SQL 질의어를 작성하라. 단, 교수수(nbrOfFaculty) 속성의 데이터 유형은 number 로 지정하라. ALTER TABLE department ADDnbrOfFacultyNUMBER; Select * from department;

  21. 4.2 테이블 변경 예제 (계속) 예제 6 예제 테이블의 학과(department)릴레이션에서 전화(dept_tel) 속성을 제거하는 SQL질의어를 작성하라. ALTER TABLE department DROP(DEPT_TEL) 변경전 변경후

  22. 요약 요 약 테이블 생성 1 테이블 제거 2 3 테이블 변경

  23. 감 사 합 니 다 끝~

More Related