设在SQL Server 2008中有商品表(商品号,商品名,进货价格,销售价格),现要求销售价格必须至少是进货价格的1.1倍。下列关于实现此约束的说法,正确的是( )。
A.可以用触发器或者用CHECK约束实现
B.只能用CHECK约束实现
C.只能用触发器实现
D.可以用DEFAULT约束实现
第1题:
数据库中有Tahie_priceHistory表,结构如下表所示:
[*]
①写出创建Teachers表的SQL语句,要求语句中包含所有的约束。
②现要查询单价最高的前三种商品的商品编号、商品名称和单价(使用TOP语句)。
第2题:
设在SQL Server 2008某数据库中有销售表(商品号,销售时间,销售数量,销售价格),其中商品号的类型为char(6),销售价格的类型为int。现要定义统计指定商品销售总价的标量函数。有下列定义该标量函数的语句:Ⅰ.Create FUNCTION db0.GetTotal(@GoodID char(6))Returns int ASBEGINReturn(SELECT SUM(销售价格)FROM销售表WHERE商品号=@GoodID.ENDⅡ.Create FUNCTION db0.GetTotal(@GoodID char(6))Returns int ASBEGINReturns(SELECT SUM(销售价格)FROM销售表WHERE商品号=@GoodID.ENDⅢ.Create FUNCTION db0.GetTotal(@GoodID chat(6))Returns intBEGINReturn(SELECT SUM(销售价格)FROM销售表WHERE商品号=@GoodID.END1V.Create FUNCTION db0.GetTotal(@GoodID char(6))Returns intReturns(SELECT SUM(销售价格)FROM销售表WHERE商品号=@GoodID.上述语句中,正确的是( )。
A.仅I和Ⅱ
B.仅Ⅲ和Ⅳ
C.仅Ⅱ和Ⅳ
D.仅I和Ⅲ
第3题:
在SQL Server 2008中,设有商品表(商品号,商品名,生产日期,单价,类别)。现经常需要执行下列查询: SELECT 商品号, 商品名, 单价 FROM 商品表 WHERE 类别 IN (′食品′,′家电′) ORDER BY 商品号 现需要在商品表上建立合适的索引来提高该查询的执行效率。下列建立索引的语句,最合适的是( )。
A.CREATE INDEX Idx1 ON 商品表(类别)
B.CREATE INDEX Idx1 ON 商品表(商品号,商品名,单价)
C.CREATE INDEX Idx1 ON 商品表(类别,商品号,INCLUDE (商品名,单价)
D.CREATE INDEX Idx1 ON 商品表(商品号,INCLUDE (商品名,单价,WHERE 类别 = '食品' OR 类别 = '家电'
第4题:
SQL语句 SELECT 部门表.部门号,部门名称,商品号,商品名称,单价; FROM 部门表,商品表; WHERE 部门表.部门号=商品表.部门号; ORDER BY 部门表.部门号 DESC,单价 查询结果的第一条记录的商品号是
A.0101
B.0202
C.0110
D.0112
第5题:
在SQL Server 2008中,有商品表(商品号,商品名,单价)和销售表(商品号,销售时间,销售价格)。现要限制“销售价格”的取值必须在此商品“单价”的0.6倍到1.5倍范围之内,实现这个约束的正确代码是( )。
A.CHECK(销售价格BETWEEN单价*0.6 AND单价*1.5)
B.CHECK(销售价格BETWEEN商品表.单价*0.6 AND商品表.单价*1.5)
C.CREATE TRIGGER tri_Sales ON销售表FOR INSERT,UPDATEAs IF EXISTS(SELECT*FROM INSERTED a JOIN商品表bON a.商品号=b.商品号WHERE销售价格NOT BETWEEN单价*0.6 AND单价*1.5)ROLLBACK
D.CREATE TRIGGER tri_ales ON销售表INSTEAD OF INSERT,UPDATE ASIF EXISTS( SELECT冰FROM INSERTED a JOIN商品表bON a.商品号=b.商品号WHERE销售价格NOT BETWEEN单价*0.6 AND单价*=1.5)ROLLBACK