当前位置:首页 » 编程语言 » sql中下列涉及空值操作

sql中下列涉及空值操作

发布时间: 2022-07-23 08:29:35

⑴ 《数据库系统概论》第四版 期末考试题

一、单项选择题(本大题共10小题,共30分)
1.数据库中,数据的物理独立性是指( )。
A.数据库与数据库管理系统的相互独立
B.用户程序与DBMS的相互独立
C.用户的应用程序与存储在磁盘上数据库中的数据是相互独立的
D.应用程序与数据库中的数据的逻辑结构相互独立
2. 从E-R模型关系向关系转换时,一个M:N联系转换为关系模式时,该关系模式的关键字是
A.M端实体的关键字 B.N端实体的关键字 ( )
C.M端实体关键字与N端实体关键字组合 D.重新选取其他属性
3.保护数据库,防止未经授权的或不合法的使用造成的资料泄漏、更改破坏。这是指数据的( )
A.安全性 B.完整性 C.并发控制 D.恢复
4. 关系模式中的各级模式之间的关系为( )。
A.3NF 2NF 1NF B.3NF 1NF 2NF
C.1NF 2NF 3NF D.2NF 1NF 3NF
5. 五种基本关系代数运算是 ( )
A.∪,-,×,π和σ B.∪,-,∞,π和σ
C.∪,∩,×,π和σ D.∪,∩,∞,π和σ
6. 在数据库设计中,将ER图转换成关系数据模型的过程属于 ( )
A.需求分析阶段 B.逻辑设计阶段 C.概念设计阶段 D.物理设计阶段
7. sql中,下列涉及空值的操作,不正确的是 ( )
A. AGE IS NULL B. AGE IS NOT NULL C. AGE = NULL D. NOT (AGE IS NULL)
8.关系数据库规范化是为解决关系数据库中( )问题而引入的。
A.插入、删除和数据冗余 B.提高查询速度
C.减少数据操作的复杂性 D.保证数据的安全性和完整性
9.下图所示的E-R图转换成关系模型,可以转换为( )关系模式。
A.1个 B.2个 C.3个 D.4个

n m

10. 如下面的数据库的表中,若职工表的主关键字是职工号,部门表的主关键字是部门号,SQL操作( )不能执行。

职工表 部门表

A.从职工表中删除行(‘025’,‘王芳’,‘03’,720)
B.将行(‘005’,‘乔兴’,‘04’,750)插入到职工表中
C.将职工号为‘001’工资改为700
D.将职工号为‘038’部门号改为‘03’
二、填空题(本大题共5小题,每空1分,共10分)
1.对于非规范化的模式,结过使属性域变为简单域转变为1NF,将1NF经过消除非主属性对码的_______________转变为2NF,将2NF经过消除非主属性对码的_______________转变为3NF。
2.在关系A(S,SN,D)和B(D,CN,NM)中,A的主键是S,B的主键是D,则D在S中称为___________。
3.数据模型由_________________、_________________和_________________三部分组成的。
4.数据库体系结构按照_______________、_______________和_______________三层结构进行组织。
5.E-R图向关系模型转化要解决的问题是如何将实体和实体之间的联系转换成关系模式,如何确定这些关系模式的_________________。
三、计算题(本大题共5小题,每小题2分,共10分)
设有如下图所示的关系R,S和T,计算:
⑴ R1=R∪S R S T
⑵ R2=R-S
⑶ R3=R T
⑷ R4=R T
(5) R5=
四、设计题(本大题共5小题,每小题4分,共20分)
设教学数据库中有三个基本表:
学生表S(SNO,SNAME,SEX,AGE,DEPT)
课程表C(CNO,CNAME,TEACHER)
学生选课表SC(SNO,CNO,GRADE)
其中:SNO为学号,SNAME为姓名,SEX为性别,AGE为年龄,DEPT为系别,CNO为课程CNAME为课程名,TEACHER 任课老师,GRADE为成绩。
试写出下列操作的SQL语句:
1检索学生姓名及其所选修课程号和成绩。
2 检索选修课程“C2”的学生中的最高成绩。
3检索所有比“王华”年龄大的学生姓名、年龄和性别。
4 检索选修四门以上课程的学生总成绩(不统计不及格的课程),并要求按总成绩的降序排列出来。
5 把Wu老师的女同学选课成绩增加5%
五、综合题(本大题共2小题,每小题15分,共30分)
1.假设某商业集团数据库中有一关系模式R如下:R (商店编号,商品编号,数量,部门编号,负责人)
如果规定:
(1) 每个商店的每种商品只在一个部门销售;
(2) 每个商店的每个部门只有一个负责人;
(3) 每个商店的每种商品只有一个库存数量。
试回答下列问题:
(1) 根据上述规定,写出关系模式R的基本函数依赖;
(2) 找出关系模式R的候选码;
(3) 试问关系模式R最高已经达到第几范式?为什么?
(4) 如果R不属于3NF,请将R分解成3NF模式集。

