第6单元检测卷

news/2025/11/27 23:53:46/文章来源:https://www.cnblogs.com/lwp-nicol/p/19279798

好的,这是根据您提供的第三份PDF文档(第6单元检测卷)内容提取的题目、答案和解析,已按题型分类,并以Markdown格式呈现。


第6单元检测卷 - 题目、答案与解析

一、单项选择题

  1. 题目:关于数据库存储描述正确的是 ( )

    • A.所有数据库系统中,一个数据库都对应磁盘上的一个文件
    • B. SQLite 数据库只能以“. db”为拓展名的文件形式存储
    • C. MySQL中一个数据库对应磁盘上的一个目录,目录里文件与数据表同名,存数据表、索引等信息
    • D.不同数据库管理系统创建数据库的方法相同,文件格式通用

    答案:C
    解析

    • A: 错误。此描述仅适用于SQLite等轻量级数据库。像MySQL、Oracle等大型数据库,一个数据库通常对应操作系统中的一个目录(或一组文件),而不是单个文件。
    • B: 错误。SQLite数据库虽然通常以.db为扩展名,但这只是一个约定,并非强制要求。你可以使用任何扩展名,甚至没有扩展名。
    • C: 正确。在MySQL中,每个数据库都对应数据目录下的一个子目录。该目录内的文件用于存储该数据库的表数据(.MYD)、索引(.MYI)、表结构(.frm)等信息。
    • D: 错误。不同数据库管理系统(DBMS)如MySQL, Oracle, SQL Server,其底层存储引擎、文件格式、管理命令都完全不同,互不通用。
  2. 题目:关于数据与信息的区别,下列说法正确的是 ( )

    • A.数据是客观的物理状态反映,信息是主观创造的产物
    • B.数据必须经过数字化处理才能成为信息
    • C.班级人数是数据,但学校用它编排考场时就变成了信息
    • D.数据与信息本质相同,只是名称不同

    答案:C
    解析

    • A: 错误。数据是原始的、未经加工的事实或数字,信息是经过处理、组织后具有意义的数据。两者都不是主观创造的,而是对客观世界的反映。
    • B: 错误。数据不一定非要是数字化的。例如,一本纸质书上的文字也是数据,经过阅读理解后成为信息。
    • C: 正确。这是数据与信息关系的经典例子。“班级人数”是一个原始的、孤立的数字(数据)。当学校利用这个数字来“编排考场”时,它被赋予了特定的上下文和用途,变成了有意义的决策依据(信息)。
    • D: 错误。数据和信息的本质不同。数据是原材料,信息是成品。数据经过加工处理才能成为信息。
  3. 题目:数据库管理系统(DBMS)的定位是 ( )

    • A.一种包含硬件、软件和人员的完整应用系统
    • B.直接管理计算机硬件的操作系统组件
    • C.位于用户与操作系统之间的数据管理软件
    • D.仅用于大型企业数据存储的专用程序

    答案:C
    解析:数据库管理系统(DBMS)是位于用户(或应用程序)与操作系统之间的一层数据管理软件。它负责数据的定义、操纵、控制和维护,为用户提供了一个抽象的、逻辑的数据视图,屏蔽了底层操作系统和物理存储的复杂性。选项A描述的是数据库系统(DBS),选项B描述的是操作系统,选项D的描述过于狭隘。

  4. 题目:在数据库系统中,“数据的物理独立性”指 ( )

    • A.应用程序与存储在磁盘上的数据库中的数据相互独立
    • B.应用程序与数据库的逻辑结构相互独立
    • C.用户与存储在磁盘上的数据库中的数据相互独立
    • D.用户与数据库的逻辑结构相互独立

    答案:A
    解析:数据独立性是数据库系统的重要特征,分为物理独立性和逻辑独立性。

    • 物理独立性:指用户的应用程序与数据库中数据的物理存储结构相互独立。当数据的物理存储结构改变(如改变存储设备、调整文件组织方式)时,应用程序不需要修改。这由DBMS的存储管理器来实现。
    • 逻辑独立性:指用户的应用程序与数据库的逻辑结构相互独立。当数据库的逻辑结构改变(如增加新字段、改变关系)时,用户的应用程序可以保持不变。这由DBMS的模式映像机制来实现。
      选项A准确地描述了物理独立性的概念。
  5. 题目:数据库与文件系统的本质区别是 ( )

    • A.数据独立性高
    • B.数据结构化
    • C.数据共享性高
    • D.数据由 DBMS 统一管理和控制

    答案:B
    解析:虽然A、C、D都是数据库系统优于文件系统的特点,但最本质的区别在于数据结构化。在文件系统中,文件内部的数据结构由应用程序定义,文件之间缺乏联系,是面向应用的;而数据库系统中的数据是面向整个组织的,通过数据模型(如关系模型)进行了统一的结构化描述,并描述了数据之间的联系。这种结构化是数据库系统能够实现数据共享、高独立性、统一管理等一系列优势的基础。

  6. 题目:关于数据模型的描述,不正确的是 ( )

    • A.网状模型因直观简单而成为主流
    • B.关系模型诞生于 20 世纪70年代
    • C.层次模型和网状模型早于关系模型出现
    • D.所有数据库系统均基于某种数据模型建立

    答案:A
    解析

    • A: 不正确。网状模型虽然比层次模型更灵活,能够表示多对多的联系,但其结构复杂,DML语言复杂,不易掌握,因此并没有因为“直观简单”而成为主流。最终,关系模型因其简洁的二维表结构和强大的数学基础(关系代数)成为了绝对的主流。
    • B: 正确。关系模型由E.F. Codd于1970年提出,标志着数据库技术进入了一个新时代。
    • C: 正确。层次模型(如IMS)是早期的数据库模型,网状模型(如CODASYL)随后出现,关系模型是后来者。
    • D: 正确。任何数据库系统都必须基于某种数据模型(如层次、网状、关系、面向对象等)来组织和描述数据。
  7. 题目:关系型数据库中,用于唯一标识表中每条记录的字段称为 ( )

    • A.索引
    • B.主键
    • C.外键
    • D.约束

    答案:B
    解析

    • 主键(Primary Key):是关系表中的一个或一组字段,其值能唯一地标识表中的每一行(记录)。主键的值必须唯一且不能为空(NOT NULL)。
    • 索引(Index):是为了提高查询效率而创建的数据结构,它本身不用于唯一标识记录。
    • 外键(Foreign Key):是用于在两个表之间建立链接的字段,它引用了另一个表的主键,用于维护数据的参照完整性。
    • 约束(Constraint):是一个总称,包括主键约束、外键约束、唯一约束、非空约束等,用于限制表中数据的规则。
  8. 题目:某市政府需建立人口数据管理系统,要求处理亿级记录并保证高安全性,应优先选择 ( )

    • A. SQLite
    • B. MySQL
    • C. Oracle
    • D. SQL Server

    答案:C
    解析

    • SQLite:是轻量级的嵌入式数据库,适合小型应用或移动应用,不适合处理亿级记录的高并发场景。
    • MySQL:是流行的开源关系型数据库,性能良好,但在处理超大规模(亿级)数据、高并发读写和高级安全性、高可用性方面,与企业级数据库相比仍有差距。
    • OracleSQL Server:都是顶级的企业级数据库系统。它们提供了强大的性能优化、高可用性方案(如RAC, AlwaysOn)、高级安全特性(如细粒度访问控制、数据加密、审计)和完善的技术支持,非常适合政府、金融等对数据安全性和处理能力要求极高的亿级数据场景。Oracle在超大规模数据处理和复杂业务逻辑支持上通常被认为更具优势,因此是优先选择。
  9. 题目:关于 NoSQL数据库,下列说法正确的是 ( )

    • A. NoSQL 数据库查询结构化数据效果很好,适合所有业务场景
    • B.键值对存储代表软件是 Hbase,能快速查询数据
    • C.文档数据库存储(如MongoDB)对数据结构要求严格,查询性能好
    • D.图形数据库存储(如Neo4J)可利用图结构算法计算,但遇到不适合数据模型时难使用

    答案:D
    解析

    • A: 错误。NoSQL数据库专为非结构化或半结构化数据设计,对于需要复杂事务和强一致性的结构化数据场景,其效果不如关系型数据库。它也不适合所有业务场景。
    • B: 错误。键值对存储的代表软件是Redis或DynamoDB。HBase是一个列族数据库,虽然也基于键值,但其数据模型更复杂。
    • C: 错误。文档数据库(如MongoDB)的核心优势之一就是对数据结构要求灵活,同一个集合中的文档可以有不同的字段,这与关系型数据库的严格结构形成对比。
    • D: 正确。图形数据库(如Neo4J)使用节点、边和属性来表示和存储数据,非常适合处理实体间有复杂关系的场景(如社交网络、推荐系统),并能高效执行图遍历算法。但如果数据本身关系简单,更像是表格形式,那么使用图数据库不仅发挥不出优势,反而可能使设计和查询变得复杂。
  10. 题目:在数据库设计流程中,以下步骤顺序正确的是 ( )
    ①确定数据库中应包含哪些数据表及每个表的字段
    ②确定数据库要完成的任务、需获取的信息
    ③确定每个字段的数据类型和长度

    • A.①②③
    • B.②①③
    • C.③①②
    • D.②③①

    答案:B
    解析:数据库设计遵循自顶向下、从需求到实现的逻辑顺序。

    • ② 需求分析:首先必须明确数据库的用途,即“要完成的任务、需获取的信息”。这是所有设计的基础。
    • ① 概念设计/逻辑设计:在明确需求后,才能设计出需要哪些实体(表)以及实体间的联系,进而确定每个表应该包含哪些字段。
    • ③ 物理设计:最后,才需要根据具体DBMS的特点,为每个字段确定具体的数据类型、长度、约束等物理存储细节。
      因此,正确的顺序是②→①→③。
  11. 题目:数据表设计应遵循的原则中,关于“每张数据表中不应该包含重复的数据”,以下说法例外的是 ( )

    • A.所有字段都可重复
    • B.作为表格之间“纽带”的公共关键字段
    • C.任意字段重复都允许
    • D.重复数据不影响时可保留

    答案:B
    解析:“每张数据表中不应该包含重复的数据”是数据库规范化理论的核心思想之一,旨在减少数据冗余。但这个原则有一个重要的例外情况:外键。为了在两个表之间建立关联(如学生表和班级表),需要在子表(学生表)中存储父表(班级表)的主键值(班级ID)。这个班级ID在学生表中会重复出现(多个学生属于同一个班级),这种重复是必要的,它作为表格之间的“纽带”,是实现关系模型的基石。因此,作为外键的公共关键字段的重复是允许且必要的。

  12. 题目:以下属于字符型字段应存放的数据是 ( )

    • A.工资
    • B.出生日期
    • C.身份证号码
    • D.是否贫困户

    答案:C
    解析

  • 工资:通常用于计算,应使用数值型(如DECIMAL, NUMERIC)。
  • 出生日期:是日期时间信息,应使用日期时间型(如DATE, DATETIME)。
  • 身份证号码:虽然由数字组成,但它不用于数学计算,且长度固定(18位),通常作为标识符使用,因此最适合使用字符型(如CHAR(18), VARCHAR(18))存储。
  • 是否贫困户:是布尔值(是/否),通常使用BOOLEAN类型,或者用字符型(如CHAR(1)存'Y'/'N')或数值型(TINYINT存0/1)表示,但字符型不是唯一或最佳选择。
  1. 题目:数据表中每一行称为一条记录,其作用是 ( )

    • A.表示物体某方面的性质
    • B.用于表示某实体各方面的属性(
    • C.定义字段的属性
    • D.存储数据库管理系统信息

    答案:B
    解析:在关系模型中,一张二维表(Table)对应现实世界中的一个实体集(如“学生”集)。表中的每一行(Row/Record)对应实体集中的一个具体实体实例(如“张三”这个学生)。而行中的每一列(Column/Field)则对应该实体的一个属性(如学号、姓名、性别)。因此,一条记录的作用是用于表示某实体各方面的属性。选项A描述的是列(字段)的作用。选项C和D不正确。

  2. 题目:在农产品销售系统中,"订单金额"字段(含小数)应选择的数据类型是 ( )

    • A. INTEGER
    • B. TEXT
    • C. REAL
    • D. BLOB

    答案:C
    解析

  • INTEGER:用于存储整数,无法表示小数。
  • TEXT:用于存储字符串,虽然可以存"123.45",但不能直接进行数学运算,效率低下。
  • REAL:用于存储浮点数(即包含小数的数字),非常适合表示“订单金额”这类需要精确到小数点的数值。
  • BLOB:用于存储二进制大数据,如图片、音频文件,不适合存储金额。
    对于金额,有时为了更高的精度(避免浮点数精度问题),也会推荐使用DECIMALNUMERIC类型,但在给定的选项中,REAL是最合适的。
  1. 题目:关于SQLite安装,在 Windows系统配置环境变量时,应将解压目录添加到系统的 ( )

    • A. TEMP
    • B. PATH
    • C. USER
    • D. SYSTEM

    答案:B
    解析:在Windows系统中,PATH环境变量包含了一系列目录路径。当在命令行中输入一个命令时,系统会按顺序在这些目录中查找对应的可执行文件。将SQLite的解压目录(包含sqlite3.exe)添加到PATH环境变量中,就可以在任何目录下直接通过sqlite3命令来启动SQLite,而无需每次都输入完整路径。TEMP用于指定临时文件目录,USERSYSTEM不是用于此目的的环境变量类别。

  2. 题目:SQLite中建立数据库 AP. db连接的 Python 代码是 ( )

    • A. sqlite3. create("AP. db")
    • B. sqlite3. open("AP. db")
    • C. sqlite3. connect("AP. db")
    • D. sqlite3. new("AP. db")

    答案:C
    解析:在Python的sqlite3模块中,sqlite3.connect(database_name)函数用于建立一个到SQLite数据库文件的连接。如果指定的数据库文件不存在,connect函数会自动创建它。create, open, new都不是sqlite3模块中用于建立连接的函数名。

  3. 题目:在 courses 表(id 整数、course name 文本、teacher 文本)中查询课程名称包含“Java”的记录,正确的 SQL 语句是 ( )

    • A. SELECT * FROM courses WHERE course name LIKE"% Java%"
    • B. SELECT * FROM courses WHERE course name LIKE" Java "
    • C. SELECT * FROM courses WHERE course name="% Java%"
    • D. SELECT * FROM courses WHERE course name=" Java "

    答案:A
    解析:在SQL中,LIKE操作符用于在WHERE子句中进行模糊匹配。百分号%是通配符,代表任意数量的任意字符。要查询“课程名称包含‘Java’”,需要使用LIKE '%Java%',表示'Java'前面和后面可以有任意字符。选项B查询的是前后各有一个空格的" Java ",太严格。选项C和D的语法错误,字符串值需要用单引号括起来。

  4. 题目:有 sales表(id整数、region文本、amount 实数), region 表示地区, amount 表示销售额,查询各地区销售总额,筛选总额大于10000 的地区,按总额降序排列,下列语句正确的是 ( )

    • A. SELECT region, SUM(amount) AS total FROM sales ORDER BY region HAVING total>10000
    • B. SELECT region, SUM(amount) AS total FROM sales GROUP BY region HAVING total>10000 ORDER BY total DESC
    • C. SELECT region, SUM(amount) AS total FROM sales WHERE total>10000 GROUP BY region
    • D. INSERT region, SUM(amount) AS total FROM sales GROUP BY region HAVING total>10000

    答案:B
    解析:这是一个典型的分组聚合查询,需要遵循SQL子句的逻辑顺序:SELECT -> FROM -> WHERE -> GROUP BY -> HAVING -> ORDER BY

    • GROUP BY region:按地区分组。
    • SUM(amount) AS total:计算每个地区的销售总额,并命名为total
    • HAVING total>10000HAVING用于对分组后的结果进行筛选,这里筛选出总额大于10000的地区。不能用WHERE,因为WHEREGROUP BY之前执行,此时total还未计算出来。
    • ORDER BY total DESC:对最终结果按总额降序排列。
      选项B完整且正确地实现了所有要求。选项A缺少GROUP BY,且HAVINGORDER BY的顺序和逻辑错误。选项C错误地使用了WHERE来筛选聚合结果。选项D使用了INSERT语句,语法和功能完全错误。
  5. 题目:对产品库存表 products(id整数、name 文本、stock整数), name 表示产品名称, stock 表示库存,查询库存大于0,名称含“Phone”,且按名称升序排列的记录,下列语句正确的是( )

    • A. SELECT * FROM products WHERE stock<0 AND name LIKE" Phone%" ORDER BY name ASC
    • B. SELECT * FROM products WHERE stock>0 OR name LIKE"% Phone%" ORDER BY name DESC
    • C. SELECT * FROM products WHERE stock>0 AND name LIKE"% Phone%" ORDER BY name
    • D. Select * FROM products WHERE stock>0 AND name LIKE"% Phone%" ORDER BY name DESC

    答案:C
    解析

    • WHERE stock>0:筛选库存大于0的记录。
    • AND name LIKE '%Phone%':并且名称包含"Phone"(注意大小写,取决于数据库的排序规则)。
    • ORDER BY name:按名称升序排列(ASC是默认的,可以省略)。
      选项C完全符合要求。选项A条件stock<0错误,且" Phone%"只匹配以" Phone"开头的名称。选项B使用了OR,逻辑错误,且ORDER BY name DESC是降序。选项D的Select大小写错误(SQL关键字不区分大小写,但习惯上大写,且此处应为SELECT),且ORDER BY name DESC是降序。
  6. 题目:下列SQL 语句执行顺序中,逻辑正确的是 ( )
    SELECT department, AVG(salary) AS avg_sal FROM employees WHERE hire_date >= '2020-01-01' GROUP BY department HAVING avg_sal > 10000 ORDER BY avg_sal DESC

    • A.先GROUP BY 分组→再 WHERE 筛入职时间→后 HAVING 筛平均工资
    • B.先 FROM 取表数据→再 WHERE筛入职时间→后GROUP BY 分组→接着 HAVING筛平均工资→最后 SELECT 选字段、ORDER BY 排序
    • C.先 SELECT 选字段→再 FROM 取表→后 WHERE 筛条件→接着 GROUP BY→HAVING 筛组→ORDER BY 排序
    • D.先 FROM取表→WHERE筛条件→GROUP BY 分组→HAVING 筛组→SELECT 计算字段→ORDER BY 排序

    答案:B
    解析:SQL语句的逻辑执行顺序(也称为逻辑查询处理阶段)与其书写顺序不同,正确的顺序是:

    1. FROM:指定数据来源的表。
    2. WHERE:对表中的行进行筛选,基于原始数据。
    3. GROUP BY:将筛选后的行分组。
    4. HAVING:对分组后的结果进行筛选,基于聚合函数。
    5. SELECT:选择最终要返回的列或表达式(包括聚合计算)。
    6. ORDER BY:对最终结果集进行排序。
    7. LIMIT/OFFSET(如有):限制返回的行数。
      选项B准确地描述了这个逻辑流程。选项A、C、D的顺序均有错误。
  7. 题目:假设有交易表 transactions,字段: trans id(交易ID)、user id(用户 ID)、amount(交易金额)、trans date(交易日期)要求:①查询 2024 年每个用户的交易总金额;②筛选总金额大于 500 的用户;③按总金额升序排列。下列SQL 语句正确的是 ( )

    • A. SELECT user id, SUM(amount) AS total FROM transactions GROUP BY user id HAVING total>500 ORDER BY total ASC
    • B. SELECT user id, SUM(amount) AS total FROM transactions WHERE transaction date LIKE "2024%" ORDER BY user id HAVING total>500
    • C. SELECT user id, SUM(amount) AS total FROM transactions WHERE transaction date LIKE "2024%" GROUP BY user id HAVING total>500 ORDER BY total ASC
    • D. INSERT user id, SUM(amount) AS total FROM transactions WHERE transaction date LIKE "2024%" GROUP BY user id HAVING total>500

    答案:C
    解析

    • WHERE transaction_date LIKE "2024%":筛选出2024年的交易记录。这是在分组前对原始数据的筛选。
    • GROUP BY user_id:按用户ID分组。
    • SUM(amount) AS total:计算每个用户的交易总金额。
    • HAVING total > 500:筛选出总金额大于500的用户。这是对分组后聚合结果的筛选。
    • ORDER BY total ASC:按总金额升序排列。
      选项C完整且正确地实现了所有要求。选项A缺少了对2024年的筛选。选项B的WHEREHAVINGORDER BY顺序错误。选项D使用了INSERT语句,完全错误。
  8. 题目:若需删除"库存表"中"保质期早于2025年"的记录,下列SQL 语句正确的是 ( )

    • A. DELETE FROM 库存表 WHERE 保质期 < 2025-01-01
    • B. DROP RECORD FROM 库存表 WHERE 保质期< 2025
    • C. DELETE FROM 库存表 WHERE 保质期<'2025-01-01'
    • D. REMOVE FROM 库存表 IF 保质期 < '2025'

    答案:C
    解析

    • DELETE FROM 表名 WHERE 条件是删除表中记录的标准SQL语法。
    • 日期值在SQL中通常需要用单引号括起来,如'2025-01-01'
    • 比较日期应使用比较运算符,如<
      选项C的语法完全正确。选项A的日期值缺少引号。选项B的DROP RECORD语法错误。选项D的REMOVE FROMIF语法错误。
  9. 题目:向表 users(id, name, age, email)中插入一条记录,下列语句正确的是 ( )

    • A.INSERT INTO users VALUES ('张三 ' , 25, zhangsan@example.com')
    • B.INSERT INTO users (name, age, email) VALUES ('张三', 25, 'zhangsan@example.com')
    • C.INSERT INTO users SET name='张三 ' , age=25, email=' zhangsan@example.com'
    • D. INSERT VALUES( '张三 ' , 25 , 'zhangsan@example.com') INTO users

    答案:B
    解析

    • 标准语法1INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...)。这是最推荐的方式,因为它明确指定了列,即使表结构发生变化(如增加新列),语句也可能依然有效。选项B使用了这种标准语法。
    • 标准语法2INSERT INTO 表名 VALUES (值1, 值2, ...)。这种方式要求VALUES中的值必须与表中所有列的顺序和数量一一对应。选项A缺少了id列的值,且email的值缺少引号。
    • MySQL扩展语法INSERT INTO 表名 SET 列1=值1, 列2=值2, ...。这是MySQL特有的语法,不是标准SQL。选项C使用了这种语法,虽然可能在MySQL中可用,但不是最通用的正确答案。
    • 选项D的语法完全错误。
  10. 题目:SQLite中,向表 orders(order id, user id, amount, order date)插入当前日期的订单,下列语句正确的是 ( )

    • A. INSERT INTO orders VALUES(1001, 1,299.99,'2024-01-01')
    • B. INSERT INTO orders(order id, user id, amount) VALUES(1001, 1, 299.99)
    • C. INSERT INTO orders(order id, user id, amount, order da te) VALUES(1001,1 , 299.99,CURRENT DATE)
    • D. INSERT INTO orders(order id, user id, amount, order date) VALUES(1001,1 , 299.99, DATE())

    答案:C
    解析

    • 题目要求插入“当前日期”。
    • 在SQLite中,CURRENT_DATE是一个日期函数,用于获取当前日期(格式为'YYYY-MM-DD')。
    • 选项C明确指定了所有列,并在order_date列的位置使用了CURRENT_DATE,语法和功能都正确。
    • 选项A插入了一个固定的日期字符串,不是当前日期。
    • 选项B没有插入order_date列的值,如果该列有NOT NULL约束且无默认值,会报错。
    • 选项D使用了DATE()函数,但DATE()函数在SQLite中通常用于从时间戳或文本中提取日期部分,直接调用DATE()会返回一个空字符串或出错,而不是当前日期。获取当前日期的正确函数是CURRENT_DATE
  11. 题目:将 products表中所有 category为电子的产品价格提高10%,下列语句正确的是 ( )

    • A. UPDATE products SET price= price * 1.1 WHERE category='电子 '
    • B. UPDATE products WHERE category='电子 'SET price= price * 1.1
    • C. UPDATE products SET price= price * 1.1 FROM products WHERE category='电子 '
    • D. UPDATE products SET price=AVG(price) * 1.1 WHERE category='电子 '

    答案:A
    解析

    • UPDATE 表名 SET 列名 = 新值 WHERE 条件是更新记录的标准SQL语法。
    • SET子句中,可以直接引用列的旧值来进行计算,如price = price * 1.1
    • WHERE子句用于指定哪些行需要被更新。
      选项A的语法完全正确。选项B的WHERESET子句顺序错误。选项C的FROM子句在UPDATE语句中是不标准的(SQL Server有此语法,但SQLite和MySQL没有)。选项D使用了AVG(price),这是一个聚合函数,它会计算所有“电子”产品的平均价格,然后将所有“电子”产品的价格都设置为这个平均值的1.1倍,不符合“每个产品价格提高10%”的要求。
  12. 题目:将 employees表中 dept id 为3且工资低于部门平均的员工工资提高5%,下列语句正确的是 ( )

    • A. UPDATE employees SET salary= salary * 1.05 WHERE dept id=3 AND salary < (SELECT AVG(salary) FROM employees WHERE dept id=3)
    • B. UPDATE employees SET salary= salary+ salary*0.05 WHERE dept id=3 AND salary < AVG(salary) WHERE dept id=3
    • C. UPDATE employees SET salary= salary * 1.05 WHERE dept id=3 AND salary < (SELECT AVG(salary) FROM employees) 4
    • D. UPDATE employees SET salary= salary * 1.05 WHERE dept id=3 AND sa la ry< 5 (SELECT AVG(salary) FROM employees WHERE dept id=3) 6

    答案:A
    解析:这是一个需要使用子查询的UPDATE语句。

    • 目标是更新dept_id=3且工资低于该部门平均工资的员工。
    • 计算部门3的平均工资:(SELECT AVG(salary) FROM employees WHERE dept_id=3)。这个子查询必须包含WHERE dept_id=3,以确保计算的是正确的部门平均值。
    • 更新条件:WHERE dept_id=3 AND salary < (子查询结果)
    • 更新操作:SET salary = salary * 1.05
      选项A的语法和逻辑完全正确。选项B在WHERE子句中直接使用了AVG(salary),这是不允许的,聚合函数不能直接用在WHERE子句中。选项C的子查询计算的是所有员工的平均工资,而不是部门3的。选项D的语法有误(数字序号)。
  13. 题目:有 employees表(dept id, salary),下列两条语句返回的结果是
    SELECT dept id, salary+1000 AS new salary FROM employees
    SELECT dept id, SUM(salary)+1000 AS total sa lary FROM employees GROUP BY dept id

    • A.两条语句均为每行工资+1000
    • B.第一条语句为每行工资+1000,第二条为每个部门总工资+1000
    • C.第一条语句为每个部门平均工资+1000,第二条为每个部门总工资+1000
    • D.第一条语句报错,第二条正确

    答案:B
    解析

    • 第一条语句SELECT dept_id, salary+1000 AS new_salary FROM employees。这是一个简单的查询,没有GROUP BY。它会返回employees表中的每一行dept_id保持不变,salary列的值都加上1000,并重命名为new_salary。所以结果是“每行工资+1000”。
    • 第二条语句SELECT dept_id, SUM(salary)+1000 AS total_salary FROM employees GROUP BY dept_id。这个查询有GROUP BY dept_id。它会按dept_id分组,对每个组内的所有salary求和(SUM(salary)),然后将这个部门总工资加上1000,并重命名为total_salary。所以结果是“每个部门总工资+1000”。
      选项B准确地描述了两条语句的不同结果。
  14. 题目:假设有 student scores表,记录每个学生的单科成绩,字段为: student id(学生 ID)、name(姓 名)、math(数学成绩)、english(英语成绩)、physics(物理成绩)。需查询每个学生的三门总分 (数学+英语+物理),下列SQL 语句正确的是 ( )

    • A. SELECT student id, name, SUM(math+ english+ physics) AS total /FROM student scores GROUP BY student id
    • B. SELECT student id, name, math+ english+ physics AS total /FROM student scores
    • C. SELECT student id , name , SUM(math)+SUM(eng l i sh )+SUM(physics) AS to ta l FROM student scores GROUP BY student id
    • D. SELECT student id, name, SUM(math, english, physics) AS total FROM student scores GROUP BY student id

    答案:B
    解析

    • 题目要求计算每个学生的三门总分。如果student_id是唯一的(即每个学生只有一行记录),那么不需要GROUP BY
    • 计算总分可以直接在SELECT列表中对各科成绩列进行相加:math + english + physics
    • 选项B SELECT student_id, name, math+english+physics AS total FROM student_scores 正确地实现了这一点。它为每一行(每个学生)计算了总分。
    • 选项A和C使用了GROUP BY student_id,这在student_id唯一的情况下是不必要的,虽然结果可能相同,但不够直接。而且SUM(math+english+physics)SUM(math)+SUM(english)+SUM(physics)在分组后计算的是每个组的总和,如果每组只有一行,结果与B相同,但逻辑更复杂。
    • 选项D的SUM(math, english, physics)语法错误,SUM函数只接受一个参数。
  15. 题目:创建员工表时要求身份证号唯一且非空,应添加的约束是 ( )

    • A. PRIMARY KEY
    • B. UNIQUE NOT NULL
    • C. FOREIGN KEY
    • D. CHECK

    答案:B
    解析

    • UNIQUE 约束:确保列中的所有值都是唯一的。
    • NOT NULL 约束:确保列不能有NULL值。
    • 题目要求“身份证号唯一且非空”,需要同时应用这两个约束。在SQL中,可以在列定义后直接写上UNIQUE NOT NULL
    • PRIMARY KEY 约束:本身就包含了UNIQUENOT NULL的特性。如果身份证号被选作主键,那么A也是正确的。但是,主键通常是一个简短的、无意义的代理键(如自增ID),而身份证号是一个有意义的、可能较长的自然键。在数据库设计中,通常更倾向于使用代理键作为主键,而对自然键添加UNIQUE约束。因此,UNIQUE NOT NULL是更通用、更精确的描述,它明确表达了“唯一且非空”的意图,而不涉及“是否为主键”的决策。故B是最佳答案。
    • FOREIGN KEY 是外键,用于建立表间联系。CHECK 用于定义更复杂的条件。
  16. 题目:执行 cur. execute("SELECT FROM sales WHERE farmer name=?" , ( '王某 ' , ) )后 ,获取所有结果的正确方法是 ( )

    • A. cur. get()
    • B. conn. fetch()
    • C. cur. fetchall()
    • D. cur. results()

    答案:C
    解析:在Python的数据库API(如sqlite3, psycopg2等)中,执行查询后,结果集存储在游标(cursor)对象中。要从游标中获取所有行,需要调用游标的方法。

    • cursor.fetchall():获取查询结果中的所有行,并返回一个列表(列表中的每个元素是一个元组,代表一行数据)。
    • cursor.fetchone():只获取下一行数据。
    • cursor.fetchmany(size):获取指定数量的行。
      选项C cur.fetchall()是获取所有结果的标准方法。其他选项的函数名不存在。

二、多项选择题

  1. 题目:关系型数据库的设计要求包括 ( )

    • A.每张表只存储事物某一方面的信息
    • B.需要关联的不同表必须包含至少一项相同属性
    • C.所有表必须包含完全相同的数据列
    • D.建立关系的相同属性的值必须一致

    答案:A, B, D
    解析

    • A: 正确。这是数据库规范化理论的基本思想。一个表应该描述一个实体或一种关系,避免将不同类型的信息混杂在一张表中,以减少数据冗余和更新异常。
    • B: 正确。为了在两个表之间建立关联(如通过外键),它们必须有一个共同的字段(或字段集)。这个共同字段在父表中通常是主键,在子表中是外键。
    • C: 错误。这是完全错误的描述。不同的表存储不同实体的信息,其数据列(字段)通常是不同的。例如,“学生表”有学号、姓名,而“课程表”有课程ID、课程名。
    • D: 正确。这描述的是参照完整性。子表中外键的值,必须存在于父表的主键中,或者为NULL(如果外键允许为NULL)。这样才能保证关联的有效性。
  2. 题目:数据库系统的特征包括 ( )

    • A.数据冗余度高
    • B.数据共享性高
    • C.数据独立性高
    • D.数据结构化

    答案:B, C, D
    解析:数据库系统的主要特征正是为了克服文件系统的缺陷而设计的。

    • B: 数据共享性高:数据库中的数据可以被多个用户、多个应用程序同时访问。
    • C: 数据独立性高:包括物理独立性和逻辑独立性,使得应用程序不因数据存储结构或逻辑结构的改变而改变。
    • D: 数据结构化:数据库中的数据是面向整个组织的,通过数据模型进行了统一的结构化描述,并描述了数据间的联系。
    • A: 数据冗余度高是文件系统的缺点,数据库系统通过规范化设计来降低数据冗余,而不是使其变高。
  3. 题目:关于数据库系统(DBS)的组成,下列说法正确的有 ( )

    • A.必须包含网络设备以实现数据共享
    • B.包含数据库和计算机硬件
    • C.包含操作系统、DBMS 及应用程序
    • D.包含各类相关人员

    答案:B, C, D
    解析:一个完整的数据库系统(DBS)通常由五个部分组成:硬件、软件、数据、人员和规程。

    • B: 正确。硬件(计算机、存储设备等)是物理基础。数据库(DB)是数据的集合。
    • C: 正确。软件包括操作系统(OS)、数据库管理系统(DBMS)以及应用软件(应用程序)。
    • D: 正确。人员包括数据库管理员(DBA)、系统分析员、应用程序员和最终用户。
    • A: 错误。数据库系统可以是单机的,不一定需要网络设备。网络设备是为了实现网络共享,而不是数据库系统的必需组成部分。
  4. 题目:数据库管理系统(DBMS)的核心功能包括 ( )

    • A.数据定义
    • B.数据操纵
    • C.数据库的控制
    • D.数据库的维护

    答案:A, B, C, D
    解析:DBMS是数据库系统的核心软件,其功能非常全面,以上四项都是其核心功能。

    • A: 数据定义(DDL):通过DDL(Data Definition Language,如CREATE, ALTER, DROP)来定义数据库的模式、表、视图、索引等。
    • B: 数据操纵(DML):通过DML(Data Manipulation Language,如SELECT, INSERT, UPDATE, DELETE)来对数据库中的数据进行查询和更新。
    • C: 数据库的控制:包括并发控制(防止多用户冲突)、安全性控制(权限管理)、完整性控制(保证数据正确性)等。
    • D: 数据库的维护:包括数据备份与恢复、性能监控与调优、重组与重构等。
  5. 题目:以下 SQLite字段类型可存储数值的有 ( )

    • A. INTEGER
    • B. TEXT
    • C. REAL
    • D . N U L L

    答案:A, C
    解析

    • INTEGER: 用于存储整数值(如1, 100, -50)。
    • REAL: 用于存储浮点数值(即包含小数的数字,如3.14, -0.001)。
    • TEXT: 用于存储文本字符串。虽然可以存储数字字符串(如"123"),但它存储的是文本,不能直接用于数学运算。
    • NULL: 表示空值或缺失值,它不是一个数据类型,也不是一个数值。
      因此,可以直接用于存储数值的类型是INTEGERREAL
  6. 题目:下列属于关系型数据库的有 ( )

    • A. MySQL
    • B. Redis
    • C. Oracle
    • D. MongoDB

    答案:A, C
    解析

    • 关系型数据库(RDBMS):基于关系模型,数据存储在由行和列组成的二维表中。MySQL和Oracle是关系型数据库的典型代表。
    • 非关系型数据库(NoSQL):不使用传统的表结构,数据模型多样。Redis是键值对数据库,MongoDB是文档数据库,它们都属于NoSQL范畴。
  7. 题目:执行UPDATE 订单表 SET 状态= '已完成' WHERE 商品 ID= ' 1001 '时 ( )

    • A.仅修改符合条件的一条记录
    • B.可能修改多条记录
    • C.若省略 WHERE 子句会更新所有记录
    • D.会同时修改表结构

    答案:B, C
    解析

    • B: 正确UPDATE语句会修改所有满足WHERE条件的记录。如果“订单表”中有多条记录的“商品ID”都是'1001',那么这些记录的“状态”都会被更新为'已完成'。
    • C: 正确。这是UPDATE语句的一个非常重要的特性。如果省略WHERE子句,UPDATE操作会应用于表中的所有行。这是一个非常危险的操作,通常需要谨慎使用。
    • A: 错误。如B所述,它可能修改多条记录。
    • D: 错误UPDATE语句用于修改表中的数据,不会修改表的结构(如增加/删除列、修改数据类型等)。修改表结构使用ALTER TABLE语句。
  8. 题目:安装 SQLite 并验证成功后,可进行的操作有 ( )

    • A.通过输入 sqlite3 访问 SQLite(配置环境变量后)
    • B.创建 AP. db数据库
    • C.使用 Navicat 连接 AP. db进行数据表设计等操作
    • D.直接在命令行编辑数据库图形界面

    答案:A, B, C
    解析

    • A: 正确。安装SQLite并将sqlite3.exe所在目录添加到系统PATH环境变量后,可以在任何命令行窗口直接输入sqlite3命令来启动SQLite命令行界面。
    • B: 正确。在SQLite命令行界面中,可以使用.open AP.db或直接在启动命令后加数据库名(如sqlite3 AP.db)来创建或打开一个数据库文件。
    • C: 正确。Navicat、DBeaver等第三方数据库管理工具都支持连接SQLite数据库文件(.db文件),并提供图形化界面进行表设计、数据查询、管理等操作。
    • D: 错误。SQLite自带的sqlite3程序是一个命令行工具,它没有图形界面。它提供的是一个基于文本的交互式环境。
  9. 题目:有 orders表(id、user id、amount),查询“用户 user id=5的总订单金额”,下列语句正确的有 ( )

    • A. SELECT SUM(amount) AS total FROM orders WHERE user id=5
    • B. SELECT SUM(amount) AS total FROM orders GROUP BY user id HAVING user id=5
    • C. SELECT SUM(amount) AS total FROM orders WHERE user id=5 GROUP BY user id
    • D. SELECT amount AS total FROM orders WHERE user id=5

    答案:A, B
    解析

    • A: 正确。这是最直接、最高效的方法。WHERE user_id=5筛选出用户5的所有订单,SUM(amount)对这些订单的金额求和。
    • B: 正确。这个方法虽然效率不如A,但逻辑上是正确的。它先按user_id分组,然后使用HAVING子句筛选出user_id=5的组,最后计算该组的SUM(amount)HAVING用于筛选分组结果,这里可以起到和WHERE类似的作用。
    • C: 错误。这个语句会返回一个结果集,但结果集中会有一列total,其值为用户5的总金额,但还会有一个user_id列,值为5。它不是只返回一个总金额值,而是返回一个分组后的行。虽然结果中的数字是对的,但返回的格式不符合“查询总订单金额”的单一值要求。
    • D: 错误。这个语句会返回用户5的每一笔订单的amount,而不是总金额。它没有使用SUM()聚合函数。
  10. 题目:有 orders表(order id、user id、amount、order date),查询“2024年每个用户的订单总金额 (仅统计总金额>1000 的用户)”,下列语句正确的有 ( )

    • A. SELECT user id , SUM(amount ) AS to ta l FROM orders WHERE order da te LIKE'2024%'GROUP BY user id HAVING to ta l > 1000;
    • B. SELECT user i d , S U M ( a m o u n t ) A S t o t a l FROM orders GROUP BY user id WHERE order date LIKE'2024%' AND total >1000;
    • C. SELECT user i d , S U M ( a m o u n t ) A S t o t a l FROM orders WHERE order date B E T W E E N ' 2 0 2 4 - 0 1 - 0 1' A N D '2024-12-31' G R O U P B Y u s e r i d H A V I N G S U M (amount) > 1000;
    • D. SELECT user id , SUM(amount) AS total FROM orders WHERE order date LIKE '2024%' AND SUM(amount)> 1000 GROUP BY user id;

    答案:A, C
    解析

    • A: 正确WHERE order_date LIKE '2024%'筛选2024年的记录(在分组前),GROUP BY user_id按用户分组,HAVING total > 1000筛选出总金额大于1000的用户(在分组后,对聚合结果筛选)。语法和逻辑都正确。
    • B: 错误WHERE子句中不能直接使用聚合函数SUM(amount),因为WHEREGROUP BY之前执行,此时聚合结果还未计算出来。
    • C: 正确。这个语句与A逻辑相同,只是对日期的筛选更精确。WHERE order_date BETWEEN '2024-01-01' AND '2024-12-31'是筛选2024年记录的更好方式。HAVING SUM(amount) > 1000也是正确的,因为HAVING子句中可以直接使用聚合函数。
    • D: 错误。与B类似,WHERE子句中不能使用SUM(amount)

三、是非选择题

  1. 题目:UPDATE product info SET 单价=单价*1.1;会使所有农产品涨价10%。 ( )
    答案:正确
    解析UPDATE语句中,如果省略WHERE子句,将会更新表中的所有行。因此,UPDATE product_info SET 单价=单价*1.1;会将product_info表中所有记录的“单价”字段都乘以1.1,即所有产品都涨价10%。如果该表存储的就是农产品信息,那么这个描述就是正确的。

  2. 题目:非关系型数据库(NoSQL)完全不支持 SQL 语法。 ( )
    答案:错误
    解析:这个说法过于绝对。虽然NoSQL数据库的原生查询语言通常不是SQL(例如MongoDB使用查询文档,Cassandra使用CQL),但许多NoSQL产品为了降低学习门槛和方便传统数据库开发者使用,提供了类SQL的查询接口或对SQL的某种程度支持。例如,Cassandra的CQL(Cassandra Query Language)语法就非常接近SQL。因此,说“完全不支持”是不准确的。

  3. 题目:Python操作 SQLite时,查询语句需要调用 commit()保存结果。 ( )
    答案:错误
    解析:在Python的sqlite3模块中,commit()方法用于提交事务。事务主要用于确保数据修改操作(如INSERT, UPDATE, DELETE)的原子性和持久性。对于查询操作(SELECT,它只是读取数据,不会改变数据库的状态,因此不需要(也不能)提交事务。查询结果在执行cursor.execute()后就已经存在于游标中,通过fetchall(), fetchone()等方法获取即可。

  4. 题目:在 SQL 的SELECT 语句中,WHERE子句必须在GROUP BY 子句之前。 ( )
    答案:正确
    解析:这是SQL语句的语法规则。SELECT语句中各子句的书写顺序(也反映了其逻辑执行顺序的一部分)是:SELECT -> FROM -> WHERE -> GROUP BY -> HAVING -> ORDER BYWHERE子句必须在GROUP BY子句之前,因为WHERE用于在分组前对原始数据进行筛选,而GROUP BY是对筛选后的数据进行分组。

  5. 题目:数据库的"数据模型"指存储数据的物理设备结构。 ( )
    答案:错误
    解析:数据库的“数据模型”是概念层面的东西,它是描述数据、数据联系、数据语义以及一致性约束的概念工具的集合。常见的数据模型有层次模型、网状模型、关系模型等。它描述的是数据的逻辑结构和联系,而不是数据在物理设备(如硬盘)上如何存储。物理存储结构属于“物理数据模型”或“内模式”的范畴。

  6. 题目:SQL 的 INSERT 语句必须指定所有字段值。 ( )
    答案:错误
    解析INSERT语句有两种主要形式:

    1. INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...):这种形式可以只指定部分列,前提是未指定的列允许为NULL或有默认值。
    2. INSERT INTO 表名 VALUES (值1, 值2, ...):这种形式必须为表中的所有列提供值,并且顺序必须与表定义中列的顺序一致。
      因此,说“必须指定所有字段值”是不准确的,第一种形式就允许只插入部分列的值。
  7. 题目:执行SELECT FROM 员工表会返回所有字段的数据。 ( )
    答案:正确
    解析:在SELECT语句中,*是一个通配符,代表“所有列”。因此,SELECT * FROM 员工表会从“员工表”中检索出所有行和所有列的数据。

  8. 题目:DELETE 和 DROP TABLE 都可删除表结构。 ( )
    答案:错误
    解析:这是两个功能完全不同的命令。

    • DELETE FROM 表名:用于删除表中的所有行(数据),但表的结构(列、约束、索引等)依然存在,表还是一个空表。
    • DROP TABLE 表名:用于删除整个表,包括表的结构和表中的所有数据。表被彻底从数据库中移除。
      因此,只有DROP TABLE能删除表结构,DELETE不能。
  9. 题目:UPDATE语句必须配合 WHERE 子句使用,否则会报错。 ( )
    答案:错误
    解析UPDATE语句不必须配合WHERE子句使用。如果省略WHERE子句,UPDATE会更新表中的所有行。这在某些场景下是有用的,例如,给所有员工统一加薪。虽然这很危险,但它在语法上是合法的,不会报错。

  10. 题目:SELECT COUNT(*) 和SELECT COUNT(列 名 ) 的 区 别 是 : 前 者 包 含 N U L L 值 , 后 者 不 包 含 。 ( )
    答案:正确
    解析:这是COUNT函数的一个重要区别。

    • COUNT(*):统计表中所有行的数量,不会忽略NULL值。只要行存在,就会被计数。
    • COUNT(列名):统计指定列中非NULL值的数量。如果某行在该列的值是NULL,则该行不会被计数。
      因此,COUNT(*)总是大于或等于COUNT(列名),当且仅当指定列没有NULL值时,两者才相等。
  11. 题目:在 WHERE子句中可以使用聚合函数(如 SUM()、AVG())筛选数据。 ( )
    答案:错误
    解析:在SQL中,WHERE子句在GROUP BY子句之前执行,此时聚合函数(如SUM(), AVG())的结果还没有计算出来。因此,不能在WHERE子句中直接使用聚合函数来筛选数据。如果需要对聚合结果进行筛选,应该使用HAVING子句,它在GROUP BY之后执行。

  12. 题目:向表中插入数据时,字段顺序必须与表定义的顺序一致。 ( )
    答案:错误
    解析:只有在使用INSERT INTO 表名 VALUES (值1, 值2, ...)这种形式时,值的顺序才必须与表定义的列顺序完全一致。如果使用更推荐的INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...)形式,则可以任意指定列的顺序,只要VALUES中的值与指定的列顺序一一对应即可。

  13. 题目:DROP TABLE 语句执行后,表中的数据和表结构会被永久删除,无法恢复。 ( )
    答案:正确
    解析DROP TABLE是一个破坏性操作,它会从数据库中彻底移除指定的表,包括表的定义(结构、约束、索引等)和表中存储的所有数据。在大多数数据库系统中,这个操作是不可逆的,除非有数据库备份,否则无法恢复。

  14. 题目:SELECT 语句中 DISTINCT关键字可以对多个字段去重,即所有字段值都相同才视为重复。 ( )
    答案:正确
    解析DISTINCT关键字用于返回唯一不同的值。当它应用于多个列时(如SELECT DISTINCT col1, col2 FROM table),它会返回col1col2的组合值唯一的行。只有当两行(或多行)在所有指定的列上的值都完全相同时,它们才会被视为重复行,并只保留一行在结果中。

  15. 题目:聚合函数 AVG()计算时会自动忽略 NULL 值。 ( )
    答案:正确
    解析:这是所有聚合函数(如SUM(), AVG(), COUNT(列名), MAX(), MIN())的共同特性。它们在计算时会自动忽略指定列中的NULL值。例如,计算AVG(score)时,如果某行的scoreNULL,该行不会被计入总分和总人数,从而不影响平均值的计算结果。只有COUNT(*)是个例外,它不关心列值,只统计行数。

