SQL Server 2008 复习(二)
第4章 表和數據完整性
| Integer | bigint | 8 | -2E63~2E63-1 | 存儲非常大的正負整數 |
| int | 4 | -2E31~2E31-1 | 存儲正負整數 | |
| smallint | 2 | -32 768~32 767 | 存儲正負整數 | |
| tinyint | 1 | 0~255 | 存儲小范圍的正整數 | |
| Exact | decimal(p,s) | 5~17 | -10E38+1~10E38-1 | 最大可存儲38位十進制數 |
| numeric | numeric(p,s) | 5~17 | -10E38+1~10E38-1 | 可以與decimal交換使用 |
| float§ | 4/8 | -2.23E308~2.23E308 | 存儲大型浮點數,超過十進制數據類型的容量 | |
| real | 4 | -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個字符 |
| 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點,精度為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 | 存儲固定大小的二進制數據 |
| varbinary(n) | 1~8 000 | 存儲可變大小的二進制數據 |
| varbinary(max) | 最多2 G | 存儲可變大小的二進制數據 |
| image | 最多2 G | 存儲可變大小的二進制數據 |
【例4.1】利用CREATE TABLE命令建立課程信息表course,表結構如表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命令建立學生分數表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所示。
| 1 | teacherno | nchar(6) | 主鍵 |
| 2 | tname | nchar(8) | 否 |
| 3 | major | nchar(10) | 否 |
| 4 | prof | nchar(10) | 是 |
| 5 | department | nchar(12) | 否 |
【例4.4】創建表結構如表4-12所示的班級信息表class。然后查看該表的有關CREATE TABLE命令腳本信息。
| 1 | classno | nchar(7) | 主鍵 |
| 2 | classname | nchar(12) | 否 |
| 3 | department | nchar(12) | 否 |
| 4 | monitor | nchar(8) | 否 |
【例4.5】為了完善teaching數據庫的表間聯系,創建表結構如所示的紐帶表teach_class。
| 1 | teacherno | nchar(6) | 主鍵 | 教師編號 |
| 2 | classno | nchar(7) | 主鍵 | 班級編號 |
| 3 | courseno | nchar(6) | 主鍵 | 課程編號 |
例4.6】在test01數據庫中創建一個新表student1,然后修改其列屬性。
程序代碼如下:
【例4.7】修改test01中表student1的列column_class數據類型和名稱。
程序代碼如下:
【例4.8】向teaching數據庫中的score表中添加數據。
程序代碼如下:
【例4.9】更改teaching數據庫中的score表中的學號為17124113307、課程號為c05127的期末成績修改為87
程序代碼如下:
【例4.10】為數據庫test01中表student1輸入3行數據,然后將列st_class的值全部改為jsj1012。
程序代碼如下:
【例4.11】刪除數據庫test01中表student1的列st_class的值為jsj1012的行。
程序代碼如下:
【例4.16】為數據庫teaching中的學生表student的列Email創建一個UNIQUE約束。
程序代碼如下:(PRIMARY KEY 約束默認為 CLUSTERED;UNIQUE 約束默認為 NONCLUSTERED)
【例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。
程序代碼如下:
【例4.19】為數據庫teaching創建一條規則score_rule,該規則規定凡是分數類的列值必須在0~100之間。
程序代碼如下:
總結
以上是生活随笔為你收集整理的SQL Server 2008 复习(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 映泰b85怎么进bios设置 如何进入映
- 下一篇: DCMTK:在图像数据库中注册图像文件的