2.假定一个部门的数据库包括以下的信息:
职工的信息:职工号、姓名、住址和所在部门。
部门的信息:部门所有职工、经理和销售的产品。
产品的信息:产品名、制造商、价格、型号及产品内部编号。
制造商的信息:制造商名称、地址、生产的产品名和价格。
完成如下设计:
(1)设计该计算机管理系统的E-R图;
(2)写出关系模式集,并用下划线和波浪线标识出每个模式的主码和外码。
(3)在上述数据库中,写出主码和外码的总数这两个数字。

⑵ 10. 在SQL 中,下列涉及空值的操作,不正确的是 ( )

C
null 值不能用=,只能用 is 或is not

⑶ SQL Server处理空值操作中的3大问题有哪些

转:
不管系统计划得有多好,空数据值的问题总是存在。
本文探讨了在SQL Server中处理这些值时涉及的3个问题:计数、使用空表值以及外键处理。
用COUNT(*)处理空值
大多数集合函数都能在计算时消除空值;COUNT函数则属于例外。对包含空值的一个列使用COUNT函数,空值会从计算中消除。但假如COUNT函数使用一个星号,它就计算所有行,而不管是否存在空值。
如果希望COUNT函数对给定列的所有行(包括空值)进行计数,请使用ISNULL函数。ISNULL函数会将空值替换成有效的值。
事实上,对集合函数来说,如果空值可能导致错误结果,ISNULL函数就非常有用。记住在使用一个星号时,COUNT函数会对所有行进行计算。下例演示了空值在AVG和COUNT集合函数中的影响:
SET NOCOUNT恰当使用空表值
SQL Server可能出现一种特殊情况:在引用父表的一个表中,因为不允许空值,所以声明引用完整性(DRI)可能不会得到强制。即使父表不包含空值,在子表引用了父表主键约束或惟一约束的列中,也可能包含空值。
假如来自父表的值目前未知,就不会有任何问题。例如,父表可能是一个地址表,而子表可能包含联系信息。由于许多原因,可能暂时不知道要传给父表的联系地址。这是一种基于时间的问题,空值在其中或许是合适的。
如下例所示,我们创建父表,并在其中插入两个值。
SET NOCOUNT以下代码则创建子表,并在引用父表的列中插入一个空值。
CREATE TABLE Child (pkey1 INT IDENTITYCONSTRAINT pkChild PRIMARY KEY,Parentpkey1 INT NULLCONSTRAINT fkChildParent FOREIGN KEYREFERENCES Parent(pkey1),col1 INT NULL) GOINSERT Child (Parentpkey1, col1) VALUES (null,2)GO
但在以下代码中,要同时从父表和子表选择值。虽然父表不包含空值,但在子表引用了父表的那个列中,将允许一个空值。
然后丢弃所有表,清除这个演示所用的数据库对象。
SELECT*FROMChildGOSELECT*FROMParentGODROPTABLEChild,ParentGO
在可以为空的外键中检查数据的有效性
如果由两个列共同组成主键,而且一个子表将主键作为可为空值的外键来继承,就可能得到错误的数据。可在一个外键列中插入有效的值,但在另一个外键列中插入空值。然后,可添加一个数据表检查约束,在可为空的外键中检查数据的有效性。
任何多列外键都可能遇到同样的问题。所以,你需要添加一个检查约束来检测异常。最初,检查约束将检查构成外键的所有列中可能为空的值。检查约束还要检查这些列中不能为空的值。如两个检查都通过,问题就解决了。以下示范脚本展示了这样的一个异常源码天空

⑷ SQL高手进

D,C,C,B,C,B,D,A,A,B,A,C,A,D,C

⑸ SQL语法中涉及空值NULL的操作条件

判断为空用: col is null

判断非空用: col is not null

因为null表示不可知,所以 对于 = 、 like 等等判断方法来说, 不管是=、还是<> 逻辑判断条件均为 false

⑹ 在SQL语言中,涉及空值操作正确的是( ) A.AGE IS NULL

A
NULL不能写等于,都是is null。B选项的的is not null是非空值的操作。

⑺ SQL Server处理空值操作中的3大问题有哪些