四、综合应用题

1. 农产品库存预警系统

(1) [单项选择题]查询水果类库存不足20的产品的SQL 语句是 ( )

  • A. SELECT FROM produc t WHERE s tock >20
  • B. SELECT FROM produc t WHERE ca tegory= '水果 ' OR s tock <20
  • C. SELECT FROM produc t WHERE ca tegory= '水果 ' AND s tock <20
  • D. SELECT category, stock FROM product WHERE category='水果 'AND stock >20

答案:C
解析:题目要求查询“水果类”且“库存不足20”的产品。这需要两个条件同时满足,因此应该用AND连接。

  • WHERE category='水果':筛选出类别为水果的产品。
  • AND stock < 20:并且库存小于20。
    选项C的SQL语句完整且正确地表达了这两个条件。选项A条件错误。选项B使用了OR,逻辑错误。选项D条件stock > 20错误,且只选择了两列。

(2) [单项选择题]下列语句是统计水产类农产品平均单价的SQL,横线处应为 ( )

SELECT FROM product WHERE category= '水产 ' ;

  • A. AVG(price)
  • B. AVG(*)
  • C. AVG(product)
  • D. AVG(category)

答案:A
解析:要计算“平均单价”,需要使用AVG()聚合函数,并作用于“单价”列(price)。因此,正确的写法是SELECT AVG(price) FROM ...AVG(*)是无效的语法,AVG(product)AVG(category)试图对非数值列计算平均值,也是无意义的。

