日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

SQL Server 2008 复习(二)

發(fā)布時(shí)間:2024/9/27 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SQL Server 2008 复习(二) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

第4章 表和數(shù)據(jù)完整性

類別數(shù)據(jù)類型字節(jié)數(shù)取值范圍作用
Integerbigint8-2E63~2E63-1存儲(chǔ)非常大的正負(fù)整數(shù)
int4-2E31~2E31-1存儲(chǔ)正負(fù)整數(shù)
smallint2-32 768~32 767存儲(chǔ)正負(fù)整數(shù)
tinyint10~255存儲(chǔ)小范圍的正整數(shù)
Exactdecimal(p,s)5~17-10E38+1~10E38-1最大可存儲(chǔ)38位十進(jìn)制數(shù)
numericnumeric(p,s)5~17-10E38+1~10E38-1可以與decimal交換使用
float§4/8-2.23E308~2.23E308存儲(chǔ)大型浮點(diǎn)數(shù),超過(guò)十進(jìn)制數(shù)據(jù)類型的容量
real4-3.4E38~3.4E38仍有效,為滿足SQL-92標(biāo)準(zhǔn),已經(jīng)被float替換了
數(shù)據(jù)類型字節(jié)數(shù)字符數(shù)
char(n)1~8 000最多8 000個(gè)字符
varchar(n)1~8 000最多8 000個(gè)字符
varchar(max)最大2 G最多1 073 741 824個(gè)字符
text最大2 G最多1 073 741 824個(gè)字符
nchar(n)2~8 000最多4 000個(gè)字符
nvarchar(n)2~8 000最多4 000個(gè)字符
nvarchar(max)最大2 G最多536 870 912個(gè)字符
ntext最大2 G最多536 870 912個(gè)字符
日期時(shí)間類型字節(jié)數(shù)取值范圍
date10從0001年1月1到9999年12月31日,
datetime8從到,精度為3.33毫秒
Datetime2(n)8從到,精度為0. 0001毫秒
smalldatetime4從到,精度為1分鐘
datetimeooffset(n)26~34從到,精度為0. 0001毫秒
time(n)3~5從00:00:00~24:00:00點(diǎn),精度為0. 0001毫秒
數(shù)據(jù)類型字節(jié)數(shù)取值范圍
money8-922 337 203 685 477.5808~922 337 203 685 477.5807
smallmoney4-214 748.3648~214 748.3647
數(shù)據(jù)類型字節(jié)數(shù)作用
binary(n)1~8 000存儲(chǔ)固定大小的二進(jìn)制數(shù)據(jù)
varbinary(n)1~8 000存儲(chǔ)可變大小的二進(jìn)制數(shù)據(jù)
varbinary(max)最多2 G存儲(chǔ)可變大小的二進(jìn)制數(shù)據(jù)
image最多2 G存儲(chǔ)可變大小的二進(jìn)制數(shù)據(jù)

【例4.1】利用CREATE TABLE命令建立課程信息表course,表結(jié)構(gòu)如表4-9所示。

列序號(hào)列名類型取值說(shuō)明
1coursenonchar(6)主鍵
2cnamenchar(20)
3typenchar(8)
4periodtinyint
5creditnumeric(4,1)
在數(shù)據(jù)庫(kù)teaching建立課程信息表course的程序代碼如下 CREATE TABLE teaching.dbo.course(courseno nchar(6) NOT NULL,cname nchar(20) NULL,type nchar(8) NULL,period tinyint NULL,credit numeric(4, 1) NULL,CONSTRAINT PK_course PRIMARY KEY CLUSTERED (Courseno ASC ) ) ON [PRIMARY]

【例4.2】利用CREATE TABLE命令建立學(xué)生分?jǐn)?shù)表score,表結(jié)構(gòu)如表4-10所示。該表中主鍵由兩個(gè)列構(gòu)成。

CREATE TABLE dbo.score(studentno nchar(11) NOT NULL,courseno nchar(6) NOT NULL,usually numeric(6, 2) NULL,final numeric(6, 2) NULL,CONSTRAINT PK_score PRIMARY KEY CLUSTERED (studentno ASC,courseno ASC ))

【例4.3 】利用CREATE TABLE命令建立教師信息表teacher,表結(jié)構(gòu)如表4-11所示。

列序號(hào)列名類型取值說(shuō)明
1teachernonchar(6)主鍵
2tnamenchar(8)
3majornchar(10)
4profnchar(10)
5departmentnchar(12)
CREATE TABLE dbo.teacher(teacherno nchar(6) NOT NULL,tname nchar(8) NULL,major nchar(10) NULL,prof nchar(10) NOT NULL,department nchar(12) NULL,CONSTRAINT PK_teacher PRIMARY KEY CLUSTERED ( teacherno ASC ) )

