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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

SQL Server 2008 复习(二)

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

第4章 表和數據完整性

類別數據類型字節數取值范圍作用
Integerbigint8-2E63~2E63-1存儲非常大的正負整數
int4-2E31~2E31-1存儲正負整數
smallint2-32 768~32 767存儲正負整數
tinyint10~255存儲小范圍的正整數
Exactdecimal(p,s)5~17-10E38+1~10E38-1最大可存儲38位十進制數
numericnumeric(p,s)5~17-10E38+1~10E38-1可以與decimal交換使用
float§4/8-2.23E308~2.23E308存儲大型浮點數,超過十進制數據類型的容量
real4-3.4E38~3.4E38仍有效,為滿足SQL-92標準,已經被float替換了
數據類型字節數字符數
char(n)1~8 000最多8 000個字符
varchar(n)1~8 000最多8 000個字符
varchar(max)最大2 G最多1 073 741 824個字符
text最大2 G最多1 073 741 824個字符
nchar(n)2~8 000最多4 000個字符
nvarchar(n)2~8 000最多4 000個字符
nvarchar(max)最大2 G最多536 870 912個字符
ntext最大2 G最多536 870 912個字符
日期時間類型字節數取值范圍
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點,精度為0. 0001毫秒
數據類型字節數取值范圍
money8-922 337 203 685 477.5808~922 337 203 685 477.5807
smallmoney4-214 748.3648~214 748.3647
數據類型字節數作用
binary(n)1~8 000存儲固定大小的二進制數據
varbinary(n)1~8 000存儲可變大小的二進制數據
varbinary(max)最多2 G存儲可變大小的二進制數據
image最多2 G存儲可變大小的二進制數據

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

列序號列名類型取值說明
1coursenonchar(6)主鍵
2cnamenchar(20)
3typenchar(8)
4periodtinyint
5creditnumeric(4,1)
在數據庫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命令建立學生分數表score,表結構如表4-10所示。該表中主鍵由兩個列構成。

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,表結構如表4-11所示。

列序號列名類型取值說明
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】創建表結構如表4-12所示的班級信息表class。然后查看該表的有關CREATE TABLE命令腳本信息。

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

【例4.5】為了完善teaching數據庫的表間聯系,創建表結構如所示的紐帶表teach_class。

列序號列名類型取值說明列含義
1teachernonchar(6)主鍵教師編號
2classnonchar(7)主鍵班級編號
3coursenonchar(6)主鍵課程編號
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數據庫中創建一個新表student1,然后修改其列屬性。
程序代碼如下:

CREATE TABLE student1 (column_grade int) --創建新表 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數據類型和名稱。
程序代碼如下:

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數據庫中的score表中添加數據。
程序代碼如下:

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

【例4.9】更改teaching數據庫中的score表中的學號為17124113307、課程號為c05127的期末成績修改為87
程序代碼如下:

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

【例4.10】為數據庫test01中表student1輸入3行數據,然后將列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】刪除數據庫test01中表student1的列st_class的值為jsj1012的行。
程序代碼如下:

DELETE FROM student1 WHERE st_class=‘jsj1812’

【例4.16】為數據庫teaching中的學生表student的列Email創建一個UNIQUE約束。
程序代碼如下:(PRIMARY KEY 約束默認為 CLUSTERED;UNIQUE 約束默認為 NONCLUSTERED)

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

【例4.17】為數據庫teaching中表score的列studentno創建一個FOREIGN KEY約束。

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

【例4.18】利用命令刪除數據庫teaching中表score的一個約束CK_usually。
程序代碼如下:

ALTER TABLE score DROP CONSTRAINT CK_usually

【例4.19】為數據庫teaching創建一條規則score_rule,該規則規定凡是分數類的列值必須在0~100之間。
程序代碼如下:

CREATE RULE score_rule AS @score BETWEEN 0 and 100 GO

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。