(3) [单项选择题]下列可以将牛肉的价格更新为68元的SQL语句是 ( )

  • A. UPDATE product SET price='68' WHERE name='牛肉 '
  • B. UPDATE product SET price=68 WHERE name='牛肉 '
  • C. UPDATE product SET price=68.0 WHERE name=牛肉
  • D. UPDATE product SET price=68.0 WHERE product name='牛肉'

答案:B
解析

  • UPDATE product SET price=68 WHERE name='牛肉' 是标准的UPDATE语句语法。
  • price列是REAL类型(浮点数),可以接受整数68,数据库会自动进行类型转换。
  • WHERE name='牛肉'中的字符串值'牛肉'需要用单引号括起来。
    选项A将价格设为了字符串'68',虽然某些数据库会自动转换,但不是最佳实践。选项C的WHERE name=牛肉缺少引号,语法错误。选项D的列名product name与题目给出的name不符。

(4) [多项选择题]下列 Python代码的错误点有 ( )

import sqlite3 # line1
conn=sqlite3.connect('inventory.db') #line2
cur= conn.cursor() #line3
cur.execute("INSERT INTO product VALUES ('P101','苹果 ', '水果 ',5.0,100)") #line4
print("添加成功") #line5
conn.close() #line6
  • A.line4 后缺少 conn.commit()
  • B. line6 未关闭游标
  • C.未处理 SQL 注入风险
  • D.字段值未用引号包裹

