第九章結構化查詢語言 SQL - 資料定義語言 (DDL) 資料庫系統設計理論李紹綸著

Similar documents
David M. Kroenke and David J. Auer Database Processing Fundamentals, Design, and Implementation

一般來說, 安裝 Ubuntu 到 USB 上, 不外乎兩種方式 : 1) 將電腦上的硬碟排線先予以排除, 將 USB 隨身碟插入主機, 以一般光碟安裝方式, 將 Ubuntu 安裝到 USB

RENESAS BLE 實作課程 Jack Chen Victron Technology CO., LTD 2015 Renesas Electronics Corporation. All rights reserved.

SSL VPN User Manual (SSL VPN 連線使用手冊 )

港專單一登入系統 (SSO) 讓本校的同學, 全日制及兼職老師只要一個登入帳戶, 便可同時使用由本校提供的網上系統及服務, 包括 Blackboard 網上學習平台, 港專電郵服務, 圖書館電子資料庫及其他教學行政系統.

桌上電腦及筆記本電腦安裝 Acrobat Reader 應用程式

PC Link Mode. Terminate PC Link? Esc. [GO]/[Esc] - - [GO]/[Esc] 轉接座未放滿. Make auto accord with socket mounted? [GO]/[Esc] Copy to SSD E0000

全面強化電路設計與模擬驗證. Addi Lin / Graser 2 / Sep / 2016

Twin API Guide. How to use Twin

JAVA Programming Language Homework V: Overall Review

CLAD 考前準備 與 LabVIEW 小技巧

Oxford isolution. 下載及安裝指南 Download and Installation Guide

2009 OB Workshop: Structural Equation Modeling. Changya Hu, Ph.D. NCCU 2009/07/ /07/03

外薦交換生線上申請系統操作說明 Instruction on Exchange Student Online Application System. [ 中文版 ] [English Version]

