《数据库原理与应用》(第三版) 第 5 章 数据类型及关系表创建 基础 习题参考答案
1.Tinyint數據類型定義的數據的取值范圍是多少?
答:0-255
2.SmallDatatime類型精確到哪個時間單位?
答:分鐘
3.定點小數類型numeric中的p和q的含義分別是什么?
答:p代表整數位數+小數位數的和值,q代表小數位數。
4.Char(n)、nchar(n)的區別是什么?它們各能存放多少個字符?
答:Char(n)中的n代表能存放n個字節的字符,如果是字母可以存放n個,如果是漢字可存放n/2個。Nchar(n)中的n代表能存放的字符個數。
5.Char(n)和varchar(n)的區別是什么?
答:Char(n)是定長存儲,一定占n個字節的空間。Varchar(n)代表最多占n個字節的空間。
6.數據完整性約束的作用對象有哪些?
答:表和列
7.CHECK約束的作用是什么?
答:限制列的取值范圍。
8.UNIQUE約束的作用是什么?
答:限制列取值不重。
9.DEFAULT約束的作用是什么?
答:提供列的默認值。
上機練習
1.在第4章創建的Students數據庫中,寫出創建如下三張表的SQL語句,要求在定義表的同時定義數據的完整性約束:
(1)“圖書”表結構如下:
書號:統一字符編碼定長類型,長度為6,主鍵;
書名:統一字符編碼可變長類型,長度為30,非空;
第一作者:普通編碼定長字符類型,長度為10,非空;
出版日期:小日期時間型;
價格:定點小數,小數部分1位,整數部分3位。
create table 圖書(
書號 nchar(6) primary key,
書名 nvarchar(30) not null,
第一作者 char(10) not null,
出版日期 smalldate,
價格 numeric(4,1)
)
(2)“書店”表結構如下:
書店編號:統一字符編碼定長類型,長度為6,主鍵;
店名:統一字符編碼可變長類型,長度為30,非空;
電話:普通編碼定長字符類型,8位長,每一位的取值均是0~9的數字;
地址:普通編碼可變長字符類型,40位長。
郵政編碼:普通編碼定長字符類型,6位長。
create table 書店(
書店編號 nchar(6) primary key,
店名 nvarchar(30) not null
電話 char(8) check(電話 like ‘[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]’),
地址 varchar(40),
郵政編碼 char(6)
)
(3)“圖書銷售”表結構如下:
書號:統一字符編碼定長類型,長度為6,非空;
書店編號:統一字符編碼定長類型,長度為6,非空;
銷售日期:小日期時間型,非空;
銷售數量:小整型,大于等于1。
主鍵為(書號,書店編號,銷售日期);
其中“書號”為引用“圖書表”的“書號”的外鍵;
“書店編號”為引用“書店表”的“書店編號”的外鍵。
create table 圖書銷售(
書號 nchar(6) not null,
書店編號 nchar(6) not null,
銷售日期 samlldate,
銷售數量 smallint check(銷售數量 >= 1),
primary key(書號, 書店編號, 銷售日期),
foreign key(書號) references 圖書(書號),
foreign key(書店編號) references 書店(書店編號)
)
2.為圖書表添加“印刷數量”列,類型為整數,同時添加取值大于等于1000的約束。
Alter table 圖書 add 印刷數量 int check(印刷數量 >= 1000)
3.刪除書店表中的“郵政編碼”列。
Alter table 書店 drop column 郵政編碼
4.將圖書銷售表中的“銷售數量”列的數據類型改為整型。
Alter table 圖書 alter column 銷售數量 int
總結
以上是生活随笔為你收集整理的《数据库原理与应用》(第三版) 第 5 章 数据类型及关系表创建 基础 习题参考答案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《数据库原理与应用》(第三版) 第4章S
- 下一篇: 《数据库原理与应用》(第三版) 第 6