数据库系统:嵌入式SQL语言单元测试与答案
- 格式:docx
- 大小:15.96 KB
- 文档页数:6
高级SQL应用与嵌入式SQL考试试卷(答案见尾页)一、选择题1. 什么是SQL注入攻击?它如何发生?A. SQL注入攻击是一种利用数据库漏洞进行的攻击,通过插入恶意SQL代码来执行未经授权的操作。
B. SQL注入攻击是一种利用Web应用程序漏洞进行的攻击,通过插入恶意SQL代码来执行未经授权的操作。
C. SQL注入攻击是一种利用操作系统漏洞进行的攻击,通过插入恶意SQL代码来执行未经授权的操作。
D. SQL注入攻击是一种利用编程语言漏洞进行的攻击,通过插入恶意SQL代码来执行未经授权的操作。
2. 在嵌入式SQL中,如何区分SQL语句和控制语句?A. 使用关键字“SELECT”来标识SQL语句。
B. 使用关键字“INSERT”来标识SQL语句。
C. 使用关键字“UPDATE”来标识SQL语句。
D. 使用关键字“CONTROL”来标识SQL语句。
3. 什么是事务的ACID特性?请简要解释每个特性。
A. 原子性(Atomicity):事务中的操作要么全部成功,要么全部失败,不会部分执行。
B. 一致性(Consistency):事务必须使数据库从一个一致性状态变换到另一个一致性状态。
C. 隔离性(Isolation):并发的事务之间不会互相干扰。
D. 持久性(Durability):一旦事务提交,则其结果就是永久的,即使系统崩溃也不会丢失。
4. 请解释外键约束的作用。
A. 确保数据的引用完整性B. 提高查询效率C. 减少数据冗余D. 加速表之间的连接操作5. 在SQL中,如何使用聚合函数来计算某个字段的总和?A. 使用SUM()函数B. 使用COUNT()函数C. 使用AVG()函数D. 使用MIN()函数6. 什么是视图?它有哪些用途?A. 视图是一个虚拟表,它提供了一种方式来查看和操作基础表的数据。
B. 视图的主要用途是简化复杂的SQL操作。
C. 视图可以用于数据更新,但前提是视图中的所有列都是基础表的简单列。
sql练习题及答案SQL练习题及答案SQL(Structured Query Language)是一种用于管理和操作关系型数据库的语言。
在数据库管理系统中,SQL被广泛应用于数据的查询、插入、更新和删除等操作。
掌握SQL语言对于数据库开发和数据分析非常重要。
在这篇文章中,我们将提供一些SQL练习题及其答案,帮助读者巩固和提升SQL的应用能力。
1. 查询员工表中所有员工的姓名和工资。
答案:```sqlSELECT 姓名, 工资 FROM 员工表;```2. 查询员工表中工资大于5000的员工的姓名和工资。
答案:```sqlSELECT 姓名, 工资 FROM 员工表 WHERE 工资 > 5000;```3. 查询员工表中工资在3000到5000之间的员工的姓名和工资。
答案:```sqlSELECT 姓名, 工资 FROM 员工表 WHERE 工资 BETWEEN 3000 AND 5000;```4. 查询员工表中姓"张"的员工的姓名和工资。
```sqlSELECT 姓名, 工资 FROM 员工表 WHERE 姓名 LIKE '张%';```5. 查询员工表中工资最高的员工的姓名和工资。
答案:```sqlSELECT 姓名, 工资 FROM 员工表 WHERE 工资 = (SELECT MAX(工资) FROM 员工表);```6. 查询员工表中每个部门的员工数量。
答案:```sqlSELECT 部门, COUNT(*) AS 员工数量 FROM 员工表 GROUP BY 部门;```7. 查询员工表中每个部门的平均工资。
答案:```sqlSELECT 部门, AVG(工资) AS 平均工资 FROM 员工表 GROUP BY 部门;```8. 查询员工表中工资高于部门平均工资的员工的姓名和工资。
答案:SELECT 姓名, 工资 FROM 员工表 WHERE 工资 > (SELECT AVG(工资) FROM 员工表 GROUP BY 部门);```9. 查询员工表中没有分配部门的员工的姓名和工资。
5.1 名词解释(1)SQL模式:SQL模式是表和授权的静态定义。
一个SQL模式定义为基本表的集合。
一个由模式名和模式拥有者的用户名或账号来确定,并包含模式中每一个元素(基本表、视图、索引等)的定义。
(2)SQL数据库:SQL(Structured Query Language),即‘结构式查询语言’,采用英语单词表示和结构式的语法规则。
一个SQL数据库是表的汇集,它用一个或多个SQL模式定义。
(3)基本表:在SQL中,把传统的关系模型中的关系模式称为基本表(Base Table)。
基本表是实际存储在数据库中的表,对应一个关系。
(4)存储文件:在SQL中,把传统的关系模型中的存储模式称为存储文件(Stored File)。
每个存储文件与外部存储器上一个物理文件对应。
(5)视图:在SQL中,把传统的关系模型中的子模式称为视图(View),视图是从若干基本表和(或)其他视图构造出来的表。
(6)行:在SQL中,把传统的关系模型中的元组称为行(row)。
(7)列:在SQL中,把传统的关系模型中的属性称为列(coloumn)。
(8)实表:基本表被称为“实表”,它是实际存放在数据库中的表。
(9)虚表:视图被称为“虚表”,创建一个视图时,只把视图的定义存储在数据词典中,而不存储视图所对应的数据。
(10)相关子查询:在嵌套查询中出现的符合以下特征的子查询:子查询中查询条件依赖于外层查询中的某个值,所以子查询的处理不只一次,要反复求值,以供外层查询使用。
(11)联接查询:查询时先对表进行笛卡尔积操作,然后再做等值联接、选择、投影等操作。
联接查询的效率比嵌套查询低。
(12)交互式SQL:在终端交互方式下使用的SQL语言称为交互式SQL。
(13)嵌入式SQL:嵌入在高级语言的程序中使用的SQL语言称为嵌入式SQL。
(14)共享变量:SQL和宿主语言的接口。
共享变量有宿主语言程序定义,再用SQL 的DECLARE语句说明, SQL语句就可引用这些变量传递数据库信息。
SQL语言习题一、单项选择题1.SQL语言是的语言,易学习。
A.过程化B.非过程化C.格式化D.导航式答案:B2.SQL语言是语言。
A.层次数据库B.网络数据库C.关系数据库D.非数据库答案:C3.SQL语言具有的功能。
A.关系规范化、数据操纵、数据控制B.数据定义、数据操纵、数据控制C.数据定义、关系规范化、数据控制D.数据定义、关系规范化、数据操纵答案:B4.SQL语言的数据操纵语句包括SELECT,INSERT,UPDATE和DELETE等。
其中最重要的,也是使用最频繁的语句是。
A.SELECT B.INSERT C.UPDA TE D.DELETE答案:A5.SQL语言具有两种使用方式,分别称为交互式SQL和。
A.提示式SQL B.多用户SQL C.嵌入式SQL D.解释式SQL答案:C6.SQL语言中,实现数据检索的语句是。
A.SELECT B.INSERTC.UPDATE D.DELETE答案:A7.下列SQL语句中,修改表结构的是。
A.ALTER B.CREATEC.UPDATE D.INSERT答案:A第8到第11题基于这样的三个表即学生表S、课程表C和学生选课表SC,它们的结构如下:S(S#,SN,SEX,AGE,DEPT)C(C#,CN)SC(S#,C#,GRADE)其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C#为课程号,CN为课程名,GRADE为成绩。
8.检索所有比“王华”年龄大的学生姓名、年龄和性别。
正确的SELECT语句是。
A.SELECT SN,AGE,SEX FROM SWHERE AGE>(SELECT AGE FROM SWHERE SN=’王华’)B.SELECT SN,AGE,SEX FROM SWHERE SN=’王华’C.SELECT SN,AGE,SEX FROM SWHERE AGE>(SELECT AGEWHERE SN=’王华’)D.SELECT SN,AGE,SEX FROM SWHERE AGE>王华.AGE答案:A9.检索选修课程“C2”的学生中成绩最高的学生的学号。
sql语句面试题及答案一、概述SQL(Structured Query Language)是一种用于管理和操作关系型数据库的标准化语言。
在数据库领域,掌握SQL语句的知识是非常重要的。
本文将提供一些常见的SQL语句面试题及答案,帮助读者更好地了解和掌握SQL语句的应用。
二、查询语句1. 查询所有表的信息答案:SELECT * FROM information_schema.tables;2. 查询指定表的所有字段答案:SELECT COLUMN_NAME FROMinformation_schema.columns WHERE TABLE_NAME='表名';3. 查询指定字段的数据,并按照指定字段进行排序答案:SELECT 列名 FROM 表名 ORDER BY 排序字段 ASC/DESC;4. 使用DISTINCT关键字查询指定字段的不重复数据答案:SELECT DISTINCT 列名 FROM 表名;5. 使用LIMIT关键字查询指定数量的数据答案:SELECT * FROM 表名 LIMIT 数量;三、条件查询1. 查询满足指定条件的数据答案:SELECT * FROM 表名 WHERE 条件;2. 多条件查询答案:SELECT * FROM 表名 WHERE 条件1 AND 条件2;3. 使用LIKE关键字进行模糊查询答案:SELECT * FROM 表名 WHERE 列名 LIKE '关键字%';4. 使用IN关键字查询指定字段值在指定范围内的数据答案:SELECT * FROM 表名 WHERE 列名 IN (值1, 值2, 值3, ...);四、聚合函数1. 求和答案:SELECT SUM(列名) FROM 表名;2. 平均值答案:SELECT AVG(列名) FROM 表名;3. 最大值答案:SELECT MAX(列名) FROM 表名;4. 最小值答案:SELECT MIN(列名) FROM 表名;五、表操作1. 创建表答案:CREATE TABLE 表名 (列名1 数据类型1, 列名2 数据类型2, ...);2. 删除表答案:DROP TABLE 表名;3. 修改表结构答案:ALTER TABLE 表名 ADD 列名数据类型;六、数据操作1. 插入数据答案:INSERT INTO 表名 (列名1, 列名2, ...) VALUES (值1, 值2, ...);2. 更新数据答案:UPDATE 表名 SET 列名=值 WHERE 条件;3. 删除数据答案:DELETE FROM 表名 WHERE 条件;七、表连接答案:SELECT * FROM 表1 INNER JOIN 表2 ON 表1.列名 = 表2.列名;2. 左连接答案:SELECT * FROM 表1 LEFT JOIN 表2 ON 表1.列名 = 表2.列名;3. 右连接答案:SELECT * FROM 表1 RIGHT JOIN 表2 ON 表1.列名 = 表2.列名;八、子查询1. 子查询作为列答案:SELECT (SELECT COUNT(*) FROM 表名) AS 列名 FROM 表名;2. 子查询作为条件答案:SELECT * FROM 表名 WHERE 列名 = (SELECT 列名 FROM 表名 WHERE 条件);九、索引和优化1. 创建索引答案:CREATE INDEX 索引名 ON 表名 (列名);答案:DROP INDEX 索引名 ON 表名;3. 优化查询答案:使用合适的索引、减少不必要的查询、优化查询语句等。
数据库语言试题及答案一、单项选择题(每题2分,共20分)1. SQL语言中,用于查询数据的关键字是:A. INSERTB. UPDATEC. DELETED. SELECT答案:D2. 在数据库中,用于存储数据的表的列被称为:A. 行B. 记录C. 字段D. 索引答案:C3. 数据库管理系统(DBMS)的主要功能不包括:A. 数据定义B. 数据操纵C. 数据备份D. 数据加密答案:D4. 关系型数据库中,用于建立表与表之间联系的关键字是:A. PRIMARY KEYB. FOREIGN KEYC. UNIQUED. INDEX答案:B5. 在SQL中,用于创建数据库的关键字是:A. CREATE TABLEB. CREATE DATABASEC. DROP DATABASED. ALTER DATABASE答案:B6. 以下哪个选项不是SQL语句的组成部分?A. SELECTB. FROMC. WHERED. END答案:D7. 在SQL中,用于删除表的关键字是:A. DROP TABLEB. DELETE TABLEC. REMOVE TABLED. REMOVE答案:A8. 数据库中的主键约束用于:A. 确保数据的唯一性B. 确保数据的完整性C. 确保数据的安全性D. 确保数据的顺序性答案:A9. 在SQL中,用于更新数据的关键字是:A. UPDATEB. INSERTC. DELETED. SELECT答案:A10. 数据库设计中,用于定义表结构的语句是:A. CREATE TABLEB. ALTER TABLEC. DROP TABLED. SELECT答案:A二、多项选择题(每题3分,共15分)1. 在数据库中,以下哪些操作可以用于数据的查询?A. SELECTB. INSERTC. UPDATED. DELETE答案:A2. 在数据库中,以下哪些选项用于限制数据的类型和格式?A. CHECKB. NOT NULLC. UNIQUED. PRIMARY KEY答案:A, B, C3. 在数据库中,以下哪些关键字用于数据的插入?A. INSERT INTOB. SELECT INTOC. CREATE TABLED. ALTER TABLE答案:A三、填空题(每题3分,共15分)1. 在SQL中,用于添加新数据行的语句是________。
第三章S Q L语言练习题和答案第三章 SQL语言一、选择题1. SQL语言是(B )的语言,容易学习。
A.过程化B. 非过程化C.格式化D. 导航式2. SQL语言的数据操纵语句包括SELECT、INSERT、UPDATE、DELETE等。
其中最重要的,也是使用最频繁的语句是(A)。
A. SELECTB. INSERTC. UPDATED. DELETE3. 在视图上不能完成的操作是()。
A. 更新视图B. 查询C. 在视图上定义新的表D. 在视图上定义新的视图4. SQL语言集数据查询、数据操纵、数据定义和数据控制功能于一体,其中,CREATE、DROP、ALTER语句是实现哪种功能()。
A. 数据查询B. 数据操纵C. 数据定义D. 数据控制5. SQL语言中,删除一个视图的命令是()。
A.DELETEB.DROPC.CLEARD.REMOVE6. 在SQL语言中的视图VIEW是数据库的()。
A. 外模式B. 模式C. 内模式D. 存储模式7. 下列的SQL语句中,()不是数据定义语句。
A. CREATE TABLEB. DROP VIEWC. CREATE VIEWD. GRANT8. 若要撤销数据库中已经存在的表S,可用()。
A. DELETE TABLE SB. DELETE SC. DROP TABLE SD. DROP S9. 若要在基本表S中增加一列CN(课程名),可用()。
A.ADD TABLE S(CN CHAR(8))B.ADD TABLE S ALTER(CN CHAR(8))C.ALTER TABLE S ADD(CN CHAR(8))D.ALTER TABLE S (ADD CN CHAR(8))10. 学生关系模式 S( S#,Sname,Sex,Age),S的属性分别表示学生的学号、姓名、性别、年龄。
要在表S中删除一个属性“年龄”,可选用的SQL语句是()。
A. DELETE Age from SB. ALTER TABLE S DROP AgeC. UPDATE S AgeD. ALTER TABLE S ‘Age’11. 有关系S(S#,SNAME,SAGE),C(C#,CNAME),SC(S #,C#,GRADE)。
sql测试题和答案在进行SQL数据库开发时,进行一些测试是非常重要的。
通过测试,我们可以验证数据库的正确性,保证数据的一致性,并且提前发现和解决潜在的问题。
本文将提供一些常见的SQL测试题目,并且给出相应的答案,帮助读者更好地理解SQL语言的使用和测试方法。
一、题目1:查询订单表中购买数量最多的商品名称和购买数量。
答案:```sqlSELECT product_name, MAX(quantity) AS max_quantityFROM ordersGROUP BY product_name;```二、题目2:查询每个部门的平均工资和人数,结果按平均工资降序排列。
答案:```sqlSELECT department, AVG(salary) AS avg_salary, COUNT(*) AS num_employeesFROM employeesGROUP BY departmentORDER BY avg_salary DESC;```三、题目3:查询没有订单的客户名称和联系方式。
答案:```sqlSELECT customer_name, contact_numberFROM customersWHERE customer_id NOT IN (SELECT DISTINCT customer_idFROM orders);```四、题目4:查询每个国家的订单数和总销售额,并按总销售额降序排列。
答案:```sqlSELECT country, COUNT(*) AS num_orders, SUM(total_amount) AS total_salesFROM ordersGROUP BY countryORDER BY total_sales DESC;```五、题目5:查询购买了所有商品的客户名称和联系方式。
答案:```sqlSELECT customer_name, contact_numberFROM customersWHERE customer_id IN (SELECT customer_idFROM ordersGROUP BY customer_idHAVING COUNT(DISTINCT product_name) = (SELECT COUNT(DISTINCT product_name)FROM products));```六、题目6:查询每个部门的最高工资和最低工资。
数据库设计及SQL语言应用测试(答案见尾页)一、选择题1. 数据库系统的基本构成包括哪些组件?A. 数据库管理员(DBA)B. 应用程序员C. 数据库分析师D. 数据库系统工程师2. 在数据库设计中,以下哪个阶段不是必须的?A. 需求分析B. 概念设计C. 逻辑设计D. 物理设计3. SQL语言中的SELECT语句用于执行哪种操作?A. 查询B. 插入C. 更新D. 删除4. 在数据库设计中,规范化是为了避免哪种问题?A. 数据冗余B. 数据不一致性C. 数据完整性D. 数据丢失5. 以下哪个选项是数据库事务的正确描述?A. 事务是数据库操作的基本单位,可以分解为多个逻辑操作序列。
B. 事务具有原子性,意味着事务中包含的操作要么全部执行,要么全部不执行。
C. 事务具有隔离性,确保事务不受其他事务的影响。
D. 事务具有持久性,确保事务提交后数据不会丢失。
6. 在SQL语言中,用来定义新表的命令是什么?A. CREATE TABLEB. ALTER TABLEC. DROP TABLED. UPDATE TABLE7. 数据库索引的目的是什么?A. 提高查询性能B. 减少数据冗余C. 增加数据安全性D. 确保数据一致性8. 在数据库设计中,如何确保数据完整性?A. 使用约束B. 使用触发器C. 使用存储过程D. 使用视图9. 以下哪个选项是数据库备份的正确描述?A. 定期备份可以防止数据丢失。
B. 快照备份是一种特殊的备份类型,它捕获整个数据库的状态。
C. 在备份过程中,可以对数据库进行读写操作。
D. 备份可以基于时间点或基于增量。
10. 在SQL语言中,用来查看当前数据库名的命令是什么?A. SELECT DATABASE()B. SHOW DATABASES()C. SELECT USER()D. SELECT CURRENT_DATABASE()11. 数据库系统的基本构成包含哪些组件?A. 数据库管理员(DBA)B. 应用程序员C. 数据库设计师D. 数据库管理系统(DBMS)12. 在数据库设计中,以下哪个阶段不是属于需求分析阶段?A. 需求收集B. 数据流程分析C. 数据字典建立D. 结构设计13. 关系数据库中的关系模型是一个二维表结构,它由哪几个部分组成?A. 主键B. 外键C. 候选键D. 全键14. 在数据库设计中,以下哪个术语用来描述数据的逻辑结构?A. 模式B. 内模式C. 外模式D. 物理模式15. 在SQL语言中,用于修改数据库记录的命令是?A. INSERTB. UPDATEC. DELETED. CREATE16. 数据库事务处理的主要特点包括哪些?A. 原子性B. 一致性C. 隔离性D. 持久性17. 在数据库系统中,如何确保数据的安全性和完整性?A. 使用强密码策略B. 定期备份数据C. 实施访问控制列表(ACL)D. 对数据进行定期审计18. 在数据库设计中,如何确定和优化数据库的性能指标?A. 分析查询执行计划B. 监控系统资源使用情况C. 进行负载测试D. 评估数据库架构设计19. 在SQL语言中,用于定义新数据库对象的命令是?A. CREATEB. ALTERC. DROPD. DELETE二、问答题1. 什么是数据库的三级模式结构?请简述其组成部分。
一、单选题1、已知有:学生表Student(S# char(8), Sname char(10), Ssex char(2), Sage integer, D# char(2), Sclass char(6))中,若要在学生表中追加一个元组“学号为98030101的男同学张三,年龄为20,所属系别03,所在班级980301”,则可用_________。
A.INSERT INTO Student VALUES (9803010, 张三, 男, 20, 03, 980301);B.INSERT INTO Student VALUES(‘98030101’,‘张三’,‘男’, 20,‘03’,‘980301’);C.ADD INTO Student VALUES(‘98030101’,‘张三’,‘男’,20,‘03’,‘980301’);D.ADD INTO Student VALUES(98030101, 张三, 男, 20,03,980301);正确答案:B解析: A、字符串型属性值需要加引号 B、正确 C、向表中追加元组要使用INSERT INTO D、向表中追加元组要使用INSERT INTO2、在关系模型中关于结果唯一性问题,结果排序问题,模糊查询问题,如下说法不正确的是_________。
A.在Table中要求无重复元组是通过定义Primary key或Unique来保证的;而在检索结果中要求无重复元组, 是通过在SELECT子句中引入DISTINCT保留字来实现的。
B.结果排序是在Select语句中通过增加order by子句实现的,后只能跟DESC或省略为降序。
C.模糊查询是通过在Select语句的Where子句中引入运算符like来实现的D.在SELECT语句的Like条件中,用“\%”去匹配字符%,用\_ 去匹配字符_正确答案:B解析: B、若后跟asc或省略,则为升序;若后跟desc, 则为降序3、查询时,若要输出无重复的记录,SELECT子句中使用的保留字是:_________。
sql测试题和答案# SQL测试题1. 基础查询题- 题目:编写一个SQL查询,从`employees`表中选择所有员工的姓名和员工ID。
- 答案:`SELECT name, employee_id FROM employees;`2. 条件查询题- 题目:从`orders`表中选择所有订单金额超过1000的订单。
- 答案:`SELECT * FROM orders WHERE order_amount > 1000;`3. 排序题- 题目:从`products`表中选择所有产品的名称和价格,并按价格降序排列。
- 答案:`SELECT name, price FROM products ORDER BY price DESC;`4. 聚合函数题- 题目:计算`sales`表中所有销售额的总和。
- 答案:`SELECT SUM(sales_amount) AS total_sales FROM sales;`5. 分组查询题- 题目:从`sales`表中按产品ID分组,并计算每个产品的总销售额。
- 答案:`SELECT product_id, SUM(sales_amount) AStotal_sales_per_product FROM sales GROUP BY product_id;`6. 连接查询题- 题目:查询`customers`表和`orders`表,找出所有客户的姓名和他们下过的订单数量。
- 答案:`SELECT , COUNT(o.order_id) AS order_count FROM customers c JOIN orders o ON c.customer_id =o.customer_id GROUP BY ;`7. 子查询题- 题目:找出`employees`表中工资高于平均工资的员工的姓名和工资。
- 答案:`SELECT name, salary FROM employees WHERE salary > (SELECT AVG(salary) FROM employees);`8. 多表连接查询题- 题目:查询`employees`表和`departments`表,找出所有员工的姓名、部门名称和部门ID。
嵌入式SQL与宿主语言接口实战试卷(答案见尾页)一、选择题1. 嵌入式SQL是指什么?A. SQL代码嵌入到宿主程序中B. 宿主程序嵌入到SQL代码中C. 一种数据库管理系统D. 数据库与应用程序之间的通信技术2. 在嵌入式SQL中,如何定义一个变量来存储查询结果?A. 使用宿主语言的数据类型B. 使用SQL的数据类型C. 定义一个结构体或类D. 直接赋值3. 嵌入式SQL中,如何将查询结果返回给宿主语言?A. 使用CALL语句B. 使用FETCH语句C. 使用SELECT语句D. 直接赋值4. 在嵌入式SQL中,当处理查询结果时,通常会使用哪种数据结构?A. 数组B. 链表C. 栈D. 队列5. 嵌入式SQL中,如何处理查询中的错误?A. 使用异常处理机制B. 使用错误码C. 使用日志记录D. 使用条件语句6. 嵌入式SQL中,如何在宿主语言中调用SQL函数?A. 使用标准函数调用语法B. 使用特定于数据库的函数调用语法C. 使用自定义函数D. 直接调用7. 嵌入式SQL中,如何处理查询结果的循环遍历?A. 使用宿主语言的循环结构B. 使用SQL的FETCH循环C. 使用数据库提供的迭代器D. 使用索引8. 嵌入式SQL中,如何确保查询的安全性?A. 使用参数化查询B. 使用存储过程C. 使用事务控制D. 使用访问控制列表9. 在嵌入式SQL中,如何处理字符串类型的SQL数据?A. 直接使用字符串拼接B. 使用特定于数据库的方法C. 使用转义字符D. 使用正则表达式10. 嵌入式SQL与宿主语言之间的数据传递通常通过什么方式实现?A. 共享内存B. 管道通信C. 消息队列D. 套接字通信11. 嵌入式SQL是一种用于与数据库进行通信的编程技术,其主要功能是______。
A. 将高级编程语言的代码转换为SQL语句B. 将SQL语句转换为高级编程语言的代码C. 提供数据库访问接口D. 执行数据库查询和更新操作12. 在嵌入式SQL中,如何定义一个变量以存储查询结果?A. 使用FETCH命令B. 使用INTO子句C. 使用SELECT语句D. 使用UPDATE语句13. 嵌入式SQL中,当需要在程序中执行SQL语句时,通常使用哪种语法结构?A. 子程序B. 函数C. 过程D. 事件14. 在嵌入式SQL中,如何将SQL查询结果传递回程序的主流代码?A. 使用FETCH命令B. 使用INTO子句C. 使用SELECT语句D. 使用CALL语句15. 嵌入式SQL与宿主语言之间的数据传输通常通过哪种方式实现?A. 键值对B. 指针C. 数组D. 栈16. 在嵌入式SQL中,如何处理SQL语句中的错误?A. 使用异常处理机制B. 使用错误代码C. 使用日志记录D. 使用条件语句17. 嵌入式SQL中,如何定义一个存储过程?A. 使用CREATE PROCEDURE语句B. 使用CREATE FUNCTION语句C. 使用CREATE VIEW语句D. 使用CREATE INDEX语句18. 在嵌入式SQL中,如何声明一个游标?A. 使用DECLARE CURSOR语句B. 使用OPEN语句C. 使用FETCH语句D. 使用CLOSE语句19. 嵌入式SQL中,如何关闭当前打开的游标?A. 使用CLOSE语句B. 使用FETCH语句C. 使用OPEN语句D. 使用CLOSE语句20. 在嵌入式SQL中,如何编写一个触发器来响应数据库中的数据变化?A. 使用CREATE TRIGGER语句B. 使用ALTER TRIGGER语句C. 使用DROP TRIGGER语句D. 使用CREATE INDEX语句21. 在嵌入式SQL中,如何定义一个SQL语句?A. 使用EXEC SQL命令B. 直接在程序中编写SQL代码C. 使用预处理指令D. 需要宿主语言提供接口22. 嵌入式SQL与宿主语言之间的数据交互通常通过什么实现?A. 栈B. 队列C. 消息队列D. 共享内存23. 在宿主语言中使用嵌入式SQL时,通常需要定义哪些变量?A. 输入参数B. 输出结果C. 临时变量D. 全局变量24. 在嵌入式SQL中,如何处理错误?A. 使用异常处理机制B. 检查SQL语句的语法是否正确C. 使用循环结构D. 需要宿主语言提供错误处理函数25. 嵌入式SQL与宿主语言之间的通信通常采用哪种方式?A. 单独的线程B. 共享内存C. 消息队列D. 管道26. 如何在嵌入式SQL中释放游标?A. 使用CLOSE命令B. 直接关闭游标C. 使用DEALLOCATE命令D. 需要宿主语言提供接口27. 在嵌入式SQL中,如何处理多个结果集?A. 使用单个FETCH命令B. 使用多个SELECT语句C. 使用UNION操作符D. 需要宿主语言提供接口28. 嵌入式SQL中,如何将查询结果传递回宿主语言?A. 使用FETCH命令B. 使用FETCH INTO语句C. 使用SELECT语句D. 使用EXECUTE语句29. 在嵌入式SQL中,如何处理SQL错误?A. 使用异常处理机制B. 使用错误代码C. 使用日志记录D. 使用CASE语句30. 嵌入式SQL中,如何声明一个SQL变量?A. 使用DECLARE命令B. 使用SET命令C. 使用SELECT命令D. 使用FETCH命令31. 在嵌入式SQL中,如何执行一个存储过程?A. 使用CALL命令B. 使用EXECUTE命令C. 使用DO命令D. 使用RUN命令32. 嵌入式SQL中,如何处理多行查询结果?A. 使用FETCH命令逐行处理B. 使用FETCH INTO语句逐行处理C. 使用SELECT语句处理D. 使用EXECUTE语句处理33. 在嵌入式SQL中,如何更新表中的数据?B. 使用INSERT语句C. 使用DELETE语句D. 使用ALTER语句34. 嵌入式SQL中,如何从用户那里获取输入?A. 使用PRINT命令B. 使用ASK命令C. 使用GET命令D. 使用INPUT命令35. 在嵌入式SQL中,如何关闭与数据库的连接?A. 使用CLOSE命令B. 使用DISCONNECT命令C. 使用QUIT命令D. 使用END命令36. 在嵌入式SQL中,如何定义一个变量?A. 使用关键字SETB. 使用关键字SELECTC. 使用关键字DECLARED. 使用关键字INT37. 嵌入式SQL中,如何声明一个游标?A. 使用DECLARE CURSOR语句B. 使用OPEN语句C. 使用FETCH语句D. 使用CLOSE语句38. 嵌入式SQL中,如何插入一行数据到表中?A. 使用INSERT INTO语句B. 使用UPDATE语句C. 使用DELETE语句39. 在嵌入式SQL中,如何关闭一个已打开的游标?A. 使用CLOSE语句B. 使用FETCH语句C. 使用UPDATE语句D. 使用DELETE语句40. 嵌入式SQL中,如何处理多个结果集?A. 使用单个SELECT语句并使用多个列名B. 使用多个SELECT语句并将结果分别存储在变量中C. 使用单个SELECT语句并使用UNION操作符D. 使用多个SELECT语句并使用逗号分隔41. 在嵌入式SQL中,如何处理事务?A. 使用COMMIT语句提交事务B. 使用ROLLBACK语句回滚事务C. 使用SAVEPOINT语句设置保存点D. 使用BEGIN语句开始事务二、问答题1. 什么是嵌入式SQL?它的主要特点是什么?2. 什么是宿主语言?它在嵌入式SQL中的作用是什么?3. 如何在宿主语言中编写嵌入式SQL程序?4. 请解释一下SQL注入攻击及其防范措施。
实验6 嵌入式SQL通过这个实验,我们首先熟悉了嵌入式SQL编程,并可以自己动手编写一个小型的数据库应用程序。
而且能够大体了解我们平时在日常生活中看到的一些数据库应用程序是如何开发出来的。
做完这个实验,你会发现那些数据库程序也并不是十分高深。
这是我们最后一个实验,也是工作量最大的一个实验,大约需要2-3次实验课的时间。
希望同学们认真完成。
实验平台1.OS:WindowsXP2.DBMS:SQLServer2000piler:Visual C++ 6.0(大家可能没有接触过VC++,但并不妨碍我们做这个实验,因为在这个实验中我们只利用它的编译功能。
)预备知识1)嵌入式SQL编程:嵌入式SQL由SQL语句和C/C++代码组成。
其中SQL语句由预处理器翻译成C或C++的源代码。
对预处理后的源代码进行编译、连接生成可执行程序后方可运行。
●SQL预处理器SQLServer的预处理程序是nsqlprep.exe。
其常用的语法格式如下:nsqlprep 程序文档名⏹要求程序文档名的后缀为.sqc,可以省略。
⏹预编译后得到的文档,与程序文档同名,后缀为.c;放在与程序文档名同一个路径下nsqlprep.exe在SQLServer的安装目录的MSSQL\Binn下。
在本机中SQLServer的安装目录是C:\Program Files\Microsoft SQL Server,nsqlprep.exe在C:\Program Files\Microsoft SQL Server\MSSQL\Binn。
由于默认的安装方式(典型安装)并没有安装应用程序nsqlprep.exe,因此,需要你把我提供的binn文件夹,拷贝到该目录下覆盖原来的Binn。
●连接方式经预处理后的c文件就可以用c的编译器进行编译连接了。
使用Visual C++ 6.0进行编译连接,连接方式是动态连接,用到动态链接库SQLakw32.dll,sqlaiw32.dll;此两文件已经随同binn.rar的其他内容,被拷贝到C:\Program Files\Microsoft SQL Server\MSSQL\Binn下;但仍然需要把该路径加到系统的路径变量中,以使得程序运行时能找到这两个文件。
SQL语言习题一、单项选择题1.SQL语言是的语言,易学习。
A.过程化B.非过程化C.格式化D.导航式答案:B2.SQL语言是语言。
A.层次数据库B.网络数据库C.关系数据库D.非数据库答案:C3.SQL语言具有的功能。
A.关系规范化、数据操纵、数据控制B.数据定义、数据操纵、数据控制C.数据定义、关系规范化、数据控制D.数据定义、关系规范化、数据操纵答案:B4.SQL语言的数据操纵语句包括SELECT,INSERT,UPDATE和DELETE等。
其中最重要的,也是使用最频繁的语句是。
A.SELECT B.INSERT C.UPDA TE D.DELETE答案:A5.SQL语言具有两种使用方式,分别称为交互式SQL和。
A.提示式SQL B.多用户SQL C.嵌入式SQL D.解释式SQL答案:C6.SQL语言中,实现数据检索的语句是。
A.SELECT B.INSERTC.UPDATE D.DELETE答案:A7.下列SQL语句中,修改表结构的是。
A.ALTER B.CREATEC.UPDATE D.INSERT答案:A第8到第11题基于这样的三个表即学生表S、课程表C和学生选课表SC,它们的结构如下:S(S#,SN,SEX,AGE,DEPT)C(C#,CN)SC(S#,C#,GRADE)其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C#为课程号,CN为课程名,GRADE为成绩。
8.检索所有比“王华”年龄大的学生姓名、年龄和性别。
正确的SELECT语句是。
A.SELECT SN,AGE,SEX FROM SWHERE AGE>(SELECT AGE FROM SWHERE SN=’王华’)B.SELECT SN,AGE,SEX FROM SWHERE SN=’王华’C.SELECT SN,AGE,SEX FROM SWHERE AGE>(SELECT AGEWHERE SN=’王华’)D.SELECT SN,AGE,SEX FROM SWHERE AGE>王华.AGE答案:A9.检索选修课程“C2”的学生中成绩最高的学生的学号。
一、单选题1、修改基本表结构的SQL语句是A.DROP INDEXB.ALTER DATABASEC.ALTER TABLED.DROP TABLE正确答案:C2、定义外码的SQL语句是A.PRIMARY KEYB.FOREIGN KEYC.UNIQUED.NOT NULL正确答案:B3、用于删除数据库对象的SQL语句是A.SELECTB.CREATEC.DROPD.ALTER正确答案:C4、定义聚集索引使用下面哪个关键字A.INDEXB.UNIQUEC.UNCLUSTERD.CLUSTER正确答案:D5、表达查询条件的子句是A.WHERE子句B.ORDER BY子句C.SELECT子句D.FROM子句正确答案:A6、下面哪个聚集函数是用来计数的A.COUNT()B.MAX()C.MIN()D.SUM()正确答案:A7、定义视图的SQL语句是A.CREATE VIEWB.CREATE DATABASEC.CREATE TABLED.CREATE INDEX正确答案:A8、当查询的结果为多个元组时,必须使用什么来保存查询结果A.数组B.游标C.主语言变量D.SQLCODE正确答案:B二、多选题1、下面属于定义语句的有A.SELECTB.DROPC.ALTERD.CREATE正确答案:B、C、D2、下面关于SQL语言特点正确的是A.集多种数据库语言于一体B.面向集合的操作方式C.高度非过程化D.功能强大,语言简洁正确答案:A、B、C、D三、判断题1、DBMS执行CREATE VIEW语句的时执行其中的SELECT语句,并保存结果。
正确答案:×2、聚簇索引可以显著提高某些查询的速度,因此,对一个基本表可以建立多个聚簇索引正确答案:×3、查询语句中有分组子句时,SELECT子句后面只能是分组属性或者聚集函数正确答案:√4、透过视图的更新被保存在视图中正确答案:×5、建立索引是为了加快查询速度。
sql测试题和答案以下是一些常见的SQL测试题及其答案。
这些题目旨在考察SQL 基本知识和查询能力。
希望对你的SQL学习和提升有所帮助。
1. 给定一个名为"Students"的表格,包含学生的姓名、年龄和分数三个字段。
写一个SQL查询,按照分数从高到低排列,显示学生姓名和分数。
答案:SELECT Name, ScoreFROM StudentsORDER BY Score DESC;2. 给定一个名为"Customers"的表格,包含顾客的姓名、所在城市和消费金额三个字段。
写一个SQL查询,显示每个城市的总消费金额,结果按照金额从高到低排序。
答案:SELECT City, SUM(Expense) as TotalExpenseFROM CustomersGROUP BY CityORDER BY TotalExpense DESC;3. 给定一个名为"Orders"的表格,包含订单号、顾客姓名和订单日期三个字段。
写一个SQL查询,显示每个顾客最近一次的订单日期。
答案:SELECT CustomerName, MAX(OrderDate) as LastOrderDateFROM OrdersGROUP BY CustomerName;4. 给定一个名为"Employees"的表格,包含员工的姓名、职位和入职日期三个字段。
写一个SQL查询,显示每个职位的最早入职员工姓名。
答案:SELECT Position, MIN(StartDate) as EarliestEmployeeFROM EmployeesGROUP BY Position;5. 给定一个名为"Products"的表格,包含产品名称、价格和所属分类三个字段。
写一个SQL查询,显示每个分类中价格最高的产品。
答案:SELECT Category, MAX(Price) as HighestPriceFROM ProductsGROUP BY Category;这些题目涵盖了SQL中的基本查询、排序、分组和聚合等操作。
一、单选题1、如下哪项技术促进了嵌入式系统的诞生?A.集成电路技术B.高级编程语言技术C.网络通信技术D.操作系统技术正确答案:A解析: A、集成电路技术的出现使得硬件系统可以和物件有效融合。
2、下列设备哪个不是嵌入式系统?A.磁盘驱动器B.个人数字助理(PDA)C.引擎控制器D.智能电话正确答案:B解析: A、数字控制器与磁盘构成的系统,控制磁盘的读写。
B、不操作物理对象,只是一个小型的信息处理系统。
C、控制器控制引擎的运行。
D、感知环境并通过通信、发达等接口与用户、环境交互。
3、嵌入式系统设计中的资源配置基本要求是?A.数据容量越大越好B.保证最高计算性能C.根据需求量身定制D.综合成本一定最低正确答案:C解析: A、根据需求配置,不追求最大容量、最高性能 B、根据需求配置,不追求最大容量、最高性能 C、根据应用需求,量体裁衣、量身定制,是嵌入式系统设计的一个基本原则。
D、根据需求配置,不追求最大容量、最高性能或最低成本4、裸机软件结构是一种常见的嵌入式系统结构,其正确的含义是?A.应用软件直接部署在硬件之上,其需要完成硬件配置和驱动。
B.应用软件部署于操作系统之上,其无需关心底层硬件配置和驱动。
C.应用软件固化在片外存储器中,上电后直接从存储器加载执行。
D.应用软件存放在服务器之上,上电后从服务器端加载执行。
正确答案:A解析: A、裸机软件是指在硬件之上直接部署应用软件,是一种简单的系统结构。
由于无需嵌入式操作系统,应用软件就需要完成硬件的配置、初始化和驱动管理等工作。
C、裸机软件通常固化在硬件上,但不一定必须在片外存储器中。
二、多选题1、嵌入式系统的快速发展主要得益于如下哪些方面?A.大规模集成电路技术B.高级编程语言技术C.网络通信技术D.嵌入式操作系统正确答案:A、B、C、D解析: A、集成电路促进了现代嵌入式系统的发展和广泛应用 B、高级编程语言使得复杂软件的设计成为可能,同时也促进了应用 C、网络通信技术增强了嵌入式系统的互连能力,促进了新技术和应用形态的发展 D、嵌入式操作系统实现复杂硬件的管理并向上虚拟出复杂的系统服务,促进了新技术和应用形态的发展2、如下哪些是复杂嵌入式软件的构成成份?A.板级支持包B. Boot LoaderC.嵌入式操作系统D.文件系统正确答案:A、B、C、D解析: A、板级支持包(BSP)是一个配置和驱动软件包,提供了向下进行硬件驱动的功能。
9.3.1 a) void closestMatchPC(){ EXEC SQL BEGIN DECLARE SECTION;char manf[], SQLSTATE[6]; int targetPrice, float tempSpeed, speedOfClosest;char tempModel[4], modelOfClosest[4]; int tempPrice,priceOfClosest;EXEC SQL END DECLARE SECTION;EXEC SQL DECLARE pcCursor CURSOR FORSELECT model, price, speed FROM PC;EXEC SQL OPEN pcCursor;EXEC SQL FETCH FROM pcCursorINTO :modelOfClosest, :priceOfClosest, :speedOfClosest;if(NOT_FOUND) /* print message and exit */ ;while(1){ EXEC SQL FETCH pcCursor INTO :tempModel, :tempPrice, :tempSpeed; if (NOT_FOUND) break;if(|tempPrice-targetPrice|<|priceOfClosest-targetPrice|){ modelOfClosest = tempModel;priceOfClosest = tempPrice;speedOfClosest = tempSpeed;}}EXEC SQL SELECT maker INTO :manfFROM ProductWHERE model = :modelOfClosest;printf("manf=%s, model=%d, speed=%d\n", manf, modelOfClosest, speedOfClosest);EXEC SQL CLOSE CURSOR pcCursor;}d)void withinBudget(){ EXEC SQL BEGIN DECLARE SECTION;int total_budget, rest_budget, pc_price, printer_price;char pc_model[4], printer_model[4], color[6];float min_speed; EXEC SQL END DECLARE SECTION;EXEC SQL PREPARE query1 FROM…SELECT model, price FROM PCWHERE speed >= ? AND price <= ?ORDER BY price‟;EXEC SQL PREPARE query2 FROM…SELECT model, price FROM PrinterWHERE price <= ? AND color = ?ORDER BY price‟;EXEC SQL DECLARE cursor1 CURSOR FOR query1;EXEC SQL DECLARE cursor2 CURSOR FOR query2;/* ask user for budget & the minimum speed of pc *//* get the cheapest PC of the minimum speed */EXEC SQL OPEN cursor1 USING :min_speed, :total_budget;EXEC SQL FETCH cursor1 INTO :pc_model, :pc_price;if (NOT_FOUND)Printf(“no pc found within the budg et\n”);else{ P rintf(“pc model: %s\n”, pc_model);}/* get Printer within the budget */rest_budget = total_budget – pc_price;color = “true”;EXEC SQL OPEN cursor2 USING :rest_budget, :color;EXEC SQL FETCH cursor2 INTO :printer_model;if(NOT_FOUND) {EXEC SQL CLOSE CURSOR cursor2;color = “false”;EXEC SQL OPEN cursor2 USING :rest_budget, :color;if(NOT_FOUND)printf(“no printer found within the budget\n”);else { EXEC SQL FETCH cursor2 INTO :printer_model;printf(“printer model: %s\n”, printer_model);}}else {p rintf(“printer model: %s\n”, printer_model); }EXEC SQL CLOSE CURSOR cursor1;EXEC SQL CLOSE CURSOR cursor2;}(f) void lowerPrices(){ EXEC SQL BEGIN DECLARE SECTION;char SQLSTATE[6];EXEC SQL END DECLARE SECTION;EXEC SQL DECLARE PCCursor INSENSITIVE CURSOR FOR PC;EXEC SQL OPEN PCCursor;while(1){EXEC SQL FETCH FROM PCCursor;if(NO_MORE_TUPLES) break;EXEC SQL UPDATE PCSET price=price-100WHERE CURRENT OF PCCursor;}EXEC SQL CLOSE PCCursor;}7.1.3 void twoMoreExpensive(){EXEC SQL BEGIN DECLARE SECTION;char SQLSTATE[6],cd[5],cd1[5];int model, model1,speed, speed1, ram, ram1, price, price1;float hd, hd1;EXEC SQL END DECLARE SECTION;EXEC SQL DECLARE PCCursor SCROLL CURSOR FORSELECT * FROM PC ORDER BY speed, price;EXEC SQL OPEN PCCursor;while(1){EXEC SQL FETCH NEXT FROM PCCursorINTO:model, :speed, :ram, :hd,:cd,:price;if(NO_MORE_TUPLES) break;EXEC SQL FETCH RELATIVE +2 FROM PCCursorINTO :model1,speed1,:ram1,:hd1,:cd1,:price1;if(NO_MORE_TUPLES) break;if(speed==speed1)EXEC SQL FETCH RELATIVE -2 FROM PCCursorINTO :model1, :speed1, :ram1, :hd1, :cd1, :price1;printf(“model=%d, speed=%d, ram1=%d, cd1=%s, price=%d\n”,model1, speed1, ram1,hd1,cd1,price1);}EXEC SQL CLOSE PCCursor;}a) CREATE FUNCTION PresNetWorth(studioName CHAR[15]) RETURNS INTEGERDECLARE presNetWorth INT;BEGINSELECT netWorthINTO presNetWorthFROM Studio, MovieExecWHERE = studioName AND presC# = cert#;RETURN(presNetWorth);END;c) CREATE PROCEDURE twoLongest(IN studio CHAR(15),OUT longest VARCHAR(255),OUT second VARCHAR(255))DECLARE t VARCHAR(255);DECLARE i INT;DECLARE Not_Found CONDITION FOR SQLSTATE = '02000';DECLARE MovieCursor CURSOR FORSELECT title FROM Movies WHERE studioName = studioORDER BY length DESC;BEGINSET longest = NULL;SET second = NULL;OPEN MovieCursor;SET i = 0;mainLoop: WHILE (i < 2) DOFETCH MovieCursor INTO t;IF Not_Found THEN LEAVE mainLoop END IF;SET i = i + 1;END WHILE;CLOSE MovieCursor;END;d) CREATE PROCEDURE earliest120mMovie(IN star CHAR(30),OUT earliestYear INT)DECLARE Not_Found CONDITION FOR SQLSTATE = '02000';DECLARE MovieCursor CURSOR FORSELECT MIN(year) FROM MoviesWHERE length > 120 ANDtitle IN (SELECT movieTitle FROM StarsInWHERE starName = star);SET earliestYear = 0;OPEN MovieCursor;FETCH MovieCursor INTO earliestYear; CLOSE MovieCursor;END;。
一、单选题
1、以下嵌入式SQL语句,没有错误的是_________。
A.exec sql select Sname,Sage into :vSname, :vSage from Student where Sname
= :specName;
B.exec sql begin declare section char vSname[10], specName[2]=“lzt”;int vSage; exec sql end declare section
C.其他有多于一个的选项没有错误
D.exec sql select Sname,Sage into vSname,vSage from Student where Sname = specName;
正确答案:A
解析: A、此选项说法正确。
B、此选项说法不正确,因为SpecName[2]仅定义了2个字符宽度,但却给其赋值3个字符不正确。
C、此选项说法不正确,因为其他中仅
有一个选项是没有错误的。
D、此选项说法不正确,Exec SQL中使用高级语言的变量,变量前要加冒号,以与“属性”相区分。
2、关于事务,下列说法正确的是__________。
A.必须以Begin Transaction和End Transaction显性地标记开始和结束;
B.SQL语句在执行过程中,必须有提交或撤消语句才能确认其对数据库的永久操作结果;
C.一个事务仅能包含一条SQL语句,多条SQL语句将产生多个事务;
D.事务在处理过程中是可以被中断的,且中断前的执行结果也是有效的;
正确答案:B
解析: A、此选项说法不正确,Exec SQL可以不需要Begin Transaction和End Transaction,因为任何一条SQL语句都可告诉DBMS开始一个新事务,只要其前面没有事务,而当事务结束时必须有提交和撤销语句。
B、此选项说法正确 C、此选项说法不正确,一个事务是可以包含多条SQL语句的,并不是每一条SQL语句产生一个事务。
D、此选项说法不正确,事务再处理过程中是可以被中断的,但中断前的执行结果是无效的不被保留于数据库的。
3、关于游标,下列说法正确的是_________。
A.若要重新执行游标中的SQL语句,需要重新声明游标并打开游标;
B.游标使用之前需要先声明再打开;
C.游标中的 SQL语句被执行并产生结果是在Declare Cursor时进行的;
D.一个游标只能打开与关闭一次;
正确答案:B
解析:A、此选项说法不正确,若要重新执行游标中的SQL语句,只需打开游标即可,无需重新声明。
B、此选项说法正确,游标使用之前必须先声明再打开。
C、此选项说法不正确,游标中的SQL语句被执行并产生结果是在Open Cursor时进行的。
D、此选项说法不正确,一个游标可以反复打开和关闭。
4、在嵌入式SQL语言中使用游标的目的在于_________。
A.处理错误信息
B.处理多行记录
C.与数据库通信
D.区分SQL与宿主语言
正确答案:B
解析: B、使用游标的目的是检索多行结果,需要使用游标。
5、事务的持久性是指_________。
A.一个事务内部的操作及使用的数据对并发的其他事务而言是独立的、互不相干的;
B.事务中包括的所有操作要么都做,要么都不做;
C.已提交的事务,其数据将被完全写到永久存储设施上;而对未提交的事务,其对永
久存储设施上的操作将会被恢复,即对永久存储设施上的数据没有任何影响;
D.事务必须是使数据库从一个一致性状态变到另一个一致性状态;
正确答案:C
解析: A、是指事务的隔离性 B、是指事务的原子性 C、是指事务的持久性。
D、
是指事务的一致性。
6、事务是数据库运行的基本单位。
如果一个事务执行成功,则全部更新结果将被写到永久存储设施上;如果一个事务执行失败,则对永久存储设施上的数据已做过的更新
被恢复原状,好像整个数据库从未有过这些更新,这样保持了数据库处于_________状态。
A.安全性
B.一致性
C.完整性
D.可靠性
正确答案:B
解析: B、这四个选项中最符合题意的应当是“一致性”。
DBMS保证事务的操作状态是正确的,符合一致性的操作规则。
7、通过游标操纵数据库,以下说法不正确的是_________。
A.FOR UPDATE OF age 表示通过游标只能对age属性进行修改;
B.使用FOR UPDATE子句表示只能通过游标修改表数据,而不能删除表数据;
C.使用FOR UPDATE子句没有加OF表示通过游标可以修改表中的任何一列;
D.在定义游标的查询语句时,必须加上FOR UPDATE子句;
正确答案:B
解析: B、使用FOR UPDATE子句表示既能通过游标更新表数据,也能删除表数据。
8、数据字典通常是由下面哪个组成_________。
A.角色和视图
B.用户和权限
C.用户和表
D.表和视图
正确答案:D
解析: D、数据字典(Data dictionary),又称为系统目录(System Catalogs)是系统维护的一些“表”或“视图”的集合。
9、下面关于数据字典的描述中,不正确的是________。
A.数据字典是元数据而不是数据本身
B.数据字典通常也用二维表结构存储相关的数据
C.数据字典是用户通过SQL-DML(SELECT, UPDATE, DELETE, INSERT)建立和维护的;
D.数据字典是DBMS维护和查询数据库所依赖的重要数据
正确答案:C
解析: C、此选项说法是不正确的,数据字典通常是数据库管理员通过SQL-
DDL(CREATE, ALTER, DROP)建立和维护的;
10、以下关于JDBC的叙述,不正确的是_________。
A.JDBC通过一组Java接口实现其目标
B.JDBC可做三件事:与数据库建立连接、创建SQL语句对象并执行、返回结果数据集并提取数据给高级语言程序
C.JDBC使用java.sql.DriverManager类和java.sql.Driver类连接到数据库
D.JDBC是一种用于执行SQL语句的Java API 的面向对象的应用程序接口
正确答案:C
解析: C、JDBC使用java.sql.DriverManager类(管理不同DBMS提供的不同的驱动程序)、java.sql.Driver类(不同DBMS提供的驱动程序)和java.sql.Connection类(建立数据库连接)连接到数据库。
11、下列关于动态SQL语句的叙述中,不正确的是_________。
A.SQL 标准引入动态SQL 语句的原因是由于静态SQL 语句不能提供足够的编程灵活性
B.动态SQL 语句是指在程序编译时尚未确定,需要在程序执行过程中临时生成的SQL 语句
C.动态SQL 语句是SQL 标准提供的一种语句运行机制
D.SQL 标准提供的动态SQL 语句的执行方式只有立即执行方式。
正确答案:D
解析: D、此选项说法是不正确的,除了立即执行方式外,还有预编译执行方式(Prepare-Execute-Using),在预编译执行方式中可以动态传递参量给程序构造的SQL
语句并执行。
12、SQLCA和SQLDA是嵌入在C语言中的SQL语言经常使用的两种数据结构。
关于SQLCA和SQLDA,下列说法正确的是_________。
A.SQLCA是SQL通讯区,记录着数据库/表等对象的定义信息;SQLDA是SQL描述区,记录着SQL语句被DBMS执行后返回的状态信息。
B.SQLCA是SQL描述区,记录着数据库/表等对象的定义信息;SQLDA是SQL描述区,记录着SQL语句被DBMS执行后返回的状态信息。
C.SQLCA是SQL通讯区,记录着SQL语句被DBMS执行后返回的状态信息;SQLDA
是SQL描述区,记录着数据库/表等对象的定义信息。
D.SQLCA是SQL描述区,记录着SQL语句被DBMS执行后返回的状态信息;SQLDA
是SQL通讯区,记录着数据库/表等对象的定义信息。
正确答案:C
解析:C、SQLCA是SQL通讯区,记录着SQL语句被DBMS执行后返回的状态信息;SQLDA是SQL描述区,记录着数据库/表等对象的定义信息。
13、关于下面的思维模式,“建立数据库连接à请求分配语句句柄(申请内存空间)à用
句柄执行SQL(句柄与SQL语句绑定)à建立高级语言变量与句柄属性的对应à循环地获
取一条一条记录à释放语句句柄à断开数据库连接”。
这是关于__________的思维模式。
A.嵌入式SQL语言。
B.其他都不是。
C.ODBC。
D.JDBC。
正确答案:C
14、SQL语句执行后,需要将结果记录集中的属性值,读到高级语言的变量中,那什
么时候建立高级语言变量与属性的绑定,下列说法不正确的是_________。
A.JDBC:一条一条记录的,边绑定,边读取相应的属性值。
B.嵌入式SQL语言:在一条一条地读取记录时(Fetch)建立绑定。
C.其他选项说法有不正确的。
D. ODBC:在开始一条一条地读取记录之前用专门的语句建立绑定。
正确答案:C。