答案:A, B
解析

  • A: 正确。在Python的sqlite3模块中,对数据库的修改操作(如INSERT, UPDATE, DELETE)默认是在一个事务中进行的。如果不调用conn.commit(),这些修改不会被持久化到数据库文件中,在连接关闭后就会丢失。因此,line4之后必须加上conn.commit()
  • B: 正确。虽然conn.close()在关闭连接时通常会隐式地关闭与之关联的游标,但作为一种良好的编程习惯,应该在用完游标后显式地调用cur.close()来释放游标资源。
  • C: 错误。此处的SQL语句是硬编码的,没有使用用户输入的变量,因此不存在SQL注入风险。SQL注入风险主要发生在将用户输入直接拼接到SQL语句中的情况。
  • D: 错误line4中的SQL语句VALUES ('P101','苹果 ', '水果 ',5.0,100),字段值都用单引号正确地包裹了(数值5.0100可以不用引号)。SQL语法是正确的。

(5) [是非选择题]执行DELETE FROM product WHERE stock=0;会删除零库存记录。 ( )

答案:正确
解析DELETE FROM product WHERE stock=0;语句会从product表中删除所有stock(库存)字段值为0的记录。这些记录就是“零库存记录”。该语句的功能与描述完全一致。

2. 学生健康档案系统

