標籤: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建立表