🌙
交互式练习

LLM 练习 009

30 道题 · 选择题 + 填空题 + 简答题 + 代码实战 · 即时反馈 · 记录保存
← 返回主页
客观题
0/20
主观题
0/10
做题记录

做题记录

    暂无记录

    答题详情

    一、单选题(10 题)
    第 1 题单选题
    在 Python 中,正则表达式(Regular Expression)的主要作用是( )
    A 操作系统的文件管理
    B 控制网页的样式表现
    C 描述字符串的匹配模式,用于检索、替换和提取子串
    D 连接和管理关系型数据库
    第 2 题单选题
    使用 re 模块时,能够匹配任意数字(即0-9)的特殊字符是( )
    A \d
    B \D
    C \w
    D \s
    第 3 题单选题
    关于 re.match() 和 re.search() 的区别,下列说法正确的是( )
    A match 返回列表,search 返回对象
    B match 只能从字符串的起始位置进行匹配,search 扫描整个字符串并返回第一个成功匹配
    C 两者没有任何区别,可以混用
    D search 只能匹配一次,match 可以匹配多次
    第 4 题单选题
    在 MySQL 中,用于创建、修改、删除数据库或表等对象结构(如 CREATE、ALTER、DROP)的语句所属类别是( )
    A DML(数据操纵语言)
    B DQL(数据查询语言)
    C DDL(数据定义语言)
    D DCL(数据控制语言)
    第 5 题单选题
    若要向 MySQL 数据表中插入一条新的数据记录,应该使用的关键字是( )
    A UPDATE
    B SELECT
    C INSERT
    D DELETE
    第 6 题单选题
    在 SQL 查询中,GROUP BY 分组聚合后的结果如果需要进一步过滤,应该使用哪个关键字?( )
    A WHERE
    B HAVING
    C ORDER BY
    D LIMIT
    第 7 题单选题
    关于 SQL 语句的执行顺序,下列正确的是( )
    A SELECT -> FROM -> WHERE
    B FROM -> WHERE -> GROUP BY -> SELECT
    C WHERE -> FROM -> ORDER BY
    D GROUP BY -> HAVING -> WHERE
    第 8 题单选题
    在正则表达式中,用来匹配前一个字符出现 1 次或者无限次(即至少有 1 次)的符号是( )
    A *
    B ?
    C +
    D {m}
    第 9 题单选题
    要查询 MySQL 商品表(goods)中所有商品的总数,最常用的聚合函数是( )
    A MAX()
    B SUM()
    C AVG()
    D COUNT()
    第 10 题单选题
    在进行多表查询时,能够返回左表的所有数据以及右表中满足关联条件的数据(右表不满足则填充 NULL)的连接方式是( )
    A 内连接 (INNER JOIN)
    B 左外连接 (LEFT JOIN)
    C 右外连接 (RIGHT JOIN)
    D 全连接 (FULL JOIN)
    二、填空题(10 题)
    第 11 题填空题
    在正则表达式中,匹配字符串开头的符号是,匹配字符串结尾的符号是
    第 12 题填空题
    如果想提取正则表达式匹配到的特定部分数据,可以使用 () 将目标字符作为一个
    第 13 题填空题
    正则表达式中 .* 默认是模式(尽可能多地匹配),如果在后面加上 ? 变成 .*?,则变成了模式。
    第 14 题填空题
    MySQL 数据库默认的服务端口号通常是
    第 15 题填空题
    SQL 语句根据功能分类,SELECT 属于语言(数据查询语言)。
    第 16 题填空题
    如果要查询数据时消除重复的行,可以在 SELECT 后面加上关键字。
    第 17 题填空题
    在使用 ORDER BY 进行排序时,升序的关键字是,降序的关键字是
    第 18 题填空题
    想要实现网页上的"分页效果",在 SQL 中通常使用关键字来限制查询的起始行和行数。
    第 19 题填空题
    在两张表建立多对多关系时,通常需要引入一张表来记录两张表之间的数据联系。
    第 20 题填空题
    re.findall(pattern, string) 方法如果在字符串中匹配不到任何结果,会返回一个
    三、简答题(5 题)
    第 21 题简答题
    请简述正则表达式中 *、+、? 这三个量词的具体匹配规则。
    查看参考答案 ▼
    *:匹配前一个字符 0 次或无限次(可有可无)。+:匹配前一个字符 1 次或无限次(至少 1 次)。?:匹配前一个字符 0 次或 1 次(可选)。
    第 22 题简答题
    什么是正则表达式的分组?在 re 模块中如何实现并提取分组的数据?
    查看参考答案 ▼
    用 () 将正则表达式中的部分字符括起来作为一个分组。匹配成功后,可以使用 result.group(1)、result.group(2) 等按顺序提取对应括号内匹配到的独立数据。
    第 23 题简答题
    简述 SQL 中 WHERE 和 HAVING 的核心区别。
    查看参考答案 ▼
    WHERE 是在分组(GROUP BY)前对数据进行过滤,且不能使用聚合函数;HAVING 是在分组后对聚合出来的结果进行过滤,可以使用聚合函数。
    第 24 题简答题
    请列举关系型数据库中表与表之间的三种常见关系,并各举一个简单的例子。
    查看参考答案 ▼
    (1) 一对多:商品分类表和商品表;(2) 多对多:学生表和课程表(需中间表);(3) 一对一:用户基本信息表和身份证详情表。
    第 25 题简答题
    什么是笛卡尔积(交叉连接)?在实际开发中为什么通常需要使用"有条件连接"(如内连接、左连接)来代替笛卡尔积?
    查看参考答案 ▼
    笛卡尔积是将左表的每一行与右表的每一行无差别连接,结果行数是两表行数的乘积。在实际开发中,笛卡尔积结果数量庞大且含大量无意义组合,因此需要通过 ON 限定主外键关联条件的有条件连接来只保留满足逻辑关系的正确数据。
    四、代码实战(5 题)
    第 26 题代码实战
    正则表达式:手机号码验证
    使用 re.match() 严格匹配以 1 开头、第二位 3-9、后面 9 位数字的手机号(^1[3-9]\d{9}$),测试合法和非合法号码。
    查看参考答案 ▼
    import re pattern = r"^1[3-9]\d{9}$" result1 = re.match(pattern, "13812345678") print(result1.group() if result1 else "匹配失败") result2 = re.match(pattern, "23812345678") print(result2.group() if result2 else "匹配失败")
    第 27 题代码实战
    正则表达式:提取邮箱信息
    使用 re.search() 和分组从"我的工作邮箱是 admin@heima.com,请查收。"中提取用户名和域名。
    查看参考答案 ▼
    import re text = "我的工作邮箱是 admin@heima.com,请查收。"</span> pattern = r"([a-zA-Z0-9_]+)@([a-zA-Z0-9_]+\.[a-zA-Z0-9_]+)" result = re.search(pattern, text) if result: print(f"完整邮箱: {result.group(0)}") print(f"用户名: {result.group(1)}") print(f"域名: {result.group(2)}")
    第 28 题代码实战
    MySQL 基础:库与表的 DDL/DML 操作
    创建 school_db 数据库和 students 表,包含 id、name、age 字段,完成 INSERT、UPDATE、DELETE 各一条。
    查看参考答案 ▼
    CREATE DATABASE IF NOT EXISTS school_db CHARSET=utf8; USE school_db; CREATE TABLE students( id INT PRIMARY KEY, name VARCHAR(50) NOT NULL, age INT ); INSERT INTO students(id, name, age) VALUES(1, "张三", 20); UPDATE students SET age = 21 WHERE name = "张三"; DELETE FROM students WHERE age > 25;
    第 29 题代码实战
    MySQL 查询:单表综合查询
    基于 products 表(id, name, price, category_id)完成:价格>100查询、分组统计、排序取前3。
    查看参考答案 ▼
    SELECT name, price FROM products WHERE price > 100; SELECT category_id, COUNT(*) FROM products GROUP BY category_id; SELECT * FROM products ORDER BY price DESC LIMIT 0, 3;
    第 30 题代码实战
    MySQL 查询:多表关联查询
    基于 users 和 orders 表,用 INNER JOIN 和 LEFT JOIN 查询用户订单。
    查看参考答案 ▼
    SELECT u.username, o.order_no FROM users u INNER JOIN orders o ON u.id = o.user_id; SELECT u.username, o.order_no FROM users u LEFT JOIN orders o ON u.id = o.user_id;