《数据库原理与应用技术-MySQL》MySQL基础知识(2)(举一反三考点练)-讲义

2025-10-10
| 11页
| 129人阅读
| 0人下载
精品

内容正文:

举一反三考点练 《数据库原理与应用技术-MySQL》MySQL基础知识-讲义 1. 掌握MySQL运算符分类与使用规则 2. 熟悉MySQL函数的分类与功能 3. 掌握MySQL函数的实际应用与注意事项 知识点一 MySQL运算符分类与使用规则 1.运算符作用 MySQL运算符用于执行计算、比较、逻辑判断和位操作,增强SQL语句的灵活性和功能性。 2.算术运算符 包括:+、-、*、/、DIV、%(或MOD)。 (1)支持整数与小数运算,除数为0或参与值为NULL时,结果为NULL。 (2)DIV返回整数商,/返回浮点数商;%取余符号与被除数一致。 3.比较运算符 包括:=、<=>、<>、!=、<、<=、>、>=、IN、NOT IN、BETWEEN AND、IS NULL、IS NOT NULL、LIKE、REGEXP。 (1)返回逻辑值:1(真)、0(假)、NULL(无法判断)。 (2)<=>可判断NULL值,IS NULL用于空值判断,LIKE支持%和_通配符,REGEXP支持正则匹配。 4.逻辑运算符 包括:AND(&&)、OR(||)、NOT(!)、XOR。 (1)操作数为非0表示真,0表示假,NULL参与时结果可能为NULL。 (2)逻辑与:遇假则假;逻辑或:遇真则真;逻辑非:取反;异或:不同为真。 5.位运算符 包括:&、|、~、^、<<、>>。 (1)对二进制位进行操作,结果转为十进制。 (2)任一操作数为NULL,结果为NULL。 6.运算符优先级 优先级从高到低依次为:括号 > 单目运算符(!、~)> 乘除模 > 加减 > 位移 > 比较 > 逻辑运算。 推荐使用括号明确优先级,避免歧义。 (多项选择题)下列哪些运算符属于MySQL的算术运算符( ) A. % B. && C. DIV D. / 【答案】ACD 【解析】%(MOD)、DIV、/ 均为算术运算符;&& 属于逻辑运算符。 【要点】算术运算符的识别。 1.(单项选择题)下列运算符中,可用于判断NULL值的是( ) A. = B. <=> C. != D. > 【答案】B 【解析】<=> 是MySQL独有的“安全等于”运算符,可正确判断NULL。 【要点】NULL敏感运算符。 2.(单项选择题)表达式 15 % 4 的结果为( ) A. 3 B. 4 C. 0 D. 1 【答案】A 【解析】15除以4的余数是3,%运算结果符号与被除数一致。 【要点】取余运算规则。 3.(多项选择题)关于运算符优先级,下列说法正确的有( ) A. 括号优先级最高 B. 逻辑运算优先于比较运算 C. 乘除优先于加减 D. 位运算优先于逻辑运算 【答案】ACD 【解析】优先级顺序:括号→位运算→算术→比较→逻辑;B项顺序颠倒。 【要点】运算符优先级顺序。 1.(填空题)MySQL中,进行“按位与”运算的符号是______。 【答案】& 【解析】& 对两个操作数的对应二进制位执行与操作。 【要点】位运算符符号。 2.(填空题)当除数为0时,MySQL算术运算的结果返回______。 【答案】NULL 【解析】除0或含NULL的算术运算结果均为NULL,系统不报错。 【要点】异常运算结果。 3.(判断题)逻辑运算符AND的优先级高于OR。( ) 【答案】√ 【解析】AND优先于OR,同级运算从左到右,可用括号改变顺序。 【要点】逻辑运算符优先级。 · 算术:+ - * / DIV %,NULL或除0得NULL · 比较:= <=> != < > IN BETWEEN LIKE REGEXP,返回1/0/NULL · 逻辑:AND OR NOT XOR,含NULL结果可能为NULL · 位运算:& | ~ ^ << >>,二进制操作,NULL参与则结果NULL · 优先级:括号最高,其次单目→乘除→比较→逻辑,同级左到右 知识点二 MySQL函数的分类与功能 1.函数作用 MySQL提供丰富的系统函数,用于数据处理、计算、格式转换和系统信息获取,提升开发效率。 2.聚合函数 用于对一组数据进行统计计算,常与GROUP BY配合使用。 · COUNT(*):统计行数,COUNT(DISTINCT 列):去重统计。 · SUM():求和,AVG():平均值,MAX():最大值,MIN():最小值。 · 除COUNT(*)外,其他函数忽略NULL值。 3.数学函数 用于数值计算与处理,常用包括: · ABS():绝对值,SIGN():符号判断,SQRT():平方根。 · CEIL()/FLOOR():向上/向下取整,ROUND():四舍五入,TRUNCATE():截断。 · RAND():生成随机数,POW():幂运算,LOG()/LOG10():对数。 · SIN()、COS()、TAN()等:三角函数计算。 4.字符串函数 用于字符数据的处理与格式化,常用包括: · UPPER()/LOWER():大小写转换,CONCAT():字符串拼接。 · LEFT()/RIGHT()/SUBSTRING():截取子串。 · TRIM()/LTRIM()/RTRIM():去除空格。 · REPLACE()/INSERT():字符串替换。 · LENGTH()/CHAR_LENGTH():计算字节/字符长度。 · STRCMP():字符串比较,REVERSE():字符串反转。 5.日期时间函数 用于获取、提取和计算日期时间,常用包括: · NOW()/CURDATE()/CURTIME():获取当前日期时间。 · YEAR()/MONTH()/DAY():提取年/月/日。 · DATE_ADD()/SUBDATE():日期加减。 · DATEDIFF():计算两个日期相差天数。 · DAYOFWEEK()/WEEK():获取星期/周次信息。 6.系统信息函数 用于获取数据库系统状态,常用包括: · VERSION():MySQL版本,DATABASE():当前数据库名。 · USER():当前用户,CONNECTION_ID():连接ID。 · LAST_INSERT_ID():最后插入的自增ID。 (多项选择题)以下属于 MySQL 聚合函数的是( ) A. COUNT B. SUM C. ROUND D. AVG 【答案】ABD 【解析】ROUND 属于数学函数,COUNT、SUM、AVG 均为常用聚合函数。 【要点】区分聚合函数与数学函数。 1.(单项选择题)统计订单表总行数时,应使用下列哪个函数( ) A. SUM(*) B. COUNT(*) C. MAX(*) D. LENGTH(*) 【答案】B 【解析】COUNT(*) 统计总行数,包含 NULL 行;SUM、MAX 需指定列名,LENGTH 用于字符串。 【要点】COUNT(*) 的统计特点。 2.(单项选择题)获取当前系统日期时间,应调用( ) A. CURDATE() B. NOW() C. TIME() D. YEAR() 【答案】B 【解析】NOW() 返回完整日期时间;CURDATE() 仅返回日期,TIME() 提取时间部分,YEAR() 提取年份。 【要点】NOW() 的功能。 3.(多项选择题)关于字符串函数,下列说法正确的有( ) A. CONCAT 可合并多列字符串 B. TRIM 只能删除尾部空格 C. SUBSTRING 可从中间截取字符 D. LENGTH 返回字节数而非字符数 【答案】ACD 【解析】TRIM 默认同时删除前导和尾部空格,其余三项均正确。 【要点】常用字符串函数用法。 1.(填空题)计算某列平均值时,NULL 值会被聚合函数________。 【答案】忽略 【解析】除 COUNT(*) 外,聚合函数只统计非 NULL 值。 【要点】聚合函数对 NULL 的处理。 2.(填空题)函数________可返回 0 到 1 之间的随机小数。 【答案】RAND() 【解析】RAND() 随机函数,每次结果不同,可用于随机抽样。 【要点】RAND() 的功能。 3.(判断题)使用 MAX(column) 时,若列全为 NULL,则返回 0。( ) 【答案】× 【解析】全 NULL 时 MAX 返回 NULL,而非 0。 【要点】聚合函数全 NULL 的返回值。 · 聚合:COUNT/SUM/AVG/MAX/MIN,忽略NULL,可DISTINCT去重 · 数学:ABS/ROUND/FLOOR/CEIL/RAND/POW/TRUNCATE,数值处理 · 字符串:CONCAT/SUBSTRING/LEFT/RIGHT/TRIM/REPLACE/LENGTH/UPPER/LOWER · 日期:NOW/CURDATE/YEAR/MONTH/DAY/DATEDIFF/DATE_ADD · 系统:VERSION/DATABASE/USER/LAST_INSERT_ID 知识点三 MySQL函数的实际应用与注意事项 1.函数在实际开发中的作用 MySQL函数不仅用于查询计算,还广泛用于数据清洗、格式控制、逻辑判断和系统监控,是数据库开发的重要工具。 2.聚合函数应用示例 (1)统计班级人数:SELECT COUNT(*) FROM student; (2)计算某科平均分:SELECT AVG(math) FROM score; (3)使用DISTINCT去重统计:SELECT COUNT(DISTINCT name) FROM table; 3.数学与字符串函数应用 (1)四舍五入保留两位小数:SELECT ROUND(price, 2) FROM goods; (2)随机生成验证码:SELECT FLOOR(RAND()*10000); (3)字符串拼接生成全名:SELECT CONCAT(first_name, ' ', last_name) FROM users; (4)去除用户输入多余空格:SELECT TRIM(username) FROM login; 4.日期函数应用示例 (1)获取当前时间戳:SELECT NOW(); (2)计算年龄:SELECT TIMESTAMPDIFF(YEAR, birth, CURDATE()) FROM user; (3)判断是否为周末:SELECT DAYOFWEEK(NOW()) IN (1, 7); 5.系统函数应用示例 (1)获取当前登录用户:SELECT USER(); (2)获取数据库版本:SELECT VERSION(); (3)获取自增ID:SELECT LAST_INSERT_ID(); 6.使用注意事项 (1)函数返回类型需与字段类型匹配,避免隐式转换错误。 (2)字符串函数区分大小写与字符集(如UTF8、GBK)。 (3)日期函数注意时区问题,推荐使用标准格式(如YYYY-MM-DD)。 (4)聚合函数忽略NULL,需结合IFNULL()或COALESCE()处理空值。 (5)使用函数时应考虑性能影响,避免在大数据量查询中滥用复杂函数。 (多项选择题)在 MySQL 中,使用函数时下列哪些做法可以避免查询性能明显下降( ) A. 对大表尽量把函数写在 WHERE 子句左侧 B. 对经常需要函数计算的列建立生成列并加索引 C. 用内置日期函数代替字符串拼接后再转换 D. 在 SELECT 列表中谨慎使用复杂嵌套函数 【答案】BCD 【解析】A 错:函数写在 WHERE 左侧会屏蔽索引;B 对:生成列可预先计算并索引;C 对:内置函数效率高;D 对:减少重复计算。 【要点】函数与性能平衡。 1.(单项选择题)若想获得上次 INSERT 自动产生的自增 ID,应调用( ) A. MAX(id) B. LAST_INSERT_ID() C. IDENTITY() D. AUTO_INCREMENT() 【答案】B 【解析】LAST_INSERT_ID() 由 MySQL 维护,专为获取当前会话最新自增值设计。 【要点】系统函数用途。 2.(单项选择题)下列关于 NULL 的叙述正确的是( ) A. NULL 参与算术运算结果仍为 NULL B. NULL 与 0 相等 C. IFNULL 函数只能用于字符型 D. 聚合函数 COUNT(列名) 会统计 NULL 【答案】A 【解析】文档强调“含 NULL 的算术运算结果返回 NULL”;其余均与手册相悖。 【要点】NULL 处理规则。 3.(多项选择题)清洗用户输入的“姓名”字段时,可组合使用哪些字符串函数( ) A. TRIM() B. REPLACE() C. REVERSE() D. CONCAT() 【答案】AB 【解析】TRIM 去首尾空格,REPLACE 可去多余符号;REVERSE 仅反转,CONCAT 用于拼接,不直接清洗。 【要点】字符串清洗常用函数。 1.(填空题)计算两个日期相差天数应使用函数 ______。 【答案】DATEDIFF() 【解析】DATEDIFF(d1,d2) 返回 d1-d2 的天数差。 【要点】日期函数记忆。 2.(填空题)要生成 1~100 之间的随机整数,可用表达式 FLOOR( ______ *100)+1。 【答案】RAND() 【解析】RAND() 返回 [0,1) 小数,乘以 100 再取整+1 即得 1~100 随机整数。 【要点】随机函数应用。 3.(判断题)对大数据表在 WHERE 子句中对列使用函数一般能加快查询速度。( ) 【答案】× 【解析】列上包函数会导致索引失效,反而降低速度。 【要点】函数对索引的影响。 · 聚合配合GROUP BY,NULL值先处理再统计 · 字符串注意字符集与大小写,空格用TRIM清洗 · 日期用标准格式,跨时区统一用UTC · 复杂表达式先括号,避免优先级误判 · 大表慎用函数于WHERE,防止索引失效 原创精品资源学科网独家享有版权,侵权必究!2 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $

资源预览图

《数据库原理与应用技术-MySQL》MySQL基础知识(2)(举一反三考点练)-讲义
1
《数据库原理与应用技术-MySQL》MySQL基础知识(2)(举一反三考点练)-讲义
2
《数据库原理与应用技术-MySQL》MySQL基础知识(2)(举一反三考点练)-讲义
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。