亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > SQL Server > 正文

跟我學SQL:(五)創建和修改表格

2019-11-03 08:37:14
字體:
來源:轉載
供稿:網友
再次歡迎您來到SQL(結構化查詢語言)基礎系列教程。本文將介紹數據庫定義語言(DDL)用于創建數據庫和表格以及修改表格結果的指令。 

  
當你使用這些指令時一定要小心——它很容易刪去你的數據庫中的主要結構令您丟失數據。所以,在您開始修改數據庫之前,您需要知道數據庫是什么。


--------------------------------------------------------------------------------

數據庫之間的差異 
本文中的樣品查詢系統遵循SQL92 ISO標準。并不是所有的數據庫都遵循該標準,有些數據庫做了改進,這會產生不可預料的結果。如果你不能確定你的數據庫是否支持該標準,請參考相應的文檔。


--------------------------------------------------------------------------------

創建數據庫
為了創建表格,你首先需要需要創建一個可以容納表格的數據庫。SQL用于創建數據庫的基本語句是:
CREATE DATABASE dbname;

你的數據庫用戶必須有建立數據庫的適當權限。如果與你有關的用戶不能發出用于創建新數據庫的命令,要求數據庫管理員為你建立數據庫,你也作為管理員登錄然后建立數據庫并設置權限。

舉個例子,用CREATE指令為一個應用程序建立一個數據庫用于顯示一個目錄:
CREATE DATABASE Catalog;

這給你一個用于在查詢時與其它表格區分的表格名字。下一步是創建用于輸入它的表格。

創建表格
如你所知,表格是有若干個欄目所組成。當創建表格時,你可以定義欄目并分配字段屬性。表格建立后,可以用ALTER表格指令來修改它,我們稍后將提到這一點。

你可以用下面這條指令來創建數據庫,命令行的參數為表格名字、欄目名字,還有每一欄的數據類型。
CREATE TABLE table_name
(column1 data_type, column2 data_type, column3 data_type);

不同的數據庫提供商的標準差別很大。你的幫助文檔中應該有一段詳細說明如何使用每一種數據、接受何種參數。為了通用,我在表A中列出了一些常用的數據類型。

表A
 
數據類型
 用法
 詳細說明
 
Char
 Char(8)
 它包含了一個固定長度的字符串,其值常常是字符串長度。
 
Varchar
 Varchar(128)
 它包含了一個長度不大于指定值的長度可變的字符串。
 
Int
 Int(32)
 這是一個不大于指定值得整數,也做Number或Integer。
 
Decimal
 Decimal(12,2)
 這是一個總位數和小數點后位數不大于指定值得小數,也被稱為Numeric或Number。
 
Binary
 Binary
 用于存儲二進制對象,在數據庫中它一般不可分解和顯示,也稱為Raw或Blob。
 
Boolean
 Boolean
 用來只是真或假,也成為Bit或Byte。
 

通用數據類型


在本例中,我們建立了一個存放庫存商品信息的表格。所用到的欄目和數據類型如表B所示:

表B
 
欄目名稱:
 

除了數據類型,你還可以在創建表格時定義自動增量字段(auto-incremented field)、關鍵字、索引和特殊數值限制。在表格定義時,這些參數與數據類型一同傳遞。如果在創建表格Product時定義具有特殊數值限制的自動增量prod_id,命令如下:
CREATE TABLE Products
(prod_id INT(16)AUTO_INCREMENT, prod_color VARCHAR(20), prod_descr VARCHAR(255), prod_size DECIMAL(8,2), UNIQUE (`prod_id`));

如果把prod_id做為索引字段定義,可以用CREATE INDEX:
CREATE INDEX ProdIndex ON Product (prod_id);

這里有必要重申:數據庫提供商在關鍵字的處理上有所不同。所以,具體情況請參考你的數據庫提供商的文檔。


--------------------------------------------------------------------------------

關于索引的更多內容:

索引是一個比較深的課題。除了介紹有關關鍵字和索引的理論,Builder.com的供稿人Eric Roland寫了幾篇很好的文章,你可以通過它們來學到更多的相關知識。

修改表格
  
