文章詳情頁
SQL Server 7.0 入門(一)
瀏覽:124日期:2023-10-28 08:57:01
交互式SQL(Transact SQL,TSQL)它是SQL Server的查詢語言。提供以下命令:· 創(chuàng)建和數(shù)據(jù)庫對象。· 訪問和修改數(shù)據(jù)。· 數(shù)據(jù)聚合(aggregation,又稱聚集)。· 實施安全措施。數(shù)據(jù)庫對象;;;;;;;數(shù)據(jù)庫對象是數(shù)據(jù)庫中的物理對象。這些對象擁有唯一的名字,并保存數(shù)據(jù)和數(shù)據(jù)關(guān)系信息。SQL Server定義了如下幾種對象:1、 表(table)表是用來存儲數(shù)據(jù)的兩維數(shù)組,它有行和列。列也稱為表屬性或字段,表中的每一列擁有唯一的名字,每一列包含具體的數(shù)據(jù)類型,這個數(shù)據(jù)類型由列中的數(shù)據(jù)類型定義。2、 視圖(view)視圖是虛擬的表,它只包含表的一部分。與表不同的是,保存在視圖中的數(shù)據(jù)并不是物理存儲的數(shù)據(jù),它是由表派生的,派生表被稱為視圖的基本表。視圖的定義存儲在數(shù)據(jù)庫中。3、 約束條件(constraint)約束條件定義數(shù)據(jù)的完整性和有效性。約束條件為列中的值建立規(guī)則。換而言之,如果在某一列上定義了結(jié)束條件,則插入這一列的每一個值需要通過約束條件檢查。約束條件是在觸發(fā)器和規(guī)則上保證數(shù)據(jù)完整性和有效性的較佳選擇。SQL Server Query Optimizer利用約束條件產(chǎn)生出低成本的查詢計劃。約束條件有如下類型:· NOT NULL 這個約束條件要求列中不能有NULL值。· CHECK 為列指定能擁有的值的集合后,檢查約束條件。列中任何在定義之外的數(shù)據(jù)都為無效數(shù)據(jù)。有效值集合稱為列的域。· PRIMARY KEY 主關(guān)鍵字是列或列組合,它用來唯一標識一行。· FOREIGN KEY 用來定義兩個表之間的父子關(guān)系。如果一個關(guān)鍵字既是一個表的主關(guān)鍵字的一部分,同時又是另一個表的主關(guān)鍵字,則稱它為外來關(guān)鍵字。外來關(guān)鍵字用來定義數(shù)據(jù)的引用完整性。· UNIQUE 唯一約束條件是指無任何兩行在列中有相同的NON-NULL值。唯一性由主關(guān)鍵字保證,但他們不允許NULL值,并且每一個表只能有一個關(guān)鍵字。4、 默認值(default)默認值是為列定義的值,如果在插入一行時沒有提供某一列的值,則此列使用默認值,默認值可以是以下的一種:· 常量· 數(shù)學表達式· 內(nèi)部函數(shù)(Built-in function)5、 規(guī)則(rule)規(guī)則執(zhí)行和CHECK約束條件同樣的功能。但規(guī)則和約束條件不同的是:規(guī)則作為獨立的對象存在,它可以用于多個表,而約束條件作為表的一部分存儲。然而,規(guī)則是作為向后兼容特點而提供的,建議用戶使用約束條件。6、 觸發(fā)器和存儲過程觸發(fā)器和存儲過程是一個TSQL命令集,它們作為一個對象存儲在數(shù)據(jù)庫中。對象命名約定SQL Server用三段式(three-part)名字標識對象:<數(shù)據(jù)庫名>.<所有者名>.<對象名>前兩部分可以省略,系統(tǒng)有一個默認值。數(shù)據(jù)庫名的默認值是當前數(shù)據(jù)庫,所有者名的默認值是數(shù)據(jù)庫所有者(dbo)。數(shù)據(jù)類型;;;;;;;任何包含數(shù)據(jù)的對象都有一個數(shù)據(jù)類型和它關(guān)聯(lián)。數(shù)據(jù)類型是指定對象能包含何種數(shù)據(jù)的屬性。;;;;;;;SQL Server數(shù)據(jù)類型數(shù)據(jù)類型 說;;明 同;;義 Bit 1位,值為0或1 Int Integer 4字節(jié),值為-2^31~2^31-1 Smallint 2字節(jié),值為-2^15~2^15-1 Tinyint 1字節(jié),值為0~255 Decimal (p,s) 數(shù)字數(shù)據(jù),固定精度為P,寬度為S Numeric Money 8字節(jié),存放貨幣類型,值為-2^63~2^63-1 Small money 4字節(jié),存放貨幣類型,值為-214748.3648~+214748.3647近似數(shù)值數(shù)據(jù)類型 Float (n) N在1~24之間,4字節(jié),7位精度 N=1~7為real N在25~53之間,8字節(jié),15位精度 =8~15為float Datetime 8字節(jié),描述某天的日期和時刻,值的精確度為1/300秒 Smalldatetime 4字節(jié),描述某天的日期和時刻,精度為分鐘 Cursor 對游標的引用 Timestamp 8字節(jié),存放在數(shù)據(jù)庫內(nèi)唯一的數(shù)據(jù) Uniqueidentifier 16字節(jié),存放全局唯一標識(GUID) Char (n) 非unicode字符串的固定長度,n=1~8000 Character (n) Varchar (n) 可變長度,非unicode字符串n=1~8000 Char varying(n) Text 服務器代碼頁中可變長度非unicode數(shù)據(jù)。最大長度為231-1個字符 Nchar 固定長度unicode字符串n=1~4000 National character (n),National char(n) Nvarchar 固定長度unicode字符串n=1~4000 National character varying(n) Ntext 可變長度unicode數(shù)據(jù),最大長度為230-1個字符 National text Binary (n) 固定長度二進制數(shù)據(jù),n在1~8000之間,存儲空間為n+4字節(jié) Varbinary (n) 可變長度二進制數(shù)據(jù),n=1~8000 Binary varying (n) Tmage 可變長度二進制數(shù)據(jù),大小為0~231-1 注意:1);;;;對于數(shù)值型數(shù)據(jù)類型,寬度(scale)是指存儲在小數(shù)點后的數(shù)字位數(shù),而精度(precision)是指能存儲的包含小數(shù)點在內(nèi)的所有數(shù)字位數(shù)。2);;;;money和small money的存儲寬度為4。3);;;;時間戳列值在每一行更新時系統(tǒng)自動更新,時間戳列不能是關(guān)鍵字或關(guān)鍵字的一部分。4);;;;唯一標識數(shù)據(jù)類型不能使用算術(shù)操作符(如+、-等),這種數(shù)據(jù)類型只能使用相等比較操作。Unicode是所有字符集的一致存儲數(shù)據(jù)的標準。它要使用兩倍于非Unicode數(shù)據(jù)存儲的存儲空間。
排行榜
