SQLserver建立表

來源:互聯網
上載者:User

標籤:http   io   ar   os   使用   for   strong   on   資料   

作者:gw ? ?轉載註明出處

??

sql語句建立表的格式:

? CREATE TABLE ?<表名>?

?( ?

? ?<列名> ?<資料類型> [列級完整性條件約束條件]

? [,< 列名> <資料類型> [列級完整性條件約束條件]…]

? [,<表級完整性條件約束條件>]?

? );

??

--上面就是建立表的格式 如果看不懂的話 建議搜尋下Regex?

??

--下面我們就來建立幾張表吧!

??

1.先建立一個資料庫

create database mydb1;

??

2.選擇你的表要放置在那個資料庫裡面

use ?mydb1;

??

3.建立表

??

create table student (

? ? sno ? char(9) primary key,

? ? sname char(20) unique,

? ? ssex ?char(2),

? ? sage ?smallint,

? ? sdept char(20)

);

??

/*解釋:

? ?上面語句的 sno char(9) primary key,--這裡是建立列級完整性條件約束條件, sno是主碼

? ??

? ? ?sname char(20) unique ? ? ? ? ? ?--也是建立列級完整性條件約束條件,unique 是唯一約束?

*/

??

??

create table course (

? ? cno ? char(4) primary key ,

? ? cname char(40),

? ? cpno ?char(4),

? ? ccredit smallint,

? ? foreign key (cpno) references course(cno)?

);

??

/*解釋:

? foreign key (cpno) references course(cno)?

? ?這是建立表級的完整性條件約束 cpno是外碼 參照的是course表中的cno列也就是他自己

*/

??

create table sc ?(

? ? sno char(9),

? ? cno char(4),

? ? grade smallint ,

? ? primary key(sno,cno),

? ? foreign key (sno) references student (sno),

? ? foreign key (cno) references course ?(cno)

);

??

/*解釋:

? ?primary key(sno,cno),表級的完整性條件約束

? ?說明這個表共有兩個主鍵 sno ,cno

*/

下面補充一些重要的基礎:

/*?

? ?SQL 約束

??

1 ? PRIMARY KEY ? ? ? (主鍵約束)

2 ? FOREIGN KEY ? ? ?(外鍵約束)

3 ? UNIQUE ? ? ? ? ? ?(唯一約束)

4 ? CHECK ? ? ? ? ? ? (檢查約束)

??

? ?例如: 下面的SQL語句建立一個成績(score)表,其中使用CHECK約束來限定成績只能在0~100分之間:

? ? ?CREATE TABLE score

? ? ? ? (sutdent_number int,

? ? ? ? ?score int NOT NULL CHECK(score>=0 AND score<=100)

? ? ? ? );

??

5 ? DEFAULT ? ? ? ? ? (預設值)

??

? ?例如: ?CREATE TABLE datetest(

? ? ? ? ? ? c1 int,

? ? ? ? ? ? c2 datetime DEFAULT (getdate())

? ? ? ? ? ? ):

??

??

??

*/

??

??

