SQL Server 2008 复习(二)
第4章 表和數(shù)據(jù)完整性
| Integer | bigint | 8 | -2E63~2E63-1 | 存儲(chǔ)非常大的正負(fù)整數(shù) |
| int | 4 | -2E31~2E31-1 | 存儲(chǔ)正負(fù)整數(shù) | |
| smallint | 2 | -32 768~32 767 | 存儲(chǔ)正負(fù)整數(shù) | |
| tinyint | 1 | 0~255 | 存儲(chǔ)小范圍的正整數(shù) | |
| Exact | decimal(p,s) | 5~17 | -10E38+1~10E38-1 | 最大可存儲(chǔ)38位十進(jìn)制數(shù) |
| numeric | numeric(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ù)類型的容量 | |
| real | 4 | -3.4E38~3.4E38 | 仍有效,為滿足SQL-92標(biāo)準(zhǔn),已經(jīng)被float替換了 |
| 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è)字符 |
| date | 10 | 從0001年1月1到9999年12月31日, |
| datetime | 8 | 從到,精度為3.33毫秒 |
| Datetime2(n) | 8 | 從到,精度為0. 0001毫秒 |
| smalldatetime | 4 | 從到,精度為1分鐘 |
| datetimeooffset(n) | 26~34 | 從到,精度為0. 0001毫秒 |
| time(n) | 3~5 | 從00:00:00~24:00:00點(diǎn),精度為0. 0001毫秒 |
| money | 8 | -922 337 203 685 477.5808~922 337 203 685 477.5807 |
| smallmoney | 4 | -214 748.3648~214 748.3647 |
| 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所示。
| 1 | courseno | nchar(6) | 主鍵 |
| 2 | cname | nchar(20) | 否 |
| 3 | type | nchar(8) | 否 |
| 4 | period | tinyint | 否 |
| 5 | credit | numeric(4,1) | 否 |
【例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所示。
| 1 | teacherno | nchar(6) | 主鍵 |
| 2 | tname | nchar(8) | 否 |
| 3 | major | nchar(10) | 否 |
| 4 | prof | nchar(10) | 是 |
| 5 | department | nchar(12) | 否 |
【例4.4】創(chuàng)建表結(jié)構(gòu)如表4-12所示的班級(jí)信息表class。然后查看該表的有關(guān)CREATE TABLE命令腳本信息。
| 1 | classno | nchar(7) | 主鍵 |
| 2 | classname | nchar(12) | 否 |
| 3 | department | nchar(12) | 否 |
| 4 | monitor | nchar(8) | 否 |
【例4.5】為了完善teaching數(shù)據(jù)庫(kù)的表間聯(lián)系,創(chuàng)建表結(jié)構(gòu)如所示的紐帶表teach_class。
| 1 | teacherno | nchar(6) | 主鍵 | 教師編號(hào) |
| 2 | classno | nchar(7) | 主鍵 | 班級(jí)編號(hào) |
| 3 | courseno | nchar(6) | 主鍵 | 課程編號(hào) |
例4.6】在test01數(shù)據(jù)庫(kù)中創(chuàng)建一個(gè)新表student1,然后修改其列屬性。
程序代碼如下:
【例4.7】修改test01中表student1的列column_class數(shù)據(jù)類型和名稱。
程序代碼如下:
【例4.8】向teaching數(shù)據(jù)庫(kù)中的score表中添加數(shù)據(jù)。
程序代碼如下:
【例4.9】更改teaching數(shù)據(jù)庫(kù)中的score表中的學(xué)號(hào)為17124113307、課程號(hào)為c05127的期末成績(jī)修改為87
程序代碼如下:
【例4.10】為數(shù)據(jù)庫(kù)test01中表student1輸入3行數(shù)據(jù),然后將列st_class的值全部改為jsj1012。
程序代碼如下:
【例4.11】刪除數(shù)據(jù)庫(kù)test01中表student1的列st_class的值為jsj1012的行。
程序代碼如下:
【例4.16】為數(shù)據(jù)庫(kù)teaching中的學(xué)生表student的列Email創(chuàng)建一個(gè)UNIQUE約束。
程序代碼如下:(PRIMARY KEY 約束默認(rèn)為 CLUSTERED;UNIQUE 約束默認(rèn)為 NONCLUSTERED)
【例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。
程序代碼如下:
【例4.19】為數(shù)據(jù)庫(kù)teaching創(chuàng)建一條規(guī)則score_rule,該規(guī)則規(guī)定凡是分?jǐn)?shù)類的列值必須在0~100之間。
程序代碼如下:
總結(jié)
以上是生活随笔為你收集整理的SQL Server 2008 复习(二)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 映泰b85怎么进bios设置 如何进入映
- 下一篇: DCMTK:在图像数据库中注册图像文件的