交互式sql(transact sql,tsql)
它是sql server的查詢語言。提供以下命令:
· 創建和數據庫對象。
· 訪問和修改數據。
· 數據聚合(aggregation,又稱聚集)。
· 實施安全措施。
數據庫對象
???????數據庫對象是數據庫中的物理對象。這些對象擁有唯一的名字,并保存數據和數據關系信息。sql server定義了如下幾種對象:
1、 表(table)
表是用來存儲數據的兩維數組,它有行和列。列也稱為表屬性或字段,表中的每一列擁有唯一的名字,每一列包含具體的數據類型,這個數據類型由列中的數據類型定義。
2、 視圖(view)
視圖是虛擬的表,它只包含表的一部分。與表不同的是,保存在視圖中的數據并不是物理存儲的數據,它是由表派生的,派生表被稱為視圖的基本表。視圖的定義存儲在數據庫中。
3、 約束條件(constraint)
約束條件定義數據的完整性和有效性。約束條件為列中的值建立規則。換而言之,如果在某一列上定義了結束條件,則插入這一列的每一個值需要通過約束條件檢查。約束條件是在觸發器和規則上保證數據完整性和有效性的較佳選擇。sql server query optimizer利用約束條件產生出低成本的查詢計劃。約束條件有如下類型:
· not null 這個約束條件要求列中不能有null值。
· check 為列指定能擁有的值的集合后,檢查約束條件。列中任何在定義之外的數據都為無效數據。有效值集合稱為列的域。
·?primary key 主關鍵字是列或列組合,它用來唯一標識一行。
· foreign key 用來定義兩個表之間的父子關系。如果一個關鍵字既是一個表的主關鍵字的一部分,同時又是另一個表的主關鍵字,則稱它為外來關鍵字。外來關鍵字用來定義數據的引用完整性。
· unique 唯一約束條件是指無任何兩行在列中有相同的non-null值。唯一性由主關鍵字保證,但他們不允許null值,并且每一個表只能有一個關鍵字。
4、 默認值(default)
默認值是為列定義的值,如果在插入一行時沒有提供某一列的值,則此列使用默認值,默認值可以是以下的一種:
· 常量
· 數學表達式
· 內部函數(built-in function)
5、 規則(rule)
規則執行和check約束條件同樣的功能。但規則和約束條件不同的是:規則作為獨立的對象存在,它可以用于多個表,而約束條件作為表的一部分存儲。然而,規則是作為向后兼容特點而提供的,建議用戶使用約束條件。
6、 觸發器和存儲過程
觸發器和存儲過程是一個tsql命令集,它們作為一個對象存儲在數據庫中。
對象命名約定
sql server用三段式(three-part)名字標識對象:
..
前兩部分可以省略,系統有一個默認值。數據庫名的默認值是當前數據庫,所有者名的默認值是數據庫所有者(dbo)。
數據類型
???????任何包含數據的對象都有一個數據類型和它關聯。數據類型是指定對象能包含何種數據的屬性。
???????sql server數據類型
數據類型?
說??明?
同??義?
bit?
1位,值為0或1?
int?
integer?
4字節,值為-2^31~2^31-1?
smallint?
2字節,值為-2^15~2^15-1?
tinyint?
1字節,值為0~255?
decimal (p,s)?
數字數據,固定精度為p,寬度為s?
numeric?
money?
8字節,存放貨幣類型,值為-2^63~2^63-1?
small money?
4字節,存放貨幣類型,值為-214748.3648~+214748.3647近似數值數據類型?
float (n)?
n在1~24之間,4字節,7位精度?
n=1~7為real?
n在25~53之間,8字節,15位精度?
=8~15為float?
datetime?
8字節,描述某天的日期和時刻,值的精確度為1/300秒?
smalldatetime?
4字節,描述某天的日期和時刻,精度為分鐘?
cursor?
對游標的引用?
timestamp?
8字節,存放在數據庫內唯一的數據?
uniqueidentifier?
16字節,存放全局唯一標識(guid)?
char (n)?
非unicode字符串的固定長度,n=1~8000?
character (n)?
varchar (n)?
可變長度,非unicode字符串n=1~8000?
char varying(n)?
text?
服務器代碼頁中可變長度非unicode數據。最大長度為231-1個字符?
nchar?
固定長度unicode字符串n=1~4000?
national character (n),
national char(n)?
nvarchar?
固定長度unicode字符串n=1~4000?
national character varying(n)?
ntext?
可變長度unicode數據,最大長度為230-1個字符?
national text?
binary (n)?
固定長度二進制數據,n在1~8000之間,存儲空間為n+4字節?
varbinary (n)?
可變長度二進制數據,n=1~8000?
binary varying (n)?
tmage?
可變長度二進制數據,大小為0~231-1?
注意:
1)????對于數值型數據類型,寬度(scale)是指存儲在小數點后的數字位數,而精度(precision)是指能存儲的包含小數點在內的所有數字位數。
2)????money和small money的存儲寬度為4。
3)????時間戳列值在每一行更新時系統自動更新,時間戳列不能是關鍵字或關鍵字的一部分。
4)????唯一標識數據類型不能使用算術操作符(如+、-等),這種數據類型只能使用相等比較操作。unicode是所有字符集的一致存儲數據的標準。它要使用兩倍于非unicode數據存儲的存儲空間。
?以上就是SQL Server 7.0 入門(一)的內容,更多相關內容請關注PHP中文網(www.php.cn)!