表的管理數(shù)據(jù)庫天津大學(xué).ppt
《表的管理數(shù)據(jù)庫天津大學(xué).ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《表的管理數(shù)據(jù)庫天津大學(xué).ppt(30頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1,第5章表的管理,2,本章內(nèi)容,5.1SQLServer表概述5.2表的創(chuàng)建與維護(hù)5.3表中數(shù)據(jù)的維護(hù),3,5.1SQLServer表概述,數(shù)據(jù)類型SQLServer支持4種基本數(shù)據(jù)類型:字符和二進(jìn)制數(shù)據(jù)類型、日期時(shí)間數(shù)據(jù)類型、邏輯數(shù)據(jù)類型、數(shù)字?jǐn)?shù)據(jù)類型,用于各類數(shù)據(jù)值的存儲(chǔ)、檢索和解釋。1.字符和二進(jìn)制數(shù)據(jù)類型(1)字符數(shù)據(jù)類型字符數(shù)據(jù)類型用于存儲(chǔ)漢字、英文字母、數(shù)字符號(hào)和其他各種符號(hào)。char數(shù)據(jù)類型varchar數(shù)據(jù)類型text數(shù)據(jù)類型SQLServer允許使用多國(guó)語言,采用Unicode標(biāo)準(zhǔn)字符集。為此SQLServer提供多字節(jié)的字符數(shù)據(jù)類型:nchar(n)、nvarchar(n)和ntext。,4,5.1SQLServer表概述,(2)二進(jìn)制數(shù)據(jù)類型SQLServer二進(jìn)制數(shù)據(jù)類型用于存儲(chǔ)二進(jìn)制數(shù)或字符串。SQLServer的3種有效二進(jìn)制數(shù)據(jù)類型:binary數(shù)據(jù)類型varbinary[(n)]數(shù)據(jù)類型image數(shù)據(jù)類型,5,5.1SQLServer表概述,2.日期時(shí)間數(shù)據(jù)類型日期時(shí)間數(shù)據(jù)類型用于存儲(chǔ)日期和時(shí)間數(shù)據(jù)。SQLServer支持兩種日期時(shí)間數(shù)據(jù)類型:datetime和smalldatetime。3.邏輯數(shù)據(jù)類型SQLServer的邏輯數(shù)據(jù)類型為bit,適用于判斷真/假的場(chǎng)合,長(zhǎng)度為一個(gè)字節(jié)。,6,5.1SQLServer表概述,4.?dāng)?shù)字?jǐn)?shù)據(jù)類型SQLServer提供了多種方法存儲(chǔ)數(shù)值,SQLServer的數(shù)字類型大致可分為4種基本類型。(1)整數(shù)數(shù)據(jù)類型有4種整數(shù)數(shù)據(jù)類型:int、smallint、tinyint和bigint,用于存儲(chǔ)不同范圍的值。(2)浮點(diǎn)數(shù)據(jù)類型浮點(diǎn)數(shù)據(jù)用來存儲(chǔ)系統(tǒng)所能提供的最大精度保留的實(shí)數(shù)數(shù)據(jù)。,7,5.1SQLServer表概述,(3)精確數(shù)值數(shù)據(jù)類型精確數(shù)值數(shù)據(jù)類型用于存儲(chǔ)有小數(shù)點(diǎn)且小數(shù)點(diǎn)后位數(shù)確定的實(shí)數(shù)。格式:decimal[(p[,s])]numeric[(p[,s])](4)貨幣數(shù)據(jù)類型除了decimal和numeric類型適用于貨幣數(shù)據(jù)的處理外,SQLServer還專門提供了兩種貨幣數(shù)據(jù)類型:money和smallmoney。,8,5.1SQLServer表概述,5.其他數(shù)據(jù)類型除了以上4種基本數(shù)據(jù)類型,SQLServer還支持其他一些數(shù)據(jù)類型。(1)Timestamp:時(shí)間戳數(shù)據(jù)類型,用于自動(dòng)記錄插入或刪除操作的時(shí)間。注意:服務(wù)器不允許用戶指定時(shí)間戳值。(2)sql_variant:可變數(shù)據(jù)類型。該類型的變量可用來存放大部分SQLServer數(shù)據(jù)類型的值,最大長(zhǎng)度為8016字節(jié),不支持text、ntext、timestamp和sql_variant類型。(3)table:表類型。這是一種特殊的數(shù)據(jù)類型,存儲(chǔ)供以后處理的結(jié)果集。(4)uniqueidentifier:GUID類型(GlobalUniqueIDentifier,全局惟一標(biāo)識(shí)符)。,9,5.1SQLServer表概述,空值(NULL)空值不同于空白(空字符串)或數(shù)值零,通常表示未填寫、未知(Unknown)、不可用或?qū)⒃谝院筇砑拥臄?shù)據(jù)。默認(rèn)值是指表中數(shù)據(jù)的默認(rèn)取值,默認(rèn)值對(duì)象是數(shù)據(jù)庫的對(duì)象不依附于具體的表對(duì)象,即默認(rèn)值對(duì)象的作用范圍是整個(gè)數(shù)據(jù)庫。約束約束定義了關(guān)于列中允許值的規(guī)則,SQLServer通過限制列中數(shù)據(jù)、行中數(shù)據(jù)和表之間數(shù)據(jù)來保證數(shù)據(jù)的完整性。(1)非空值約束(NotNull)(2)默認(rèn)約束(Default)(3)惟一性約束(Unique)(4)主鍵約束(PrimaryKey,也稱主關(guān)鍵字約束)(5)外鍵約束(ForeignKey,也稱為外部關(guān)鍵字約束),10,5.2表的創(chuàng)建與維護(hù),使用SQLServer管理平臺(tái)對(duì)表進(jìn)行操作使用SQLServer管理平臺(tái)創(chuàng)建和修改表使用SQLServer管理平臺(tái)設(shè)計(jì)數(shù)據(jù)庫關(guān)系在SQLServer管理平臺(tái)中刪除表使用Transact-SQL語句創(chuàng)建表語法格式:CREATETABLE[database_name.[owner].|owner.]table_name({|column_nameAScomputed_column_expression|::=[CONSTRAINTconstraint_name]}|[{PRIMARYKEY|UNIQUE}[,...n])[ON{filegroup|DEFAULT}][TEXTIMAGE_ON{filegroup|DEFAULT}],11,5.2表的創(chuàng)建與維護(hù),例5-1簡(jiǎn)單的表定義。USESalesGOCREATETABLEemployee(employee_idchar(4)NOTNULL,employee_namechar(8)NOTNULL,sexchar(2)NOTNULL,birth_datedatetimeNOTNULL,hire_datedatetimeNOTNULL,addressvarchar(50),telephonechar(8),wagesmoney,department_idchar(4)NOTNULL,resumetextNOTNULL),12,5.2表的創(chuàng)建與維護(hù),例5-2為表指定文件組。CREATETABLESales.dbo.supplier(supplier_idchar(5)NOTNULL,supplier_namevarchar(50)NOTNULL,linkman_namevarchar(8),addressvarchar(50),telephonechar(12)NOTNULL)ON[PRIMARY],13,5.2表的創(chuàng)建與維護(hù),例5-3對(duì)計(jì)算列使用表達(dá)式。CREATETABLEsalarys(姓名varchar(10),基本工資money,獎(jiǎng)金money,總計(jì)AS基本工資+獎(jiǎng)金),14,5.2表的創(chuàng)建與維護(hù),例5-4定義表autouser自動(dòng)獲取用戶名稱。CREATETABLEautouser(編號(hào)intidentity(1,1)NOTNULL,用戶代碼varchar(18),登錄時(shí)間ASGetdate(),用戶名ASUser_name()),15,5.2表的創(chuàng)建與維護(hù),例5-5創(chuàng)建臨時(shí)表。CREATETABLE#students(學(xué)號(hào)varchar(8),姓名varchar(10),性別varchar(2),班級(jí)varchar(10)),16,5.2表的創(chuàng)建與維護(hù),使用Transact-SQL語句修改表語法格式:ALTERTABLEtable_name{[ALTERCOLUMNcolumn_name{new_data_type[(precision[,scale])][NULL|NOTNULL]|{ADD|DROP}ROWGUIDCOL}]|ADD{[]|column_nameAScomputed_column_expression}[,...n]|[WITHCHECK|WITHNOCHECK]ADD{}[,...n]|DROP{[CONSTRAINT]constraint_name|COLUMNcolumn_name}[,...n]|{CHECK|NOCHECK}CONSTRAINT{ALL|constraint_name[,...n]}|{ENABLE|DISABLE}TRIGGER{ALL|trigger_name[,...n]}},17,5.2表的創(chuàng)建與維護(hù),例5-6更改表以添加新列,然后再刪除該列。ALTERTABLEemployeeADDemailvarchar(20)NULLGOsp_helpemployeeALTERTABLEemployeeDROPCOLUMNemailGOsp_helpemployee,18,5.2表的創(chuàng)建與維護(hù),例5-7將表employee的列address改為varchar(150)數(shù)據(jù)類型,并且不允許為空。ALTERTABLEemployeeALTERCOLUMNaddressvarchar(150)NOTNULLGO注意:一定要確認(rèn)已有的數(shù)據(jù)中列address均不為空后,才能進(jìn)行此操作。,19,5.2表的創(chuàng)建與維護(hù),使用Transact-SQL語句刪除表語句格式如下:DROPTABLEtable_name其中,table_name是要?jiǎng)h除的表名。注意:(1)定義有外鍵約束的表必須先刪除外鍵約束,才能刪除。(2)系統(tǒng)表不能使用DROPTABLE語句刪除。,20,5.2表的創(chuàng)建與維護(hù),例5-8刪除當(dāng)前數(shù)據(jù)庫內(nèi)的表。USESalesGODROPTABLEemployee本例從當(dāng)前數(shù)據(jù)庫Sales中刪除employee表及其數(shù)據(jù)和索引。例5-9刪除另外一個(gè)數(shù)據(jù)庫內(nèi)的表。DROPTABLESales.dbo.employee本例刪除Sales數(shù)據(jù)庫內(nèi)的employee表??梢栽谌魏螖?shù)據(jù)庫內(nèi)執(zhí)行此操作。,21,5.3表中數(shù)據(jù)的維護(hù),對(duì)表中數(shù)據(jù)進(jìn)行維護(hù)有兩種方法:使用SQLServer管理平臺(tái)使用Transact-SQL語句插入數(shù)據(jù)語法格式如下:INSERT[INTO]{table_name|view_name}{[(column_list)]{VALUES(value_list)|derived_table|execute_statement}}|DEFAULTVALUES,22,5.3表中數(shù)據(jù)的維護(hù),例5-10使用簡(jiǎn)單的INSERT語句。USESalesGOINSERTSupplierVALUES(S001,華科電子有限公司,施賓彬,朝陽路56號(hào),2636565)例5-11顯式指定列列表。INSERTSales.dbo.Supplier(supplier_id,supplier_name,linkman_name,address,telephone)VALUES(S001,華科電子有限公司,施賓彬,朝陽路56號(hào),2636565),23,5.3表中數(shù)據(jù)的維護(hù),修改數(shù)據(jù)語法格式:UPDATE{table_name|view_name}SET{{column_name|@variable}=expression}[,...n][FROM{}[,...n]][WHERE],24,5.3表中數(shù)據(jù)的維護(hù),例5-14使用簡(jiǎn)單的UPDATE語句。UPDATECustomer2SETlinkman_name=佚名,address=NULL,telephone=‘例5-15在UPDATE語句中使用WHERE子句。UPDATECustomer2SETtelephone=0731-+telephoneWHERELEN(telephone)=7,25,5.3表中數(shù)據(jù)的維護(hù),例5-17在UPDATE語句中使用SELECT…TOP語句。UPDATEGoodsSETUnit_Price=Unit_Price*0.9FROMGoods,(SELECTTOP10Goods_ID,SUM(Order_Num)ASTotal_NumFROMSell_OrderGROUPBYGoods_IDORDERBYTotal_NumDESC)ASTotal_SumWHEREGoods.Goods_id=Total_Sum.Goods_id,26,5.3表中數(shù)據(jù)的維護(hù),刪除數(shù)據(jù)1.DELETE語句DELETE語句可刪除表或視圖中的一行或多行,每一行的刪除都將被記入日志。DELETE語句的語法格式如下:DELETE[FROM]{table_name|view_name}[FROM{}[,...n]][WHERE{- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 管理 數(shù)據(jù)庫 天津大學(xué)
鏈接地址:http://www.szxfmmzy.com/p-3585137.html