sqlserver学习日记之一
1、創(chuàng)建數(shù)據(jù)庫并指定數(shù)據(jù)庫文件的位置和大小
create database eshop
on primary
( name=Eshop,
? filename='D:\MSSQL\data\eshop.mdf',
? size=10mb,
? maxsize=100mb,
? filegrowth=5mb)
log on
( name=eshoplog
? filename='d:\mssql\log\eshoplog.mdf',
? size=10mb,
? maxsize=100mb,
? filegrowth=5mb??
)
2、修改數(shù)據(jù)庫
alter database eshop
? add file
? ( name=eshop2
??? filename='d:\mssql\data\eshop2.ndf',
??? size=10mb,
??? filegrowth=10mb
? )
3、數(shù)據(jù)庫命名中包含保留關鍵字的TSQL操作。
在T-SQL中,有多個保留關鍵字,例如create,table,order等,它們有特殊的含義,這些保留關鍵字列在microsoft sql server Transact-Sql參考手冊的“保留關鍵字”話題中,如果希望使用這些保留字作為表名,列名,或者其他SQL對象名稱,那么當它們出現(xiàn)在SQL語句中時,必須用雙引號括起這些名稱,下面示例如何編寫一個SQL語句,從表名為Order的表中檢索列。
select * from "order" where custid=12345
一般,應該避免使用SQL的保留字或者特殊字符作為SQL對象的名稱
4、在指定文件組上創(chuàng)建表
可以定義文件組,它是一個或者多個存儲應用程序數(shù)據(jù)的操作系統(tǒng)文件的集合,為了把一個新表放在用戶定義的文件組上,可以在create table語句的末端增加一個on子句:
create table eshop.dbo.customer
(
?custid int not null
??check(custid>0),
?name char(30) not null
??check(name<>'')
...
)
on eshopGroupfile1
注意:eshopGroupfile1必須是已經(jīng)被創(chuàng)建的數(shù)據(jù)庫文件
5、TimeStamp列
無論何時插入或者修改一行數(shù)據(jù)時,都會自動修改用TimeStamp數(shù)據(jù)類型說明的列(或者名為TimeStamp但沒有數(shù)據(jù)類型的列)。sql server 設置time stamp列為下述值:保證該值在數(shù)據(jù)庫中是唯一的,并且大于以前指定的值,該值的數(shù)據(jù)類型與datatime數(shù)據(jù)類型不同,永遠也不能直接設置timestamp列的值。
一個表只能有一個timestamp列,可以使用timestamp列的值決定自從上次檢索之后是否有其他進程修改數(shù)據(jù)行,在應用程序中,檢查timestamp列的值提供了一種有效的方法,可以用這種方法在防止與其他進程的修改沖突時,允許并行瀏覽和修改表。
6、用戶定義的數(shù)據(jù)類型
sql server提供了一種非標準的數(shù)據(jù)類型,稱之為用戶定義的數(shù)據(jù)類型,用戶定義的數(shù)據(jù)類型是內置數(shù)據(jù)類型,長度,和可空性的同義詞。
為了創(chuàng)建一個用戶定義的數(shù)據(jù)類型,使用sp_addtype存儲過程,如下所示:
sp_addtype TDescription,'Character Varying(50)','not null'
本示例創(chuàng)建了TDescription數(shù)據(jù)類型,作為Character Varying(50)數(shù)據(jù)類型的同義詞,該數(shù)據(jù)類型不允許空,在創(chuàng)建了這種數(shù)據(jù)類型之后,可以把它用在create table列說明中,例如:
...,
productDescription TDescription
等價于:
productDescription Character Varying (50) not null
用戶定義的數(shù)據(jù)類型提供了一種很好的方法,可以標準化用于主鍵和外鍵的數(shù)據(jù)類型,以及標準化經(jīng)常重復的列的定義。在每個數(shù)據(jù)庫中,數(shù)據(jù)類型名稱必須是唯一的,可遵循一些約定,每個用戶定義的數(shù)據(jù)類型以T開頭,用于區(qū)別數(shù)據(jù)類型名稱和列名稱。
如果不再需要某個用戶定義的數(shù)據(jù)類型,可以使用sp_droptype存儲過程刪除它:
sp_droptype TDescription
7、增加、刪除、修改表列
可以使用Alter Table語句在一個已經(jīng)存在的表中增加一個新列,如下所示在customer表中增加一個新列:
alter table eshop.dbo.customer
?add discount decimal(5,3) default 0
??check(discount between 0 and 100)
值得注意的是,alter table時所有的新列要么允許為空,要么有一個default子句,以便sql server可以為已有行初始化該列。
alter table還允許改變已有列的數(shù)據(jù)類型、大小、和可空性。下面的語句設置Discount列的數(shù)據(jù)類型和大小及不允許為空:
alter table eshop.dbo.customer
?alter column Discount Decimal(7,5) not null
一般不能修改text,ntext,image,timestamp列;不能修改計算可復制列;不能修改計算的列,約束,缺省值,或者索引中引用的列,這種規(guī)則的例外是可以增加在索引中使用的變長度列的長度,并且可以改變在唯一性約束或者檢查約束中使用的變長度列的長度。另外。不能修改有RowGuidCol屬性的列的類型,大小或者可空性,可以為UniqueIdentifier列增加或者刪除RowGuidCol屬性,這與Alter Table語句的形式稍微有些不同。
alter table eshop.dbo.customer
?alter column RowId add RowGuidCol
使用alter table語句還可以從表中刪除一個已經(jīng)存在的列
alter table eshop.dbo.customer
?drop column discount
在可以刪除一列之前,必須刪除任何引用該列的約束,缺省表達式,計算列表達式,或者索引,不能刪除復制的列。
轉載于:https://www.cnblogs.com/liuxing3169/articles/1420939.html
總結
以上是生活随笔為你收集整理的sqlserver学习日记之一的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我的心爱宝贝作文500字
- 下一篇: 大班体育游戏教案《快乐小足球》反思