【例4.4】創(chuàng)建表結(jié)構(gòu)如表4-12所示的班級(jí)信息表class。然后查看該表的有關(guān)CREATE TABLE命令腳本信息。

列序號(hào)列名類型取值說(shuō)明
1classnonchar(7)主鍵
2classnamenchar(12)
3departmentnchar(12)
4monitornchar(8)

【例4.5】為了完善teaching數(shù)據(jù)庫(kù)的表間聯(lián)系,創(chuàng)建表結(jié)構(gòu)如所示的紐帶表teach_class。

列序號(hào)列名類型取值說(shuō)明列含義
1teachernonchar(6)主鍵教師編號(hào)
2classnonchar(7)主鍵班級(jí)編號(hào)
3coursenonchar(6)主鍵課程編號(hào)
CREATE TABLE [dbo].[teach_class]([teacherno] [nchar](6) COLLATE Chinese_PRC_CI_AS NOT NULL,[classno] [nchar](7) COLLATE Chinese_PRC_CI_AS NOT NULL,[courseno] [nchar](6) COLLATE Chinese_PRC_CI_AS NOT NULL,CONSTRAINT [PK_teach_class] PRIMARY KEY CLUSTERED ( [teacherno] ASC,[classno] ASC,[courseno] ASC )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY]

例4.6】在test01數(shù)據(jù)庫(kù)中創(chuàng)建一個(gè)新表student1,然后修改其列屬性。
程序代碼如下:

CREATE TABLE student1 (column_grade int) --創(chuàng)建新表 GOEXEC sp_help student1 --查看表的信息 GOALTER TABLE student1 ADD column_class VARCHAR(20) NULL --添加列 GOEXEC sp_help student1 GOALTER TABLE student1 DROP COLUMN column_grade --刪除列 GOEXEC sp_help student1 GO

【例4.7】修改test01中表student1的列column_class數(shù)據(jù)類型和名稱。
程序代碼如下:

Use test01 GO ALTER TABLE student1 ALTER COLUMN column_class char(20) NOT NULL GO EXEC sp_rename ‘student1.column_class’,‘st_class‘ GO

【例4.8】向teaching數(shù)據(jù)庫(kù)中的score表中添加數(shù)據(jù)。
程序代碼如下:

INSERT INTO score (usually,courseno,final,studentno) VALUES (79, 'c05109',91,'16137221508' )INSERT INTO score VALUES('17124113307','c05127',93,78)

【例4.9】更改teaching數(shù)據(jù)庫(kù)中的score表中的學(xué)號(hào)為17124113307、課程號(hào)為c05127的期末成績(jī)修改為87
程序代碼如下:

UPDATE score SET final =87 WHERE studentno=‘17124113307’ AND courseno=‘c05127’

【例4.10】為數(shù)據(jù)庫(kù)test01中表student1輸入3行數(shù)據(jù),然后將列st_class的值全部改為jsj1012。
程序代碼如下:

INSERT INTO student1 VALUES('jixie1709') INSERT INTO student1 VALUES('huag1602') INSERT INTO student1 VALUES('txun1612') GO UPDATE student1 SET st_class=’ jsj1812’ GO

【例4.11】刪除數(shù)據(jù)庫(kù)test01中表student1的列st_class的值為jsj1012的行。
程序代碼如下:

DELETE FROM student1 WHERE st_class=‘jsj1812’

【例4.16】為數(shù)據(jù)庫(kù)teaching中的學(xué)生表student的列Email創(chuàng)建一個(gè)UNIQUE約束。
程序代碼如下:(PRIMARY KEY 約束默認(rèn)為 CLUSTERED;UNIQUE 約束默認(rèn)為 NONCLUSTERED)

ALTER TABLE student ADD CONSTRAINT u_Email UNIQUE NONCLUSTERED (Email) GO

【例4.17】為數(shù)據(jù)庫(kù)teaching中表score的列studentno創(chuàng)建一個(gè)FOREIGN KEY約束。

ALTER TABLE score WITH CHECK ADD CONSTRAINT FK_sc_stud FOREIGN KEY (studentno) REFERENCES student (studentno) GO

【例4.18】利用命令刪除數(shù)據(jù)庫(kù)teaching中表score的一個(gè)約束CK_usually。
程序代碼如下:

ALTER TABLE score DROP CONSTRAINT CK_usually

【例4.19】為數(shù)據(jù)庫(kù)teaching創(chuàng)建一條規(guī)則score_rule,該規(guī)則規(guī)定凡是分?jǐn)?shù)類的列值必須在0~100之間。
程序代碼如下:

CREATE RULE score_rule AS @score BETWEEN 0 and 100 GO

總結(jié)

以上是生活随笔為你收集整理的SQL Server 2008 复习(二)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。