49 <script type="text/javascript"> 50 var gcid=0,sex=false,birthday=kendo.tostring(new Date(),"yyyy/MM/dd"); 51 $(function(){ 52

購票流程說明 How To purchase The Ticket?

微處理機系統 吳俊興高雄大學資訊工程學系. February 21, What are microprocessors (µp)? What are the topics of this course? Why to take this course?

Chapter 4 (Part IV) The Processor: Datapath and Control (Parallelism and ILP)

Version Control with Subversion

Preamble Ethernet packet Data FCS

購票流程說明 How To purchase The Ticket?

The notice regarding Participation Ways of our global distributor video conference on Feb. 5.

Frame Relay 訊框中繼 FRSW S0/0 S0/1

VB 拼圖應用 圖形式按鈕屬性 資科系 林偉川

Chapter 7. Digital Arithmetic and Arithmetic Circuits. Signed/Unsigned Binary Numbers

描述性資料採礦 Descriptive Data Mining

EZCast Docking Station

EZCast Wire User s Manual

EZCast Wire. User s Manual. Rev. 2.00

步驟 1: 首頁以 facebook 或 google 帳號登入, 並點選節目 Step 1:Log in with your facebook/google account, then click the show banner.

Figure 1 Microsoft Visio

// 範例 4-1: 連結資料庫 (connectdb.php) <?php mysql_connect("localhost", "student", "Asia2013"); mysql_select_db("student");?>

What is a Better Program?

Common Commands in Low-Level File I/O

UNIX Basics + shell commands. Michael Tsai 2017/03/06

Java 程式設計基礎班 (7) 劉根豪台大電機所網路資料庫研究室. Java I/O. Class 7 1. Class 7

游家德 Jade Freeman 群智信息 / 敦群數位資深架構顧問

4Affirma Analog Artist Design Flow

Chapter 7. Signed/Unsigned Binary Numbers. Digital Arithmetic and Arithmetic Circuits. Unsigned Binary Arithmetic. Basic Rules (Unsigned)

C A R I T A S M E D I C A L C E N T R E 明愛醫院 Rev. (A) (B) (C) (D) D A T A A C C E S S R E Q U E S T ( D A R ) 查閱資料要求申請須知

虛擬機 - 惡意程式攻防的新戰場. 講師簡介王大寶, 小時候大家叫他王小寶, 長大後就稱王大寶, 目前隸屬一神祕單位. 雖然佯稱興趣在看書與聽音樂, 但是其實晚上都在打 Game. 長期於系統最底層打滾, 熟悉 ASM,C/C++,

Chapter 2 (Part 2) Instructions: Language of the Computer

Invitation to Computer Science 5 th Edition. Chapter 8 Information Security

C B A B B C C C C A B B A B C D A D D A A B D C C D D A B D A D C D B D A C A B

場次 : C3. 公司名稱 : Radware. 主題 : ADC & Security for SDDC. 主講人 : Sam Lin ( 職稱 ) 總經理

Citrix CloudGateway. aggregate control. all apps and data to any device, anywhere

Chapter 7 Pointers ( 指標 )

UAK1-C01 USB Interface Data Encryption Lock USB 資料加密鎖. Specifications for Approval

使用 TensorFlow 設計矩陣乘法計算並轉移執行在 Android 上 建國科技大學資管系 饒瑞佶 2017/8

報告人 / 主持人 : 林寶樹 Colleges of Computer Science & ECE National Chiao Tung University

Digital imaging & free fall of immersed sphere with wall effects

Increase Productivity and Quality by New Layout Flow

微算機原理與實驗 Principle of Microcomputer(UEE 2301/1071 )

Seagate Backup Plus Hub User Manual

BTC, EMPREX Wireless Keybaord +Mouse + USB dongle. 6309URF III Quick Installation Guide

香港中文大學學生會計算機科學系會 圖書清單

Thomson Innovation Training

Operating Systems 作業系統

Java 程式設計基礎班 (7) 莊坤達台大電信所網路資料庫研究室. Java I/O. Class 7 1. Class 7 2

Scale of Fees (Applicable from 18 June 2017) Data Access Request consists of (i) Data Enquiry Request and (ii) Copy of Personal Medical Records

ICP Enablon User Manual Factory ICP Enablon 用户手册 工厂 Version th Jul 2012 版本 年 7 月 16 日. Content 内容

Java 程式設計入門. 講師 : 陳昭源 CSIE, NTU September 28, 2005

Android + TIBBO + Socket 建國科技大學資管系 饒瑞佶

Department of Computer Science and Engineering National Sun Yat-sen University Data Structures - Final Exam., Jan. 9, 2017

私有雲公有雲的聯合出擊 領先的運算, 儲存與網路虛擬化技術 靈活的計費模式與經濟性 支援廣大的商業應用場景 涵蓋各類型雲服務 類標準的企業資料中心架構 全球規模與快速部署. 聯合設計的解決方案可為客戶提供最佳的 VMware 和 AWS

InTANK ir2771-s3 ir2772-s3. User Manual

Port GCC to a new architecture Case study: nds32

Information is EVERYTHING 微軟企業混和雲解決方案. November 24, Spenser Lin. Cloud Infra Solution Sales, Microsoft Taiwan

OWASP AppSec Asia 2008, Taiwan Penetration Test with BackTrack Art of Exploitation

Allegro SPB V16 Advance

Chapter 4. Channel Coding and Error Control

Password Protection 此篇文章說明如何在程式中加入密碼保護的機制, 當程式開啟, 使用者必須先輸入使用者帳號及密碼, 若是合法使用者才能進入應用程式

晶焱科技股份有限公司 Amazing Microelectronic Corp.

Clonezilla Live 實務與應用

Lotusphere Comes to You 輕鬆打造 Web 2.0 入口網站 IBM Corporation

A n d r o i d Ta b l e t P C

Dr. Whai-En Chen. Institute of Computer Science and Information Engineering National Ilan University TEL: #340

ISILON DATA LAKE 運用 ISILON 輕鬆建構企業資料湖

Syntest Tool 使用說明. Speaker: Yu-Hsien Cheng Adviser: Kuen-Jong Lee. VLSI/CAD Training Course

Software Architecture Case Study: Applying Layer in SyncFree

網路安全與頻寬控制閘道器之實作與研究. Management Gateways

EdConnect and EdDATA

Ubiquitous Computing Using SIP B 朱文藝 B 周俊男 B 王雋伯

利用數據與軟體瞭解 讀者行為使用分析與服務平台選項

OTAD Application Note

Introduction to Programming ( 計算機程式設計 ) Chapter 1 Getting Ready

GPIB 儀器控制之概念及軟硬體介紹 研華股份有限公司 工業自動化事業群

Terry Kuo, Power Systems Division, ABB Taiwan, Oct 實現 IEC61850 核心價值的變電站自動化系統

SOHORAID ST8-TB3 User Manual

EMP2 SERIES. mpcie to Serial COM User Manual. Rev 1.3

Simulation of SDN/OpenFlow Operations. EstiNet Technologies, Inc.

Promotion of Web GIS for University Courses and Research. Abstract

Operating manual. LawMate WN7911B-ZZ. WiFi Module V 01

Product Profile & Dimensions

User s Manual. Rev. 1.04

Seagate Backup Plus Hub User Manual

HDD Integration and Technology challenges to CE Products 消費電子産品中硬碟的應用 與技術瓶頸

RA8835. Dot Matrix LCD Controller Q&A. Preliminary Version 1.2. July 13, RAiO Technology Inc.

Chinese (Traditional) Style Guide

Transcription:

第九章結構化查詢語言 SQL - 資料定義語言 (DDL) 資料庫系統設計理論李紹綸著

SQL 的資料定義語言 本章內容 建立資料表 修改資料表 刪除資料表 FOREIGN KEY 外鍵條件約束與資料表關聯性 2

資料定義語言可分為下列三種 : SQL 的資料定義語言 CREATE TABLE 指令 : 用來建立一個基底關聯表, 和設定關聯表相關的完整性限制 CREATE VIEW 指令 : 用來建立一個視界, 我們將在第十三章再來介紹 CREATE INDEX 指令 : 用來建立一個關聯表的索引, 我們將在第十四章再來介紹 3

公司 資料庫各個關聯表綱目 員工關聯表綱目 欄位名稱 資料型別 長度 允許 Null 屬性 身分證號碼 char 10 否 姓名 varchar 15 否 生日 datetime 是 員工電話關聯表綱目 欄位名稱 資料型別 長度 允許 Null 屬性 身分證號碼 char 10 否 電話 char 10 否 地址 varchar 30 是 薪水 decimal 是 預設值 :25000 整數位數:10 小數位數:0 直屬上司 char 10 是 工作部門 int 是 部門關聯表綱目 欄位名稱 資料型別 長度 允許 Null 屬性 部門代號 int 否 識別 : 是 識別值種子 :1 識別增值量:1 部門名稱 varchar 15 否 經理身分證號碼 char 10 是 到職日 datetime 是 計劃關聯表綱目 欄位名稱資料型別長度允許 Null 屬性 員工眷屬關聯表綱目 欄位名稱 資料型別 長度 允許 Null 屬性 身分證號碼 char 10 否 眷屬姓名 varchar 15 否 關係 char 10 是 參加關聯表綱目 欄位名稱資料型別長度允許 Null 屬性 計劃代號 int 否 識別 : 是 識別值種子 :1 識別增值量:1 計劃名稱 varchar 15 否 執行地點 char 10 是 委託單位 char 10 是 控制部門 int 是 身分證號碼 char 10 否 計劃代號 int 否 工作時數 int 是 4

公司 資料庫各個資料表 5

公司資料庫實體關係圖 6

建立資料表 CREATE TABLE 指令敘述格式如下 : CREATE TABLE [ database_name. [ schema_name ]. schema_name. ] table_name ( { <column_definition> <computed_column_definition> } [ <table_constraint> ] [,...n ] ) [ ON { partition_scheme_name ( partition_column_name ) filegroup "default" } ] [ { TEXTIMAGE_ON { filegroup "default" } ] <column_definition> ::= column_name <data_type> [ COLLATE collation_name ] [ NULL NOT NULL ] [ [ CONSTRAINT constraint_name ] DEFAULT constant_expression ] [ IDENTITY [ ( seed,increment ) ] [ NOT FOR REPLICATION ] ] [ ROWGUIDCOL ] [ <column_constraint> [...n ] ] <data type> ::= [ type_schema_name. ] type_name [ ( precision [, scale ] max [ { CONTENT DOCUMENT } ] xml_schema_collection ) ] 7

< table_constraint > ::= [ CONSTRAINT constraint_name ] { { PRIMARY KEY UNIQUE } [ CLUSTERED NONCLUSTERED ] (column [ ASC DESC ] [,...n ] ) [ WITH FILLFACTOR = fillfactor WITH ( <index_option> [,...n ] ) ] [ ON { partition_scheme_name (partition_column_name) filegroup "default" } ] FOREIGN KEY ( column [,...n ] ) REFERENCES referenced_table_name [ ( ref_column [,...n ] ) ] [ ON DELETE { NO ACTION CASCADE SET NULL SET DEFAULT } ] [ ON UPDATE { NO ACTION CASCADE SET NULL SET DEFAULT } ] [ NOT FOR REPLICATION ] CHECK [ NOT FOR REPLICATION ] ( logical_expression ) } <index_option> ::= { PAD_INDEX = { ON OFF } FILLFACTOR = fillfactor IGNORE_DUP_KEY = { ON OFF } STATISTICS_NORECOMPUTE = { ON OFF } ALLOW_ROW_LOCKS = { ON OFF} ALLOW_PAGE_LOCKS ={ ON OFF} } 建立資料表 8

<column_constraint> ::= [ CONSTRAINT constraint_name ] { { PRIMARY KEY UNIQUE } [ CLUSTERED NONCLUSTERED ] [ WITH FILLFACTOR = fillfactor WITH ( < index_option > [,...n ] ) ] [ ON { partition_scheme_name ( partition_column_name ) filegroup "default" } ] [ FOREIGN KEY ] REFERENCES [ schema_name. ] referenced_table_name [ ( ref_column ) ] [ ON DELETE { NO ACTION CASCADE SET NULL SET DEFAULT } ] [ ON UPDATE { NO ACTION CASCADE SET NULL SET DEFAULT } ] [ NOT FOR REPLICATION ] CHECK [ NOT FOR REPLICATION ] ( logical_expression ) } 建立資料表 <computed_column_definition> ::= column_name AS computed_column_expression [ PERSISTED [ NOT NULL ] ] [ [ CONSTRAINT constraint_name ] { PRIMARY KEY UNIQUE } [ CLUSTERED NONCLUSTERED ] [ WITH FILLFACTOR = fillfactor WITH ( <index_option> [,...n ] ) ] [ FOREIGN KEY ] REFERENCES referenced_table_name [ ( ref_column ) ] [ ON DELETE { NO ACTION CASCADE } ] [ ON UPDATE { NO ACTION } ] [ NOT FOR REPLICATION ] CHECK [ NOT FOR REPLICATION ] ( logical_expression ) [ ON { partition_scheme_name ( partition_column_name ) filegroup "default" } ] ] 9

範例 9.1 請在 公司 資料庫中建立一個名為 員工 的資料表 10

修改資料表 ALTER TABLE 指令敘述格式如下 : ALTER TABLE [ database_name. [ schema_name ]. schema_name. ] table_name { ALTER COLUMN column_name { [ type_schema_name. ] type_name [ ( { precision [, scale ] max xml_schema_collection } ) ] [ NULL NOT NULL ] [ COLLATE collation_name ] {ADD DROP } { ROWGUIDCOL PERSISTED } } [ WITH { CHECK NOCHECK } ] ADD { <column_definition> <computed_column_definition> <table_constraint> } [,...n ] DROP { [ CONSTRAINT ] constraint_name [ WITH ( <drop_clustered_constraint_option> [,...n ] ) ] COLUMN column_name } [,...n ] [ WITH { CHECK NOCHECK } ] { CHECK NOCHECK } CONSTRAINT { ALL constraint_name [,...n ] } { ENABLE DISABLE } TRIGGER { ALL trigger_name [,...n ] } SWITCH [ PARTITION source_partition_number_expression ] TO [ schema_name. ] target_table [ PARTITION target_partition_number_expression ] } 11

<column_definition> ::= column_name [ type_schema_name. ] type_name [ ( { precision [, scale ] max [ { CONTENT DOCUMENT } ] xml_schema_collection } ) ] [ [ CONSTRAINT constraint_name ] DEFAULT constant_expression [ WITH VALUES ] IDENTITY [ (seed, increment ) ] [ NOT FOR REPLICATION ] ] [ ROWGUIDCOL ] [ COLLATE < collation_name > ] [ <column_constraint> [...n ] ] <column_constraint> ::= [ CONSTRAINT constraint_name ] { [ NULL NOT NULL ] { PRIMARY KEY UNIQUE } [ CLUSTERED NONCLUSTERED ] [ WITH FILLFACTOR =fillfactor ] [ WITH ( <index_option> [,...n ] ) ] [ ON { partition_scheme_name (partition_column_name) filegroup "default" } ] [ FOREIGN KEY ] REFERENCES [ schema_name. ] referenced_table_name [ ( ref_column ) ] [ ON DELETE { NO ACTION CASCADE SET NULL SET DEFAULT } ] [ ON UPDATE { NO ACTION CASCADE SET NULL SET DEFAULT } ] [ NOT FOR REPLICATION ] CHECK [ NOT FOR REPLICATION ] DEFAULT constant_expression [ WITH VALUES ] ( logical_expression ) } 修改資料表 12

<computed_column_definition> ::= column_name AS computed_column_expression [ PERSISTED [ NOT NULL ] ] [ [ CONSTRAINT constraint_name ] { PRIMARY KEY UNIQUE } [ CLUSTERED NONCLUSTERED ] [ WITH FILLFACTOR = fillfactor ] [ WITH ( <index_option> [,...n ] ) ] [ ON { partition_scheme_name ( partition_column_name ) filegroup "default" } ] [ FOREIGN KEY ] REFERENCES ref_table [ ( ref_column ) ] [ ON DELETE { NO ACTION CASCADE } ] [ ON UPDATE { NO ACTION } ] [ NOT FOR REPLICATION ] CHECK [ NOT FOR REPLICATION ] ( logical_expression ) ] 修改資料表 <table_constraint> ::= [ CONSTRAINT constraint_name ] { { PRIMARY KEY UNIQUE } [ CLUSTERED NONCLUSTERED ] (column [ ASC DESC ] [,...n ] ) [ WITH FILLFACTOR = fillfactor [ WITH ( <index_option>[,...n ] ) ] [ ON { partition_scheme_name ( partition_column_name... ) filegroup "default" } ] FOREIGN KEY ( column [,...n ] ) REFERENCES referenced_table_name [ ( ref_column [,...n ] ) ] [ ON DELETE { NO ACTION CASCADE SET NULL SET DEFAULT } ] [ ON UPDATE { NO ACTION CASCADE SET NULL SET DEFAULT } ] [ NOT FOR REPLICATION ] DEFAULT constant_expression FOR column [ WITH VALUES ] CHECK [ NOT FOR REPLICATION ] ( logical_expression ) } 13

< index_option > ::= { PAD_INDEX = { ON OFF } FILLFACTOR = fillfactor IGNORE_DUP_KEY = { ON OFF } STATISTICS_NORECOMPUTE = { ON OFF } ALLOW_ROW_LOCKS= { ON OFF } ALLOW_PAGE_LOCKS={ ON OFF } SORT_IN_TEMPDB = { ON OFF } ONLINE = { ON OFF } MAXDOP = max_degree_of_parallelism } 修改資料表 <drop_clustered_constraint_option > ::= { MAXDOP = max_degree_of_parallelism ONLINE = {ON OFF } MOVE TO { partition_scheme_name ( column_name ) filegroup "default"} } 14

範例 9.2 請在 公司 資料庫中修改 員工 資料表, 增加一個 年齡 欄位, 並將資料型別設為 INT 和允許虛值 15

範例 9.3 請在 公司 資料庫中修改 員工 資料表, 變更一個 年齡 資料表欄位的資料型別, 將其資料類型由 INT 改為 DECIMAL(3,0) 16

範例 9.4 請在 公司 資料庫中修改 員工 資料表, 刪除一個 年齡 欄位 17

範例 9.5 請在 公司 資料庫中修改 員工 資料表, 將 身分證號碼 欄位設定為主鍵 18

範例 9.6 請在 公司 資料庫中修改 員工 資料表, 將 身分證號碼 欄位取消設定為主鍵 19

範例 9.7 請在 公司 資料庫中修改 員工 資料表, 將 姓名 欄位設定為次選鍵 20

範例 9.8 請在 公司 資料庫中修改 員工 資料表, 刪除 姓名 欄位 UNIQUE 次選鍵條件約束 21

範例 9.9 請在 公司 資料庫中修改 員工 資料表, 加入一檢查條件約束將 薪水 欄位屬性值限制在 17280 元和 200000 元範圍之間 22

範例 9.10 請在 公司 資料庫中修改 員工 資料表, 刪除 薪水 欄位檢查條件約束 23

刪除資料表 DROP TABLE 指令敘述格式如下 : DROP TABLE [ database_name. [ schema_name ]. schema_name. ] table_name [,...n ] [ ; ] 24

範例 9.11 請在 公司 資料庫中刪除一個名為 員工 的資料表 25

建立 公司 資料庫各個資料表的 SQL 指令敘述 26

建立 公司 資料庫各個資料表外鍵關聯性的 SQL 指令敘述 27