(1) [单项选择题]下列为查询身高>1.75米的男生的 SQL语句是 ( )

  • A. SELECT * FROM students WHERE height>1.75
  • B. SELECTq* FROM students WHERE gender='男 ' AND height>1.75
  • C. SELECT * FROM students WHERE gender='男 'OR height>1.75
  • D. SELECT * FROM students WHERE sex='男 'AND height>1.75

答案:B
解析:题目要求查询“男生”且“身高>1.75米”。需要两个条件同时满足,用AND连接。

  • WHERE gender='男':筛选性别为男的学生。
  • AND height>1.75:并且身高大于1.75。
    选项B的SQL语句正确(尽管SELECTq*可能是笔误,应为SELECT *)。选项A缺少性别条件。选项C使用了OR,逻辑错误。选项D的列名sex与题目给出的gender不符。

(2) [单项选择题]下列可以正确删除体重小于40千克(且身高不超过1.8米)的学生记录的 SQL 语句是 ( )

  • A. DELETE FROM students WHERE weight <40 AND height <=1.8
  • B. DELETE FROM students WHERE weight <40 OR height <=1.8
  • C. DELETE FROM students WHERE weight <40 AND height<1.8
  • D. DELETE FROM students WHERE weight <40

答案:A
解析:题目要求删除“体重小于40千克”“身高不超过1.8米”的记录。两个条件需要同时满足,使用AND连接。

  • WHERE weight < 40 AND height <= 1.8 准确地表达了“体重小于40”和“身高小于或等于1.8”这两个条件。
    选项A完全正确。选项B使用了OR,会删除体重小于40或者身高不超过1.8的所有学生,范围过大。选项C的height<1.8不包括等于1.8的情况,与题意“不超过”不符。选项D只考虑了体重,不完整。