/*

sql的資料類型

? 關於sql的資料類型在不同的資料庫是有一定的區別的

?但基本的建立表的格式基本相同,

=========================================================================

? SQL Server資料庫的資料類型詳細介紹 ? 下面是我從網上搜的太詳細了我都看暈了

? ? ? ? ? ? ? 參考網址:http://wenda.tianya.cn/question/244e34cc0cb0b2a2

? SQLServer 提供了 25 種資料類型:?

??

Binary [(n)], Varbinary [(n)], ?Char[(n)], ?Varchar[(n)], ?Nchar[(n)],

Nvarchar[(n)],Datetime,Smalldatetime,Decimal[(p[,s])],Numeric[(p[,s])],

Float[(n)],Real,Int,Smallint,Tinyint,Money,Smallmoney,Bit,Cursor,

Sysname,Timestamp,Uniqueidentifier,Text,Image,Ntext。?

??

??

? ?char和nchar是定長字串類型,varchar和nvarchar是變長字串類型。也就是說如果

欄位類型為char(10),那麼即使你輸入的字元為‘abc‘,在資料庫中也會儲存成‘ abc‘,

欄位前面會被自動補上7個空格。而使用varchar(10)則前面不會補空格。 至於前面那個

n有什麼不同,有n代表支援unicode字元,而沒有n的則不支援,text和ntext的區別也

是一樣。?

??

? ?text和char及varchar的區別在於,char和varchar欄位的資料是儲存在表中,而text欄位可以

儲存大容量的文本,資料是儲存在另外的空間裡,當然在表面上看來並沒有什麼區別。?

關於帶big和small的類型。small代表是簡化的資料類型,支援的範圍比較小,但佔用的空間也

小。big是超大的資料類型,佔用的空間大,但支援的範圍也大。比如smallint只佔用一個位元組,

但是只能支援0-255的數字。datetime也是一樣。?

??

? ?char 和nchar 當填入資料為空白時,資料庫自動使用全空格來代替,從而使not null形同虛設。

所以如果欄位不可為空,一定要在程式中提前判斷。?

? char 和nchar因為長度固定,據說讀寫的速度要比 varchar和nvarchar快?

??

下面來分別介紹這些資料類型:?

??

(1)位元據類型?

? ?位元據包括 Binary、Varbinary 和 Image?

Binary 資料類型既可以是固定長度的(Binary),也可以是變長度的。?

Binary[(n)] 是 n 位固定的位元據。其中,n 的取值範圍是從 1 到 8000。其儲存窨的大小是 n + 4 個位元組。?

Varbinary[(n)] 是 n 位變長度的位元據。其中,n 的取值範圍是從 1 到 8000。其儲存窨的大小是 n + 4個

位元組,不是n 個位元組。?

在 Image 資料類型中儲存的資料是以位字串儲存的,不是由 SQL Server 解釋的,必須由應用程式來解釋。

例如,應用程式可以使用BMP、TIEF、GIF 和 JPEG 格式把資料存放區在 Image 資料類型中。?

??

(2)字元資料類型?

??

? ?字元資料的類型包括 Char,Varchar 和 Text?

字元資料是由任何字母、符號和數字任意組合而成的資料。?

Varchar 是變長字元資料,其長度不超過 8KB。

Char 是定長字元資料,其長度最多為 8KB。

超過 8KB 的ASCII 資料可以使用Text資料類型儲存。例如,因為 Html 文檔全部都是 ASCII 字元,

並且在一般情況下長度超過 8KB,所以這些文檔可以 Text 資料類型儲存在SQL Server 中。?

??

(3)Unicode 資料類型?

??

? ?Unicode 資料類型包括 Nchar,Nvarchar 和Ntext?

在 Microsoft SQL Server 中,傳統的非 Unicode 資料類型允許使用由特定字元集定義的字元。

在 SQL Server安裝過程,允許選擇一種字元集。使用 Unicode 資料類型,列中可以儲存任何由Unicode 標準定義的字元。

在 Unicode 標準中,包括了以各種字元集定義的全部字元。使用Unicode資料類型,

所戰勝的窨是使用非 Unicode 資料類型所佔用的窨大小的兩倍。?

??

? 在 SQL Server 中,Unicode 資料以 Nchar、Nvarchar 和 Ntext 資料類型儲存。

使用這種字元類型儲存的列可以儲存多個字元集中的字元。當列的長度變化時,應該使用Nvarchar 字元類型,

這時最多可以儲存 4000 個字元。當列的長度固定不變時,應該使用 Nchar 字元類型,同樣,

這時最多可以儲存4000 個字元。當使用 Ntext 資料類型時,該列可以儲存多於 4000 個字元。?

??

??

(4)日期和時間資料類型?

??

? ?日期和時間資料類型包括 Datetime 和 Smalldatetime兩種類型?

日期和時間資料類型由有效日期和時間組成。

??

? ?例如,有效日期和時間資料包括"4/01/98 12:15:00:00:00 PM"和"1:28:29:15:01AM 8/17/98"。

前一個資料類型是日期在前,時間在後一個資料類型是霎時間在前,日期在後。

在 Microsoft SQL Server中,日期和時間資料類型包括Datetime 和 Smalldatetime 兩種類型時,

所儲存的日期範圍是從 1753 年 1 月 1 日開始,到9999 年12 月 31 日結束(每一個值要求 8 個儲存位元組)。

使用 Smalldatetime 資料類型時,

所儲存的日期範圍是 1900年 1 月 1日 開始,到 2079 年 12 月 31 日結束(每一個值要求 4 個儲存位元組)。?

日期的格式可以設定。設定日期格式的命令如下:?

??

??

? ?Set DateFormat {format | @format _var|

其中,format | @format_var 是日期的順序。有效參數包括 MDY、DMY、YMD、YDM、MYD 和 DYM。在默

認情況下,日期格式為MDY。

例如,當執行 Set DateFormat YMD 之後,日期的格式為年 月 日 形式;

當執行 Set DateFormat DMY 之後,日期的格式為日 月有年 形式?

??

(5)數字資料類型?

??

? ?數字資料只包含數字。數字資料類型包括正數和負數、小數(浮點數)和整數?

整數由正整數和負整數組成,例如 39、25、0-2 和 33967。

在 Micrsoft SQL Server 中,整數儲存的資料類型是Int,Smallint和 Tinyint。

Int 資料類型儲存資料的範圍大於 Smallint 資料類型儲存資料的範圍,

而 Smallint 據類型儲存資料的範圍大於Tinyint 資料類型儲存資料的範圍。

使用 Int 資料存放區資料的範圍是從 -2 147 483 648 到 2 147 483 647(每一個值要求4個位元組儲存空間)。

使用 Smallint 資料類型時,儲存資料的範圍從 -32 768 到 32 767(每一個值要求2個位元組儲存空間)。

使用Tinyint 資料類型時,儲存資料的範圍是從0 到255(每一個值要求1個位元組儲存空間)。?

精確小 數資料在 SQL Server 中的資料類型是 Decimal 和 Numeric。這種資料所佔的儲存空間根據該資料的位元後的位元來確定。?

在SQL Server 中,近似小數資料的資料類型是 Float 和 Real。例如,三分之一這個分數記作。

3333333,當使用近似資料類型時能準確表示。因此,從系統中檢索到的資料可能與儲存在該列中資料不完全一樣。?

??

=======================================================================================

*/

??

SQLserver建立表

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.