不管系统计划得有多好,空数据值的问题总是存在。 本文探讨了在SQL Server中处理这些值时涉及的3个问题:计数、使用空表值以及外键处理。 用COUNT(*)处理空值 大多数集合函数都能在计算时消除空值;COUNT函数则属于例外。对包含空值的一个列使用COUNT函数,空值会从计算中消除。但假如COUNT函数使用一个星号,它就计算所有行,而不管是否存在空值。 如果希望COUNT函数对给定列的所有行(包括空值)进行计数,请使用ISNULL函数。ISNULL函数会将空值替换成有效的值。 事实上,对集合函数来说,如果空值可能导致错误结果,ISNULL函数就非常有用。记住在使用一个星号时,COUNT函数会对所有行进行计算。下例演示了空值在AVG和COUNT集合函数中的影响: SET NOCOUNT恰当使用空表值 SQL Server可能出现一种特殊情况:在引用父表的一个表中,因为不允许空值,所以声明引用完整性(DRI)可能不会得到强制。即使父表不包含空值,在子表引用了父表主键约束或惟一约束的列中,也可能包含空值。 假如来自父表的值目前未知,就不会有任何问题。例如,父表可能是一个地址表,而子表可能包含联系信息。由于许多原因,可能暂时不知道要传给父表的联系地址。这是一种基于时间的问题,空值在其中或许是合适的。 如下例所示,我们创建父表,并在其中插入两个值。 SET NOCOUNT以下代码则创建子表,并在引用父表的列中插入一个空值。 CREATE TABLE Child (pkey1 INT IDENTITYCONSTRAINT pkChild PRIMARY KEY,Parentpkey1 INT NULLCONSTRAINT fkChildParent FOREIGN KEYREFERENCES Parent(pkey1),col1 INT NULL) GOINSERT Child (Parentpkey1, col1) VALUES (null,2)GO 但在以下代码中,要同时从父表和子表选择值。虽然父表不包含空值,但在子表引用了父表的那个列中,将允许一个空值。 然后丢弃所有表,清除这个演示所用的数据库对象。 SELECT*FROMChildGOSELECT*FROMParentGODROPTABLEChild,ParentGO 在可以为空的外键中检查数据的有效性 如果由两个列共同组成主键,而且一个子表将主键作为可为空值的外键来继承,就可能得到错误的数据。可在一个外键列中插入有效的值,但在另一个外键列中插入空值。然后,可添加一个数据表检查约束,在可为空的外键中检查数据的有效性。 任何多列外键都可能遇到同样的问题。所以,你需要添加一个检查约束来检测异常。最初,检查约束将检查构成外键的所有列中可能为空的值。检查约束还要检查这些列中不能为空的值。如两个检查都通过,问题就解决了。以下示范脚本展示了这样的一个异常源码天空

⑻ 数据库原理_在线作业_B的答案,谁能告诉我一下。谢谢,有悬赏

1.C
2.D
3.
4.
5.D
6.D
6.
7.D
8.C
11.B
12.A
13.A
14.C
15.B

⑼ SQL中,下列涉及空值的操作,正确的是( )A.Name <> NULL B.NOT (Name IS NULL) C.Name IS NULL D.Nam

Name IS NULL

⑽ sql 如何查询 空值的字段

sql查询空值的字段写法:SELECT A.字段 FROM student A WHERE A.字段 LIKE'% %' (student为表名)

查询类似空值的写法:

1、查询名称有退格键:select * from t_bd_item_info where charindex(char(8),item_name) > 0 go

2、查询名称有制表符tab:select * from t_bd_item_info where charindex(char(9),item_name) > 0 go

3、查询名称有换行:select * from t_bd_item_info where charindex(char(10),item_name) > 0 go

4、查询名称有回车:select * from t_bd_item_info where charindex(char(13),item_name) > 0 go

5、查询名称的空格(前空格、后空格、所有空格):select * from t_bd_item_info where isnull(charindex(' ',item_name),0) > 0go

6、查询名称的单引号:select * from t_bd_item_info where charindex(char(39),item_name) > 0 go

7、查询名称的双单引号:select * from t_bd_item_info where charindex(char(34),item_name) > 0 go

(10)sql中下列涉及空值操作扩展阅读

1、处理名称有退格键
update t_bd_item_info set item_name = replace(item_name,char(8),'')
where charindex(char(9),item_name) > 0 go

2、处理名称有制表符tab
update t_bd_item_info set item_name = replace(item_name,char(9),'')
where charindex(char(9),item_name) > 0 go

3、处理名称有换行
update t_bd_item_info set item_name = replace(item_name,char(10),'')
where charindex(char(10),item_name) > 0 go

4、处理名称有回车
update t_bd_item_info set item_name = replace(item_name,char(13),'')
where charindex(char(13),item_name) > 0 go

5、处理名称的空格(前空格、后空格、所有空格)
update t_bd_item_info set item_name = replace(rtrim(ltrim(item_name)),' ','')
where isnull(charindex(' ',item_name),0) > 0go

6、处理名称的单引号
update t_bd_item_info set item_name = replace(item_name,char(39),'')
where charindex(char(39),item_name) > 0 go

7、处理名称的双单引号
update t_bd_item_info set item_name = replace(item_name,char(34),'')
where charindex(char(34),item_name) > 0 go

热点内容
三角定位算法 发布:2025-01-31 11:25:33 浏览:147
java判断空格 发布:2025-01-31 11:24:01 浏览:831
安卓照片加胡子是什么软件 发布:2025-01-31 11:20:03 浏览:907
创建数据库并设置编码 发布:2025-01-31 11:11:52 浏览:781
搭建数据中心需要的服务器配置 发布:2025-01-31 11:11:44 浏览:590
c语言小数点后四舍五入 发布:2025-01-31 11:10:10 浏览:496
httpslinux 发布:2025-01-31 11:10:09 浏览:828
java4 发布:2025-01-31 11:08:42 浏览:355
什么是密码屏蔽 发布:2025-01-31 11:05:13 浏览:216
一个算法的效率可分为 发布:2025-01-31 11:05:12 浏览:639