(3) [单项选择题]横线处应该补全的代码是 ( )

import sqlite3
conn=sqlite3.connect(' healthy. db')
cur= conn. cursor()
cur. execute( " INSERT INTO students VALUES(?,?,?,?) ",(102, '李四', '男 ' , 1.72, 65))
conn. close
  • A.conn.commit
  • B. conn. submit
  • C.cur.commit
  • D. cur. execute

答案:A
解析:如前所述,对数据库的修改操作(INSERT)需要提交事务才能持久化。提交事务是通过连接对象conncommit()方法完成的。因此,在conn.close()之前,应该调用conn.commit()。选项A是正确的。submit不是conn的方法。commit不是游标cur的方法。cur.execute用于执行SQL,不是提交事务。

(4) [多项选择题]下列选项符合数据表设计原则的有 ( )

  • A.用 id作为主键
  • B. height 设为 INTEGER 类型
  • C.增加 score字段存储成绩
  • D.改用 Bool存储性别

答案:A, C
解析

  • A: 正确。为每个学生设置一个唯一的、无意义的id作为主键,是数据库设计的最佳实践(使用代理键)。这可以避免使用学号等可能有业务含义的自然键作为主键时可能带来的问题。
  • B: 错误。身高(height)通常包含小数(如1.75米),应该使用浮点类型(如REALDECIMAL),而不是整数类型(INTEGER)。使用INTEGER会丢失小数部分的精度。
  • C: 正确。如果系统需要管理学生的成绩,那么在students表(或一个单独的scores表)中增加一个score字段来存储成绩是符合功能需求的合理设计。
  • D: 错误。性别(gender)通常只有“男”、“女”等少数几个离散值。使用BOOLEAN类型(True/False)只能表示两种状态,不够用。更常见的做法是使用VARCHAR/TEXT(如存储'男', '女')或CHAR(1),或者使用一个小的INTEGER作为代码(如1代表男,2代表女)。

(5) [是非选择题] SELECT name, weight/ height/ height AS BMI FROM students 会计算 BMI指数。 ( )

答案:正确
解析:BMI(身体质量指数)的计算公式是体重(kg)除以身高(m)的平方。SQL语句weight / height / height等同于weight / (height * height),正是BMI的计算公式。AS BMI将计算结果的列名命名为BMI。因此,该SQL语句的功能与描述完全一致。

3. 电商平台商品表

(1) [单项选择题]创建该表的 SQL 缺失部分应为 ( )

CREATE TABLE 商品表 (商品 ID VARCHAR(10) , 商品名称 VARCHAR (100) ,分类 VARCHAR(20),库存 INT DEFAULT 0,单价 REAL)

  • A. UNIQUE, NOT NULL
  • B. NOT NULL, PRIMARY KEY
  • C. PRIMARY KEY, NOT NULL