當你開始對表格進行操作時,你也許覺得有必要修改表格的結構、字段類型等等。在前面,我強烈建議你避免在生產環境(production environment)這么做。因為有些操作,如添加、刪除和修改字段可能會刪除或破壞相關字段中的數據。

好,現在讓我們看看如何修改表格。首先,在表格Product中加入一欄。你可以指定該欄插入的相對其它欄的位置,也可以讓它插到表格末端(默認):
ALTER TABLE Product ADD prod_name VARCHAR(20) AFTER prod_id;

用類似的語句刪除一個欄目:
ALTER TABLE Product DROP prod_size;

最后,更改一個欄目的數據類型:
ALTER TABLE Product CHANGE prod_color prod_color_id INT(20);

現在,你的表格如表C所示:

表C
 
欄目名稱:
 prod_id
 prod_name
 prod_color_id
 prod_descr
 
數據類型:
 Int(16)
 Varchar(20)
 Int(20)
 Varchar(255))
 


注意,有些數據庫不支持關鍵字DROP。另外,如果你改變現有的某一欄的數據類型,大多數數據庫會試圖轉化該欄目現有數據的數據類型。然而,如果是轉為一個不支持的數據類型,數據就有可能丟失。舉例來說,如果把一個類型為Varchar的包含人名字的字段改為Int類型,轉換的結果可能是整型的默認值。

刪除表格和數據庫
在刪除表格和數據庫之前,你需要確保丟失這些數據不會造成惡果。如果你刪除數據庫,庫中的所有表格和內容都會被清除。如果你刪除一個表格,表格中的所有內容都會丟失,但是庫中的其它表格沒有影響。

在刪除表格或整個欄目之前,你必須清楚數據庫的結構。如果你進入一個已經存在的數據庫并錯誤刪除了某個元素,可能會影響到促發條件(?trigger)、
存儲過程和視圖。有些數據庫支持用關鍵字RESTRICT和CASCADE去預防由于刪除表格帶來的損失。RESTRICT一般按默認設置,預防丟失表格,而CASCADE用于刪除與該表格有關的實體。

現在上面建立的表格Product是可以被刪除的,我們開始刪除它:
DROP TABLE Product;

現在刪除數據庫:
DROP DATABASE Catalog;


大多數數據庫軟件提供商支持DROP DATABASE命令,盡管它是在SQL99標準中被定義而不是SQL92。

部分數據庫提供了FLUSH命令,該命令可以讓你刪除表格中的內容但又可以保持表格的結果,:
FLUSH TABLE Product;

