數(shù)據(jù)庫原理與應(yīng)用:第八章 創(chuàng)建和使用表_第1頁
數(shù)據(jù)庫原理與應(yīng)用:第八章 創(chuàng)建和使用表_第2頁
數(shù)據(jù)庫原理與應(yīng)用:第八章 創(chuàng)建和使用表_第3頁
數(shù)據(jù)庫原理與應(yīng)用:第八章 創(chuàng)建和使用表_第4頁
數(shù)據(jù)庫原理與應(yīng)用:第八章 創(chuàng)建和使用表_第5頁
已閱讀5頁,還剩56頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、上節(jié)課的回顧關(guān)系代數(shù)的基本概念關(guān)系、元組、屬性、域、關(guān)系模式、候選碼(候選關(guān)鍵字)、主碼(主關(guān)鍵字)、主屬性、外碼(外關(guān)鍵字)、全碼傳統(tǒng)的集合運算 關(guān)系的并、關(guān)系的差、關(guān)系的交、關(guān)系的笛卡爾積上節(jié)課的回顧專門的關(guān)系運算選擇運算、投影運算、連接運算、除運算選擇運算在關(guān)系R中選擇滿足給定條件的元組投影是從關(guān)系R中選擇出若干屬性列組成新的關(guān)系連接是從兩個關(guān)系的笛卡兒積中選取屬性間滿足一定條件的元組,分條件連接和自然連接創(chuàng)建數(shù)據(jù)庫1、查詢教師關(guān)系T(T#,TNAME,TSEX,TBIRTHIN,TITLEOF,TRSECTION,TEL)中全體教師的教職工號、教師姓名、職稱和所在教研室。解題思路:從教

2、師表中把各教師的相應(yīng)屬性投影出來。T,TNAME,TITLEOF,TRSECTION (T) 關(guān)系代數(shù)運算在查詢中的應(yīng)用SSEX=“女”(S) 2、查詢學(xué)生關(guān)系模式S(S#,SNAME,SSEX,SBIRTHIN,PLACEOFB,SCODE,CLASS)中全部女學(xué)生。解題思路:從學(xué)生表中選擇出那些性別為“女”的元組。關(guān)系代數(shù)運算在查詢中的應(yīng)用S, SNAME (SSEX=“男”SCODE=“S0401”(S) )3、找出學(xué)生關(guān)系模式S(S#,SNAME,SSEX,SBIRTHIN,PLACEOFB,SCODE,CLASS)中專業(yè)代碼為S0401的男學(xué)生的學(xué)號和姓名。解題思路:涉及到的查詢條件

3、有兩個,選擇專業(yè)代碼為“S0401”和性別為“男”的元組;最后,查詢結(jié)果用投影表示出來。關(guān)系代數(shù)運算在查詢中的應(yīng)用S(C=“C401001”C=“C401002”(SC) )4、找出學(xué)習(xí)關(guān)系模式SC(S#,C#,GRADE)中選修了課程號為C401001或課程號為C401002的學(xué)生的學(xué)號。解題思路:在SC表中判斷元組是否滿足條件為選修了課程號C401001或C401002,可以在選擇條件中用“”連接“或”的條件;也可以分別查詢出滿足條件的元組,再并運算。關(guān)系代數(shù)運算在查詢中的應(yīng)用或 S(C=“C401001” (SC) ) S(C=“C401002”(SC) )S(2=“C401001”5=

4、“C401002”(SCSC) )或 S(C=“C401001” (SC) ) S(C=“C401002”(SC) )5、找出學(xué)習(xí)關(guān)系SC(S#,C#,GRADE)中選修了課程號為C401001和課程號為C401002的學(xué)生的學(xué)號。解題思路:由于查詢是按元組一行一行地檢索,因此在SC表中一個元組只能滿足一個課程號的條件。因此,可利用廣義笛卡兒積的辦法創(chuàng)造一個元組中有兩個課程號能分別滿足不同的課程號要求;另一種辦法為分別求出滿足條件的元組,再交運算。關(guān)系代數(shù)運算在查詢中的應(yīng)用6、在學(xué)生關(guān)系S(S#,SNAME,SSEX,SBIRTHIN,PLACEOFB,SCODE,CLASS)和學(xué)習(xí)關(guān)系SC(

5、S#,C#,GRADE)中找出選修了課程號為C402002的學(xué)生的學(xué)號、姓名的考試成績。解題思路:首先確定涉及到的表,學(xué)號和姓名在S表中,成績在SC表中,而S表和SC表具有相同屬性S#,因此需將兩個表作自然聯(lián)接操作;查詢條件為選修了課程號C402002,作選擇操作;最后,投影出查詢結(jié)果的列。S,SNAME,GRADE(C=“C402002” (SSC) )關(guān)系代數(shù)運算在查詢中的應(yīng)用7、在學(xué)生關(guān)系S(S#,SNAME,SSEX,SBIRTHIN,PLACEOFB,SCODE,CLASS)、課程關(guān)系C(C#,CNAME,CLASSH)和學(xué)習(xí)關(guān)系SC(S#,C#,GRADE) 中找出專業(yè)代碼為S04

6、03學(xué)習(xí)了“計算機(jī)網(wǎng)絡(luò)”課程的學(xué)生的學(xué)號、姓名的考試成績。解題思路:由于查詢涉及到條件“計算機(jī)網(wǎng)絡(luò)”課程,該屬性在C表中,而查詢學(xué)生的學(xué)號、姓名及專業(yè)代碼在S表中,另外,考試成績在SC表中,需將三個表作自然聯(lián)接;選擇出滿足條件的元組;并投影出相應(yīng)結(jié)果列。S,SNAME,GRADE(SCODE=“S0403” CNAME=“計算機(jī)網(wǎng)絡(luò)”(SSCC)關(guān)系代數(shù)運算在查詢中的應(yīng)用第八章 創(chuàng)建和使用表8.1 表的概念8.2 創(chuàng)建表 8.3 修改表結(jié)構(gòu)(自學(xué))8.4 建立數(shù)據(jù)庫關(guān)系圖8.5 更改表名(自學(xué))8.6 刪除表(自學(xué))8.7 記錄的新增和修改8.1 表的概念一、表數(shù)據(jù)庫中,表是反映現(xiàn)實世界某類事

7、務(wù)的數(shù)學(xué)模型,現(xiàn)實世界中事務(wù)的屬性對應(yīng)表的列字段,而數(shù)據(jù)類型則是指定列所保存數(shù)據(jù)的類型。數(shù)據(jù)類型 類型 描 述 bit 整型 其值只能是0、1或空值。如Yes 或No、True 或Fa lse int 整型 存儲從- 231(-2147483648)到231 (2147483 647)之間的整數(shù)。這種數(shù)據(jù)類型在數(shù)據(jù)庫里占用4個字節(jié) smallint 整型 存儲從- 215(-32768)到215(32767)之間整數(shù)。占用2 字節(jié)空間 tinyint 整型 能存儲從0到255 之間的整數(shù)。占用1 個字節(jié) decimal 精確數(shù)值型 用來存儲從-1038-1到1038-1的固定精度和范圍的數(shù)值型

8、數(shù)據(jù)。 范圍是小數(shù)點左右所能存儲的數(shù)字的總位數(shù)。精度是小數(shù)點右邊存儲的數(shù)字的位數(shù) money 貨幣型 表示錢和貨幣值。這種數(shù)據(jù)類型能存儲從-9220億到9220 億之間的數(shù)據(jù),精確到貨幣單位的萬分之一 數(shù)據(jù)類型 類型 描 述 real 近似數(shù)值型 可以表示數(shù)值在-3.40E+38到3.40E+38之間的浮點數(shù) datetime 日期時間型 表示日期和時間。這種數(shù)據(jù)類型存儲從1753年1月1日到9999年12月3 1日間所有的日期和時間數(shù)據(jù)char nchar字符型 用來存儲指定長度的定長非統(tǒng)一編碼型的數(shù)據(jù)。此數(shù)據(jù)類型的列寬最大為8000 個字符 varcharnvarchar 字符型 同cha

9、r類型一樣,用來存儲非統(tǒng)一編碼型字符數(shù)據(jù)。與char 型不一樣,此數(shù)據(jù)類型為變長。 text 字符型 用來存儲大量的非統(tǒng)一編碼型字符數(shù)據(jù)。這種數(shù)據(jù)類型最多可以有231-1或20億個字符 image 二進(jìn)制數(shù)據(jù)類型 用來存儲變長的二進(jìn)制數(shù)據(jù),最大可達(dá)231-1或大約20億字節(jié) 8.1 表的概念空值null空值是列的一種特殊取值,它既不是字符型中空字符串或空格字符串,也不是整數(shù)型中的0值,它表示對應(yīng)的數(shù)據(jù)是不確定的。任何其它的值和null一起運算的話,其結(jié)果就是null。8.1 表的概念二、表中數(shù)據(jù)的完整性1.規(guī)則指表中數(shù)據(jù)應(yīng)滿足的一些基本條件2.默認(rèn)值指表中數(shù)據(jù)的默認(rèn)取值3.約束指表中數(shù)據(jù)應(yīng)滿足

10、的一些強(qiáng)制條件非空約束、檢查約束、唯一約束、主鍵約束、外鍵約束8.2 創(chuàng)建表一般有兩種方法:SQL Server Management Studio管理器T-SQL命令語句書上例8.1在school數(shù)據(jù)庫中建立student表8.2 創(chuàng)建表8.2 創(chuàng)建表注意用戶創(chuàng)建一個表后,SQL Server系統(tǒng)表sysobjects中會有一條相應(yīng)的記錄,其中name列就是該表的表名,type列為對象類型,這里為“U”。8.4 建立數(shù)據(jù)庫關(guān)系圖一個數(shù)據(jù)庫中存在多個表,而表和表之間存在著一些關(guān)聯(lián)關(guān)系SQL Server Management Studio管理器T-SQL命令語句書上例8.3在school數(shù)據(jù)庫

11、中,對表student、表score、表teacher、表course建立關(guān)聯(lián)關(guān)系8.4 建立數(shù)據(jù)庫關(guān)系圖8.4 建立數(shù)據(jù)庫關(guān)系圖8.4 建立數(shù)據(jù)庫關(guān)系圖8.7 記錄的新增和修改數(shù)據(jù)庫中的記錄一般都是通過T-SQL來進(jìn)行添加、修改和刪除的,當(dāng)然少量數(shù)據(jù)也可以通過SQL Server管理控制器來進(jìn)行。前者是利用設(shè)計人員編寫的相關(guān)程序來實現(xiàn);后者是操作員手工進(jìn)行輸入,因此要根據(jù)表之間的關(guān)聯(lián)性,注意輸入數(shù)據(jù)的先后次序。選擇要添加數(shù)據(jù)的表名,按鼠標(biāo)右鍵,在彈出的快捷菜單中選擇編輯前200行8.7 記錄的新增和修改8.7 記錄的新增和修改關(guān)系圖窗格條件窗格SQL窗格結(jié)果窗格8.7 記錄的新增和修改關(guān)系圖

12、窗格條件窗格SQL窗格結(jié)果窗格8.7 記錄的新增和修改如書上例8.6中,對school數(shù)據(jù)庫中,添加表student、表score、表teacher、表course內(nèi)的數(shù)據(jù)。1)先添加表student和表teacher的記錄2)再添加表course內(nèi)的數(shù)據(jù)3)最后添加表score內(nèi)的內(nèi)容查詢設(shè)計( 參考教科書第12章 視圖見12.1 12.2)教材上示例中已建三張數(shù)據(jù)表: 學(xué)生表 Student 課程表 Course 成績表 Score查詢1學(xué)生表 Student成績表 Score使用SQL Server管理控制器創(chuàng)建視圖(書P207-210)使用SQL Server管理控制器創(chuàng)建視圖(書P2

13、07-210)使用SQL Server管理控制器創(chuàng)建視圖(書P207-210)關(guān)系圖窗格網(wǎng)格窗格SQL窗格結(jié)果窗格使用SQL Server管理控制器創(chuàng)建視圖(書P207-210)問題:右邊的查詢應(yīng)該怎么處理?學(xué)生表 Student成績表 Score課程表 Course源表:步驟1右擊“視圖”鈕,再選“新建視圖”使用SQL Server管理控制器創(chuàng)建視圖(書P207-210)步驟2在“添加表”窗中,選擇三張表添加到查詢2的“關(guān)系圖窗格”中后“關(guān)閉”。使用SQL Server管理控制器創(chuàng)建視圖(書P207-210)步驟3把學(xué)號、姓名、課程名、成績字段拖入下方網(wǎng)格窗口的列中,做為輸出字段。使用SQL

14、 Server管理控制器創(chuàng)建視圖(書P207-210)步驟4若要查看效果,可擊“!”鈕。我們看到字段名沒有符合我們的要求使用SQL Server管理控制器創(chuàng)建視圖(書P207-210)步驟5在網(wǎng)格窗格中對每個字段輸入一個要顯示的別名。使用SQL Server管理控制器創(chuàng)建視圖(書P207-210)步驟6還可以在“篩選器”中設(shè)置篩選條件,如輸入70較復(fù)雜的篩選表達(dá)式,如查8090之間的成績:使用SQL Server管理控制器創(chuàng)建視圖(書P207-210)第九章 T-SQL基礎(chǔ)9.1 SQL9.2 T-SQL語句的執(zhí)行(自學(xué))9.3 數(shù)據(jù)定義語言9.4 數(shù)據(jù)操縱語言9.5 數(shù)據(jù)查詢語言9.6 T-

15、SQL程序設(shè)計基礎(chǔ)當(dāng)前最常用的關(guān)系數(shù)據(jù)庫系統(tǒng), 通過稱為SQL的語言對數(shù)據(jù)庫進(jìn)行查詢和更新。 SQL全稱是Structure Query Language,即結(jié)構(gòu)化查詢語言。 盡管SQL的許多重要的特征己經(jīng)超越了關(guān)系代數(shù)的范疇, 例如聚合運算(如求和、統(tǒng)計)以及數(shù)據(jù)庫更新等, 但是SQL的重要核心是和關(guān)系代數(shù)等價的。 SQL是一種非過程性語言,使用時只需告訴數(shù)據(jù)庫需要什麼數(shù)據(jù),怎樣顯示就可以了,不必關(guān)心其內(nèi)部操作。9.19.1 SQL語言不止是查詢, 它包括:數(shù)據(jù)查詢語言(DQL)數(shù)據(jù)定義語言( DDL)數(shù)據(jù)操縱語言( DML)數(shù)據(jù)控制語言( DCL)SQL現(xiàn)已成為關(guān)系數(shù)據(jù)庫領(lǐng)域中一個主流語言

16、, SQL語句能夠嵌入到各高級語言程序中, 并呈現(xiàn)統(tǒng)一的語法結(jié)構(gòu)。9.3 數(shù)據(jù)定義語言CREATE DATABASE database_name ON filespec LOG ON filespec 其中filespec定義為 NAME = logical_file_name , FILENAME = os_file_name , SIZE = size , MAXSIZE = max_size | UNLIMITED , FILEGROWTH = growth_increment 一、數(shù)據(jù)庫的操作語句1.創(chuàng)建數(shù)據(jù)庫9.3 數(shù)據(jù)定義語言通過新建查詢來輸入SQL命令例:CREATE DATAB

17、ASE school ON ( NAME = school, FILENAME = c:MSSQLDATAschool.mdf , SIZE = 3072KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ) LOG ON ( NAME = school_log, FILENAME = c:MSSQLDATAschool_log.ldf , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)9.3 數(shù)據(jù)定義語言9.3 數(shù)據(jù)定義語言ALTER DATABASE database_name ADD FIL

18、E filespec | ADD LOG FILE filespec | REMOVE FILE logical_file_name | MODIFY FILE filespec | MODIFY NAME = new_dbname 其中filespec定義為 NAME = logical_file_name , FILENAME = os_file_name , SIZE = size , MAXSIZE = max_size | UNLIMITED , FILEGROWTH = growth_increment 2.修改數(shù)據(jù)庫9.3 數(shù)據(jù)定義語言USE database_name3.使用數(shù)

19、據(jù)庫DROP DATABASE database_name4. 刪除數(shù)據(jù)庫9.3 數(shù)據(jù)定義語言CREATE TABLE table_name( column_name1 data_type NULL | NOT NULL PRIMARY KEY | UNIQUE FOREIGN KEY (column_name) REFERENCES (ref_column) , column_name2 data_type )二、表的操作語句1.表的創(chuàng)建例1:CREATE TABLE teacher (tno char(5) NOT NULL PRIMARY KEY ,tname char(10) NULL

20、,tsex char(2) NULL,tbirthday datetime NULL,prof char(10) NULL,depart char(16) NULL)9.3 數(shù)據(jù)定義語言9.3 數(shù)據(jù)定義語言例2: CREATE TABLE course (cno char(6) NOT NULL PRIMARY KEY,cname char(16) NULL,tno char(5) NULL FOREIGN KEY REFERENCES teacher(tno) )9.3 數(shù)據(jù)定義語言SELECT column_names INTO 表1 FROM 表22. 由其他表來創(chuàng)建新表例:從school數(shù)據(jù)庫中把student表的所有內(nèi)容復(fù)制到studentdup表中。USE schoolSELECT * INTO studentdup FROM student或者USE schoolSELECT sno,sname,ssex,sbirthday,sclass INTO

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論