答案:C
解析:题目中“商品ID”是主键。主键约束必须同时满足两个条件:唯一(UNIQUE)非空(NOT NULL)。在SQL中,直接使用PRIMARY KEY约束就隐含了这两个特性。因此,在“商品ID”列的定义后加上PRIMARY KEY即可。题目描述“主键,非空”,最符合的SQL语法就是PRIMARY KEY, NOT NULL,虽然NOT NULLPRIMARY KEY后是冗余的,但它明确指出了非空的特性。选项A和B的约束顺序或组合不正确。

(2) [单项选择题]新增商品:商品 ID="G2025001",商品名称="蓝牙耳机",分类="数码",单价=299。库存未指定时应 ( )

  • A.必须显式插入库存值
  • B.自动填充默认值0
  • C.系统随机生成库存值
  • D.插入 NULL值

答案:B
解析:在创建表时,库存列的定义是库存 INT DEFAULT 0DEFAULT 0的含义是,如果在插入数据时没有为该列提供值,那么系统会自动使用默认值0来填充。因此,当库存未指定时,它会自动填充为0。

(3) [单项选择题]双十一促销,数码类商品单价降15%,库存补货100件。下列SQL语句正确的是 ( )

  • A. UPDATE 商品表 SET 单价=单价0.85,库存=库存+100
  • B. UPDATE 商品表 SET 单价=单价*0.85,库存=库存+100 WHERE 分类='数码'
  • C. MODIFY 商品表 REDUCE 单价 15% FOR 分类='数码'
  • D. UPDATE 商品表 SET 单价*0.85, 库存+100 WHERE 分类='数码'

答案:B
解析

  • 需要更新“数码类”商品,所以必须有WHERE 分类='数码'条件。
  • “单价降15%”即单价 = 单价 * (1 - 0.15),也就是单价 = 单价 * 0.85
  • “库存补货100件”即库存 = 库存 + 100
  • SET子句中,可以同时更新多个列,用逗号隔开。
    选项B的SQL语句UPDATE 商品表 SET 单价=单价*0.85, 库存=库存+100 WHERE 分类='数码'完全正确。选项A缺少WHERE条件,会更新所有商品。选项C的MODIFY...REDUCE...FOR...语法错误。选项D的SET子句语法错误,应该是列名=表达式

(4) [单项选择题]查询"家电"类商品名称和单价,按单价从高到低排序 ( )

  • A. SELECT 商品名称, 单价 FROM 商品表 WHERE 分类='家电'ORDER BY 单价
  • B. SELECT 商品名称, 单价 FROM 商品表 WHERE 分类='家电'SORT BY 单价 DESC
  • C. SELECT 商品名称, 单 价 F R O M 商 品 表 W H E R E 分 类 = '家电 ' ORDER BY 单 价 DESC
  • D. Select * FROM 商品表 WHERE 分类= 家电 ORDER BY 单价 DESC

答案:C
解析

  • SELECT 商品名称, 单价 FROM ...:选择指定的两列。
  • WHERE 分类='家电':筛选出“家电”类的商品。
  • ORDER BY 单价 DESC:按“单价”列降序(DESC)排列。
    选项C的SQL语句完全正确。选项A默认是升序(ASC)。选项B的SORT BY语法错误。选项D的Select大小写不规范(虽不报错),且分类=家电缺少引号,并选择了所有列(*)。

(5) [是非选择题] 执行DELETE FROM 商品表 WHERE 库存=0 AND 分类= '服饰';可以删除库存为0 且分类为“服饰”的商品记录。 ( )

答案:正确
解析DELETE FROM 商品表 WHERE 库存=0 AND 分类='服饰';语句会从“商品表”中删除所有同时满足“库存为0”“分类为‘服饰’”这两个条件的记录。该语句的功能与描述完全一致。

4. 书店图书管理系统

(1) [单项选择题]查询“科幻类”且库存≥50本的图书名称和库存,下列SQL语句正确的是 ( )

  • A. SELECT title, stock FROM books WHERE category='科幻 ' AND stock > 50
  • B. SELECT * FROM books WHERE category=科幻 AND stock >=50
  • C. SELECT title, stock FROM books WHERE category='科幻 ' OR stock>=50
  • D. SELECT tit le, stock FROM books WHERE category='科幻 ' AND stock>=50

答案:D
解析:题目要求查询“科幻类”“库存≥50本”的图书。

  • WHERE category='科幻' AND stock >= 50:两个条件用AND连接,表示同时满足。
  • SELECT title, stock FROM ...:只选择书名和库存两列。
    选项D的SQL语句完全正确。选项A的条件stock > 50不包括等于50的情况。选项B的category=科幻缺少引号,且选择了所有列(*)。选项C使用了OR,逻辑错误。

(2) [单项选择题]将作者为刘慈欣的图书单价上调10%,下列SQL 语句正确的是 ( )

  • A. UPDATE books SET price= price*1.1 WHERE author=刘慈欣
  • B. UPDATE books SET price= price+10% WHERE author='刘慈欣 '
  • C. UPDATE books SET price= price*1.1 WHERE author='刘慈欣 '
  • D. UPDATE books SET price=1.1 WHERE author='刘慈欣 '

答案:C
解析

  • UPDATE books SET price=price*1.1:将价格设置为原价的1.1倍,即上调10%。
  • WHERE author='刘慈欣':筛选出作者为“刘慈欣”的图书。字符串值需要用单引号括起来。
    选项C的SQL语句完全正确。选项A的author=刘慈欣缺少引号。选项B的price+10%语法错误。选项D的SET price=1.1是将价格直接设置为1.1,而不是上调10%。

(3) [单项选择题]统计每个类别的平均单价(保留2位小数),下列SQL语句正确的是( )

  • A. SELECT category, AVG(price) FROM books GROUP BY category
  • B. SELECT category, ROUND(AVG(price),2) AS avg price FROM books GROUP BY category
  • C. SELECT category, AVG(price) AS avg price FROM books
  • D. SELECT category, ROUND(AVG(price),2) FROM books

答案:B
解析

  • GROUP BY category:按类别分组。
  • AVG(price):计算每个类别的平均单价。
  • ROUND(AVG(price), 2):将计算出的平均单价保留2位小数。
  • AS avg_price:为结果列命名。
    选项B的SQL语句完整且正确地实现了所有要求。选项A没有保留小数。选项C缺少GROUP BYROUND。选项D缺少GROUP BY和列别名。

(4) [多项选择题]下列 Python代码操作该表时,正确的有 ( )

import sqlite3
conn=sqlite3.connect(' books. db')
cur= conn. cursor()
cur. execute("INSERT INTO books VALUES ( 'B001', '三体', '刘慈欣', '科幻', 59.8, 100)")
conn.commit() # l i ne 5
cur. close() # line6
conn. close() # line7
  • A. line5 的 commit()不可省略(否则插入失败)
  • B. line6 关闭游标是规范的操作
  • C.插入语句中数值类型(如 price、stock)无需加引号
  • D.若表中 id 已存在,执行后会因主键冲突报错

答案:A, B, C, D
解析

  • A: 正确。如前所述,INSERT操作需要commit()才能持久化,否则在连接关闭后数据会丢失。
  • B: 正确。显式关闭游标是一个好习惯,可以及时释放数据库资源。
  • C: 正确。在SQL语句中,字符串值需要用单引号括起来,而数值(整数或浮点数)则不需要。代码中'B001', '三体'等是字符串,59.8, 100是数值,格式正确。
  • D: 正确id是主键,其值必须唯一。如果表中已经存在id'B001'的记录,再次插入相同id的记录会违反主键约束,数据库会抛出错误(如sqlite3.IntegrityError)。

(5) [是非选择题]执行DELETE FROM books WHERE s tock=0 OR ca tegory= '历史 '会删除所有库存为0 的历史类图书。 ( )

答案:错误
解析DELETE FROM books WHERE stock=0 OR category='历史'语句会删除所有库存为0的图书 或者 所有类别为‘历史’的图书。这是一个OR条件,它会删除满足任一条件的记录,而不是必须同时满足两个条件的记录。例如,一本库存为10的“历史”类图书也会被删除。要删除“库存为0为历史类”的图书,应该使用ANDDELETE FROM books WHERE stock=0 AND category='历史'

5. 超市生鲜管理系统

(1) [单项选择题]查询“肉类”且“过期日期在 2025-12-31 之后”的商品,下列SQL 语句正确的是 ( )

  • A. SELECT name, expire date FROM fresh WHERE type='肉类 ' AND expire da te> '2025-12-31'
  • B. SELECT * FROM fresh WHERE type=肉类 AND expire date > 2025-12-31
  • C. SELECT name, expire da te FROM f resh WHERE type= '肉类 ' OR exp i re date > '2025-12-31 '
  • D. SELECT name, expire date FROM fresh WHERE type='肉类 ' AND expire date>= '2025-12-31 '

答案:A
解析:题目要求查询“肉类”“过期日期在2025-12-31之后”的商品。

  • WHERE type='肉类' AND expire_date > '2025-12-31':两个条件用AND连接,表示同时满足。日期比较>表示“之后”。
  • SELECT name, expire_date FROM ...:选择指定的两列。
    选项A的SQL语句完全正确。选项B的type=肉类expire_date > 2025-12-31缺少引号,且选择了所有列。选项C使用了OR,逻辑错误。选项D的>=包含了“等于”的情况,与题意“之后”不符。