如你所見,刪除數據庫中的主要結構并丟失所存的所有數據的容易程度令人難以想象,所以,一定要小心使用這些命令,而當你不清楚數據庫中的內容時,就不要使用這些命令。 
數據庫管理
在前一篇文章中,你學會了如何在一個或多個表格中查找數據?,F在,你學會了如何把你操作數據庫結構。你學會了創建、修改并銷毀表格和數據。這些都是設計數據庫驅動的應用程序的必須用的操作。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品福利在线视频| www.99久久热国产日韩欧美.com| 欧美在线视频在线播放完整版免费观看| 中文字幕成人精品久久不卡| 精品国产精品自拍| 欧美老少做受xxxx高潮| 亚洲福利视频专区| 国产又爽又黄的激情精品视频| 亚洲伊人一本大道中文字幕| 日韩女优在线播放| 中文字幕久精品免费视频| 国产日韩欧美在线看| 亚洲激情久久久| 日韩av手机在线观看| 久久国产精品久久国产精品| www国产精品com| 欧美午夜美女看片| 日韩欧美中文字幕在线观看| 欧洲成人在线视频| 国产精品视频久久久| 亚洲视频日韩精品| 亚洲精品av在线播放| 国产精品福利片| 久久久精品中文字幕| 欧美成人午夜激情| 国产精品免费一区| 日本中文字幕久久看| 亚洲视频一区二区三区| 亚洲国产日韩欧美在线99| 国产精品久久久久久久久男| 欧美极品第一页| 亚洲3p在线观看| 亚洲一区av在线播放| 精品国产拍在线观看| 日韩av在线直播| 久久精品一偷一偷国产| 国产精品视频yy9099| 成人午夜高潮视频| 久久中文字幕一区| 久久精品一本久久99精品| 国产九九精品视频| 一区二区三区 在线观看视| 欧美性生交xxxxxdddd| 日韩精品免费在线| 91av视频导航| 国产成人精品免高潮费视频| 欧美成人免费一级人片100| 2019中文字幕在线| 96国产粉嫩美女| 美女福利精品视频| 欧美丰满少妇xxxxx做受| 亚洲va久久久噜噜噜久久天堂| 欧美激情视频三区| 免费不卡欧美自拍视频| 亚洲一区二区三区香蕉| 丝袜亚洲另类欧美重口| 精品无人区乱码1区2区3区在线| 国产精自产拍久久久久久蜜| 亚洲另类激情图| 亚洲性av在线| 亚洲性视频网址| 亚洲一区久久久| 国产精品高潮粉嫩av| 国产精品福利观看| 亚洲四色影视在线观看| 欧美日韩美女视频| 亚洲欧美www| 亚洲欧美精品中文字幕在线| 欧美性受xxx| 国产午夜精品全部视频播放| 亚洲人成电影网| 欧美日韩国产中字| 国产www精品| 精品人伦一区二区三区蜜桃网站| www国产精品视频| 久久成人18免费网站| 亚洲成人黄色网| 亚洲另类欧美自拍| 亚洲欧洲国产精品| 亚洲精品999| 欧美精品午夜视频| 91美女片黄在线观看游戏| 78m国产成人精品视频| 91免费看片网站| **欧美日韩vr在线| 午夜精品美女自拍福到在线| 欧美另类精品xxxx孕妇| 日韩av不卡在线| 国产一区二区三区直播精品电影| 亚洲第一av网| 国产视频精品一区二区三区| 国产精品电影在线观看| 久久久免费在线观看| 精品视频—区二区三区免费| 久久99久国产精品黄毛片入口| 日本免费一区二区三区视频观看| 日韩精品中文在线观看| 欧美成人精品三级在线观看| 亚洲最大福利网| 日韩在线观看免费高清| 国产精品99免视看9| 国产亚洲精品日韩| 7777免费精品视频| 在线观看国产成人av片| 日韩三级成人av网| 国产精品网红直播| 欧美一级高清免费播放| 91久久精品国产91性色| 亚洲欧美国产一区二区三区| 精品视频偷偷看在线观看| 欧美激情欧美激情在线五月| 日韩电影免费观看在线观看| 国产精品久久久久福利| 国产黑人绿帽在线第一区| 亚洲激情在线观看| 日本高清视频精品| 日韩免费观看在线观看| 久久精品视频在线观看| 国产精品视频免费在线观看| 色播久久人人爽人人爽人人片视av| 在线成人免费网站| 性色av香蕉一区二区| 中文字幕一区二区三区电影| 日韩va亚洲va欧洲va国产| 亚洲最大成人免费视频| 夜夜嗨av一区二区三区免费区| 97视频在线观看免费高清完整版在线观看| 久久综合伊人77777蜜臀| 国产精品久久久av| 成人精品一区二区三区| 少妇高潮久久久久久潘金莲| 亚洲iv一区二区三区| 亚洲片国产一区一级在线观看| 欧美高清在线观看| 91社影院在线观看| 国产在线精品成人一区二区三区| 久久91精品国产| 成人黄色免费在线观看| 国产亚洲精品美女| 国产精品亚洲自拍| 亚洲视频免费一区| 日韩av网站在线| 91久久精品国产91性色| 狠狠躁夜夜躁人人爽天天天天97| 欧美亚洲国产成人精品| 日韩精品视频免费| 欧美在线视频一区二区| 性欧美长视频免费观看不卡| 国产亚洲精品日韩| 国产精品男人的天堂| 国产在线拍偷自揄拍精品| 亚洲一区中文字幕在线观看| 欧美高清一级大片| 97视频在线观看播放| 亚洲国产天堂久久综合| 国产精品视频在线观看| 夜夜嗨av一区二区三区免费区| 91免费看视频.| 国产综合香蕉五月婷在线| 日本久久中文字幕| 欧美午夜精品久久久久久久| 黑人精品xxx一区| 日本免费久久高清视频| 亚洲日本欧美中文幕|