(2) [单项选择题]将名称为“进口车厘子”的库存增加50件,下列SQL 语句正确的是 ( )

  • A. UPDATE fresh SET stock= stock+50 WHERE name=进口车厘子
  • B. UPDATE fresh SET stock=50 WHERE name='进口车厘子 '
  • C. UPDATE fresh SET stock= stock+50 WHERE name='进口车厘子 '
  • D. UPDATE fresh SET stock+50 WHERE name='进口车厘子 '

答案:C
解析

  • UPDATE fresh SET stock=stock+50:将库存设置为原库存加50,实现“增加50件”。
  • WHERE name='进口车厘子':筛选出名称为“进口车厘子”的商品。字符串值需要用单引号括起来。
    选项C的SQL语句完全正确。选项A的name=进口车厘子缺少引号。选项B是将库存设置为50,而不是增加50。选项D的SET stock+50语法错误,应该是SET 列名=表达式

(3) [单项选择题]统计“水果类”商品的总库存,下列SQL 语句正确的是 ( )

  • A. SELECT SUM(stock) AS total stock FROM fresh WHERE type='水果 '
  • B. SELECT stock FROM fresh WHERE type='水果 ' SUM(stock)
  • C. SELECT SUM(stock) FROM fresh GROUP BY type='水果 '
  • D. SELECT COUNT(stock) AS total stock FROM fresh WHERE type='水果 '

答案:A
解析

  • SUM(stock):对“库存”列求和。
  • WHERE type='水果':筛选出“水果类”的商品。
  • AS total_stock:为结果列命名。
    选项A的SQL语句完全正确。选项B的SUM(stock)位置错误,不能放在WHERE子句后。选项C的GROUP BY type='水果'语法错误,GROUP BY后面应该只跟列名,如GROUP BY type,并且如果只是为了筛选水果类,用WHERE更直接。选项D的COUNT(stock)是计算行数(非NULL的stock值),而不是求和。

(4) [多项选择题]下列 Python代码操作该表时,描述正确的有 ( )

import sqlite3
conn=sqlite3.connect(' fresh. db')
cur= conn. cursor()
cur. execute("INSERT INTO fresh VALUES( 'F001', '草莓', '水果',39.9,200,'2024-12-30 ' ) " ) #4
cur. execute("SELECT name, price FROM fresh WHERE type='水果"")# 5
print(cur. fetchone()) # 6
conn. close() #7
  • A.行#4未提交事务,数据无法写入数据库
  • B.行#5查询语句中' type='水果"应改为' type=水果'
  • C.行#6若数据库中原本存在水果品类的记录,使用 fetchone()也只能获取一条查询结果
  • D.行#7关闭连接前未关闭游标,是不规范的做法

答案:A, C, D
解析

  • A: 正确line4执行了INSERT操作,但之后没有调用conn.commit()。因此,这条插入记录存在于事务中,但不会被持久化到数据库文件。当conn.close()时,未提交的事务会回滚,数据最终不会写入。
  • B: 错误line5的SQL语句是... WHERE type='水果""'。这里有一个多余的双引号",这会导致SQL语法错误。正确的应该是... WHERE type='水果'。描述中说“应改为' type=水果'”,但type=水果也缺少引号,正确的应该是type='水果'。因此,原描述本身不准确。
  • C: 正确cur.fetchone()方法只会从查询结果集中获取第一行数据。即使SELECT语句返回了多行(如多种水果),fetchone()也只会返回其中的一行。
  • D: 正确。与综合题4(4)的分析一样,虽然conn.close()会隐式关闭游标,但显式调用cur.close()是更规范、更安全的编程实践,可以确保资源被及时释放。

(5) [是非选择题]执行DELETE FROM fresh WHERE expire date<'2025-10-01'会删除所有2025 年 10 月 1日前过期的商品。 ( )

答案:正确
解析DELETE FROM fresh WHERE expire_date < '2025-10-01'语句会从fresh表中删除所有expire_date(过期日期)字段的值早于(小于)'2025-10-01'的记录。这些记录就是“2025年10月1日前过期”的商品。该语句的功能与描述完全一致。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/979081.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第7单元检查卷

单元检测卷题目与答案解析 一、单项选择题题目:在批量重命名活动照片项目中,读取CSV报名表时需跳过标题行,应使用的函数是 ( )A. csv.skip() B. next(reader) C. reader.skip() D. csv.reader(skipheader=True)答案…

2025 美本申请 SAT 高分指南:全国 TOP6培训机构甄选,从课程到服务全维度测评

2025 年美本、加本及新加坡本科申请已进入白热化阶段,SAT 作为院校筛选的核心硬指标,直接决定学子能否在万级竞争者中突围。尤其 SAT 机考改革后,题型迭代、备考周期压缩,再加上市场上机构良莠不齐 —— 部分宣称 …

2025 年江苏有机农场推荐榜:德芳有机农场全品类覆盖、国家权威有机认证

随着消费者对食品安全和健康生活方式的日益重视,有机农产品市场需求持续井喷,尤其是在经济发达的长三角地区,对高品质、可追溯的有机食材的需求达到了新的高度。2025 年,江苏省内有机农场数量不断增加,但真正具备…

题解:P5518 [MtOI2019] 幽灵乐团 / 莫比乌斯反演基础练习题

绝对是基础练习题哈!推式子不是世界上最快乐的事情嘛。题目大意:在 \(p\) 分别定义为 \(1\)、\(ijk\)、\(\gcd(i,j,k)\) 下求 \(\displaystyle \prod_{i=1}^{A}\prod_{j=1}^{B}\prod_{k=1}^{C}\left ( \frac{\text{l…

S7-1200 PROFINET与 IO device 通信

文章来源:S7-1200withIO_device重要标记: 1.首先要收1200和分布式IO的实物。 2.配置IP后,界面连接后,分配名称重新下载即可。PROFINET IO 设备指分配给一个或多个 IO 控制器的分布式现场设备(例如,远程 IO、阀岛…

Arista EOS平台安全漏洞分析与修复指南

荷兰国家网络安全中心发布Arista EOS平台安全公告,详细分析输入验证不当、权限管理缺陷等漏洞,这些漏洞可导致系统崩溃、拒绝服务攻击,并提供相应的修复方案和参考信息。安全公告 NCSC-2025-0374 [1.0.0] 发布日期:…

牺牲从不理所应当

……今天和很多人讨论流浪狗的处理问题,有些意难平。有个大嘴巴说出了一个观点,仿照美国的捕杀制度,无差别的捕捉流浪狗到收容所,限期没人领取就直接安乐死,对养狗人士严加管理,防止因遗弃造成的再流浪情况。我完…

干货|2025NCUK机构择优指南:官方授权中心排名对比+教学体系深度解析

NCUK成立于1987年,总部设在曼彻斯特,是由英国16所著名大学共同创办的联盟组织,其中包括布里斯托大学、伯明翰大学、利兹大学、曼彻斯特大学、谢菲尔德大学、利物浦大学、阿斯顿大学、伦敦大学玛丽皇后学院等知名大学…

第四十一天

于细节之处,窥见编程智慧 重读《代码大全二》,我对“编程是一门技艺,更是一门艺术”有了更深的理解。书中对代码细节的极致追求,让我意识到优秀的代码往往藏在被忽视的角落。例如在数据库操作模块开发中,我曾为了…

第四十二天

跳出编码本身,拥抱工程思维 《代码大全二》最打动我的,是它跳出了“编码”本身,将视角提升到了软件工程的全局高度。作为一名正在学习算法、数据库与框架开发的学生,我曾陷入“重技术实现,轻工程管理”的误区,认…

第四十天

以规范之力,筑牢代码根基 《代码大全二》绝非一本单纯的“语法手册”,而是软件开发领域的“工程圣经”。初读时,我曾误以为书中的规范要求过于严苛——比如变量命名的长度限制、代码注释的详细程度、函数拆分的粒度…

python的日志使用装饰器,记录的日志文件记录

python的日志使用装饰器 log.pyimport logging from functools import wraps import os# --- 1. 日志配置(创建日志文件) --- LOG_FILENAME = function_calls.log# 确保在开始时清除旧日志文件,便于演示 if os.path…

一文入门 LangGraph 开发

注意: 本博客/笔记并不适合新手, 适合有一定的开发经验, 快速上手开发的老油条. 2024-05-22 LangGraph [N_LangChain] [[N_LangServe]] git langgraph 项目页 官页 - overview 官页 - 教程 LangGraph is a library for…

Real people are important.

we are not politicians, we dont need to hide some truth in the Internet, and spread some can not be touched.

【pandas基础】用Pandas处理泰坦尼克号获救数据

Python数据分析实战:用Pandas处理泰坦尼克号获救数据 准备工作 在开始数据分析前,需导入Pandas和NumPy库并设置别名(行业通用规范,简化代码书写): import pandas as pd # 数据处理核心库,别名为pd import nump…

Scrum冲刺阶段 Day Four

一、站立会议纪要 1. 已完成工作实现文件列表查询接口 开发文件上传组件 编写核心功能测试用例 实现全局异常处理 封装请求拦截器2. 今日计划工作 开发文件列表页面 文件界面 管理员登录 + 用户管理页 实现启用/禁用用…

Day26光标类型cursor

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0">…

is měigu good

maybe but I need the real person check. měigu maybe good, but people who speak English are not. but for rběn, rběnyǔ is same bad like rběn. I want to see some really English, then I can determine …

Day26透明度

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0">…