我在广州学 Mysql 系列——有关 Mysql 函数的练习

ℹ️大家好,我是LXJ,通过Mysql各种函数的相关学习,本文将通过一些练习来巩固Mysql的函数~~
明天就冬至啦,提前大家冬至快乐!!“差不多冬至,一早一晚还是有雨”~
复习:👉《Mysql函数的介绍和使用方式》
同时,数据库相关内容查看专栏👉【数据库专栏】~
了解更多内容请点击我的主页 “【练小杰的CSDN】”

在这里插入图片描述

文章目录

  • 前言
  • 使用数学函数`RAND()`生成3个10以内的随机整数
  • 使用`SIN(),COS(),TAN(),COT()`函数计算三角函数值,并将计算结果转换成整数值
  • 创建表,并使用字符串和日期函数,对字段值进行操作
    • 创建表lxj
    • 插入一条记录
    • 返回m_FN的长度,返回第1条记录中人的全名,将m_info字段值转换成小写字母,将m_info的值反向输出
    • 计算第一条记录中人的年龄,并计算m_birth字段中的值在那一年中的位置,按照“January 1st, 2001”格式输出时间值
    • 插入一条新的记录,m_FN值为“蒙奇·D”,m_LN值为“路飞”,m_birth值为系统当前时间,m_info为空。使用LAST_INSERT_ID()查看最后插入的ID值
  • 使用CASE进行条件判断
  • 利用STRCMP函数比较字符串大小
  • 使用FIND_IN_SET()函数返回子字符串在字符串列表中的位置
  • SHOW PROCESSLIST命令输出当前用户的连接信息
  • PASSWORD函数加密密码
  • CONVERT()函数改变字符串的默认字符集
  • 使用CAST和CONVERT函数进行数据类型的转换

在这里插入图片描述

前言

本文的目的是通过mysql相关函数的练习,使用各种函数操作数据,掌握各种函数的作用和使用方法。
温馨提醒:要先了解👉《mysql函数介绍和使用方式》
以下命令都是在【MySQL在线运行】在线网站运行测试的~~

使用数学函数RAND()生成3个10以内的随机整数

  • RAND()函数生成的随机数在0~1 之间,要生成0~10之间的随机数,RAND()需要乘以10,如果要求是整数,则还必须舍去结果的小数部分。

  • 在这里使用ROUND()函数,结果如下:

SELECT ROUND(RAND() * 10),  ROUND(RAND() * 10), ROUND(RAND() * 10); 
+----------------------------+-------------------------------+----------------------------+
| ROUND(RAND() * 10) | ROUND(RAND() * 10) | ROUND(RAND() * 10) |
+----------------------------+-------------------------------+----------------------------+
|                  2 |                    6 |                   5 |
+----------------------------+--------------------------------+----------------------------+ 
1 row in set (0.01 sec)

使用SIN(),COS(),TAN(),COT()函数计算三角函数值,并将计算结果转换成整数值

  • MySQL中三角函数计算出来的值并不一定是整数值,需要使用数学函数将其转换为整数,可以使用的数学函数有ROUND(),FLOOR() 等。

  • 结果如下:

 SELECT PI(), sin(PI()/2),cos(PI()), ROUND(tan(PI()/4)), FLOOR(cot(PI()/4));
+-----------+-------------+-----------+-------------------------+--------------------------+
| PI()     | sin(PI()/2) | cos(PI()) | ROUND(tan(PI()/4)) | FLOOR(cot(PI()/4)) |
+-----------+-------------+-----------+-------------------------+--------------------------+
| 3.141593 |        1 |      -1 |                1 |                1 |
+-----------+-------------+-----------+-------------------------+--------------------------+

创建表,并使用字符串和日期函数,对字段值进行操作

  • 操作内容:
  1. 创建表lxj ,其中包含3个字段,分别为AUTO_INCREMENT约束的m_id字段,VARCHAR类型的m_FN字段,VARCHAR类型的m_LN字段,DATETIME类型的m_birth字段和VARCHAR类型的m_info字段。
  2. 插入一条记录,m_id值为默认,m_FN值为“Xiaojie”,m_LN值为“Lian”,m_birth值为2001-01-01,m_info值为“GoodMan”。
  3. 返回m_FN的长度,返回第一条记录中的人的全名,将m_info字段值转换成小写字母。将m_info的值反向输出。
  4. 计算第一条记录中人的年龄,并计算m_birth字段中的值在那一年中的位置,按照“ Monday 1st January 2001 ”格式输出时间值。
  5. 插入一条新的记录,m_FN值为“蒙奇·D”,m_LN值为“路飞”,m_birth值为系统当前时间,m_info为空。使用LAST_INSERT_ID()查看最后插入的ID值。

创建表lxj

  • 执行结果如下
 CREATE TABLE lxj(m_id    INT AUTO_INCREMENT PRIMARY KEY,m_FN   VARCHAR(100),m_LN   VARCHAR(100),m_birth  DATETIME,m_info   VARCHAR(255) NULL);
Query OK, 0 rows affected (0.01 sec)

插入一条记录

  • 输入语句如下
INSERT INTO lxj VALUES (NULL, 'Xiaojie', 'Lian', '2001-01-01', 'GoodMan');
  • 使用SELECT语句查看插入结果
 SELECT * FROM  lxj;
+------+----------+--------+-------------------------+--------------+
| m_id | m_FN  | m_LN | m_birth           | m_info   |
+------+----------+--------+-------------------------+--------------+
|    1 | Xiaojie  | Lian | 2001-01-01 00:00:00 | GoodMan |
+------+----------+--------+-------------------------+--------------+
1 row in set (0.00 sec)

返回m_FN的长度,返回第1条记录中人的全名,将m_info字段值转换成小写字母,将m_info的值反向输出

SELECT LENGTH(m_FN), CONCAT(m_FN, m_LN), LOWER(m_info), REVERSE(m_info) FROM lxj;

执行结果如下:

SELECT LENGTH(m_FN), CONCAT(m_FN, m_LN), LOWER(m_info), REVERSE(m_info) FROM lxj;
+--------------+--------------------+---------------+-----------------+
| LENGTH(m_FN) | CONCAT(m_FN, m_LN) | LOWER(m_info) | REVERSE(m_info) |
+--------------+--------------------+---------------+-----------------+
|            7 | XiaojieLian        | goodman       | naMdooG         |
+--------------+--------------------+---------------+-----------------+

计算第一条记录中人的年龄,并计算m_birth字段中的值在那一年中的位置,按照“January 1st, 2001”格式输出时间值

SELECT YEAR(CURDATE())-YEAR(m_birth) AS age, DAYOFYEAR(m_birth) AS days, DATE_FORMAT(m_birth, '%W %D %M %Y') AS birthDate FROM lxj;

语句执行结果如下:

 SELECT YEAR(CURDATE())-YEAR(m_birth) AS age,DAYOFYEAR(m_birth) AS days,DATE_FORMAT(m_birth, '%W %D %M %Y') AS birthDateFROM lxj;
+------+------+-------------------------+
| age  | days | birthDate               |
+------+------+-------------------------+
|   23 |    1 | Monday 1st January 2001 |
+------+------+-------------------------+

插入一条新的记录,m_FN值为“蒙奇·D”,m_LN值为“路飞”,m_birth值为系统当前时间,m_info为空。使用LAST_INSERT_ID()查看最后插入的ID值

INSERT INTO lxj  VALUES (NULL, '蒙奇·D', '路飞', NOW(),NULL);

结果如下:

INSERT INTO lxj VALUES (NULL, 'Samuel', 'Green', NOW(),NULL);
Query OK, 1 row affected (0.00 sec)

使用SELECT语句查看插入结果:

SELECT * FROM lxj;
+------+-----------+--------+---------------------+---------+
| m_id | m_FN      | m_LN   | m_birth             | m_info  |
+------+-----------+--------+---------------------+---------+
|    1 | Xiaojie   | Lian   | 2001-01-01 00:00:00 | GoodMan |
|    2 | 蒙奇·D    | 路飞  |  2024-12-20 18:39:09 | NULL    |
+------+-----------+--------+---------------------+---------+

可以看到,表中现在有两条记录,接下来使用LAST_INSERT_ID()函数查看最后插入的ID值

  • 查询结果如下:
SELECT LAST_INSERT_ID();
+--------------------------+
| LAST_INSERT_ID() |
+--------------------------+
|                 2 |
+--------------------------+
1 row in set (0.00 sec)

最后插入的为第二条记录,其ID值为2,因此返回值为2

使用CASE进行条件判断

如果m_birth小于2000年,显示“old”;如果m_birth大于2000年,则显示“young”

  • 查询语句如下:
 SELECT m_birth, CASE WHEN YEAR(m_birth) < 2000  THEN  'old'WHEN YEAR(m_birth)  2000 THEN  'young'ELSE 'not born' END AS status FROM lxj;

运行结果:

+-------------------------+---------+
| m_birth           | status  |
+-------------------------+---------+
| 2001-01-01 00:00:00 | young   |
| 2024-12-20 18:50:09 | young  |
+-------------------------+----------+
2 rows in set (0.00 sec)

利用STRCMP函数比较字符串大小

  • 执行命令语句
SELECT STRCMP('txt', 'txt2'),STRCMP('txt2', 'txt'), STRCMP('lxj', 'txt');
  • 查询结果
+-----------------------+-----------------------+----------------------+
| STRCMP('txt', 'txt2') | STRCMP('txt2', 'txt') | STRCMP('lxj', 'txt') |
+-----------------------+-----------------------+----------------------+
|                    -1 |                     1 |                   -1 |
+-----------------------+-----------------------+----------------------+

使用FIND_IN_SET()函数返回子字符串在字符串列表中的位置

  • 执行命令语句
SELECT FIELD('Hi', 'lxj', 'Hey', 'Hi', 'bas') as col1,FIELD('Hi', 'Hey', 'Lo', 'Hilo',  'foo') as col2;
  • 查询结果
+------+------+
| col1 | col2 |
+------+------+
|    3 |    0 |
+------+------+

SHOW PROCESSLIST命令输出当前用户的连接信息

  • 执行命令
SHOW PROCESSLIST;
  • 查询结果
+----+------+-----------+------+---------+------+----------+------------------+
| Id | User | Host      | db   | Command | Time | State    | Info             |
+----+------+-----------+------+---------+------+----------+------------------+
|  4 | root | localhost | test | Query   |    0 | starting | SHOW PROCESSLIST |
+----+------+-----------+------+---------+------+----------+------------------+

PASSWORD函数加密密码

  • 执行命令
SELECT PASSWORD('123456');
  • 查询结果
+-------------------------------------------+
| PASSWORD('123456')                        |
+-------------------------------------------+
| *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-------------------------------------------+

CONVERT()函数改变字符串的默认字符集

  • 输入语句如下
 SELECT CHARSET('string'),  CHARSET(CONVERT('string' USING latin1));
  • 运行结果
+-------------------+-----------------------------------------+
| CHARSET('string') | CHARSET(CONVERT('string' USING latin1)) |
+-------------------+-----------------------------------------+
| utf8              | latin1                                  |
+-------------------+-----------------------------------------+

使用CAST和CONVERT函数进行数据类型的转换

  • 输入语句如下
SELECT CAST(100 AS CHAR(2)), CONVERT('2024-12-20 18:12:12',TIME);
  • 运行结果

CAST 函数将整数 100 转换为 CHAR(2) 类型,而且 CHAR(2) 表示一个长度为 2 个字符串,只保留前两个字符,即 “10”
CONVERT 函数将一个日期时间字符串 ‘2024-12-20 18:12:12’ 转换为 TIME 类型,返回结果是一个时间值 18:12:12

+----------------------+-------------------------------------+
| CAST(100 AS CHAR(2)) | CONVERT('2024-12-20 18:12:12',TIME) |
+----------------------+-------------------------------------+
| 10                   | 18:12:12                            |
+----------------------+-------------------------------------+

本文有关mysql函数的练习题部分已经总结完,冬至快乐啦,下周见!!!
😆想要了解更多内容请点击“练小杰的CSDN”
ℹ️欢迎各位在评论区踊跃讨论,积极提出问题,解决困惑!!!

在这里插入图片描述

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

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

相关文章

第3节 测试套件数据驱动

创建Excel、 CSV测试数据 1. 从主菜单中选择 File > New > Test Data。将显示新的测试数据对话框。输入测试数据的名称并选择数据类型作为Excel File/ CSV File 。单击OK。 2. 浏览到要导入Katalon Studio的Excel File, 选择Excel中的sheetName&#xff0c;或者CSV文件…

tomato靶场攻略

前提&#xff1a;kali和tomato的连接方式都为net模式 tomato的默认网络连接方式为桥接模式&#xff0c;导入前注意修改&#xff0c;将tomato.ova的镜像导入虚拟机中 出现此页面则表示导入成功&#xff0c;打开kali虚拟机终端&#xff0c;切换为root权限 arp-scan -l 浏览器访…

【数据安全】如何保证其安全

数据安全风险 数字经济时代&#xff0c;数据已成为重要的生产要素。智慧城市、智慧政务的建设&#xff0c;正以数据为核心&#xff0c;推动城市管理的智能化和公共服务的优化。然而&#xff0c;公共数据开放共享与隐私保护之间的矛盾日益凸显&#xff0c;如何在确保数据安全的…

day5,数据结构,单向,双向,循环链表

1】思维导图 2】完成单向循环链表的所有操作 【创建、判空、尾插、遍历、尾删、销毁】 创建&#xff1a; LooplinkPtr caerte() {LooplinkPtr h(LooplinkPtr)malloc(sizeof(Looplink));if(NULLh){printf("创建失败\n");return NULL;}h->len0;h->data0;h->…

CH340系列芯片驱动电路·CH340系列芯片驱动!!!

目录 CH340基础知识 CH340常见类型 CH340引脚功能讲解 CH340驱动电路 CH340系列芯片数据手册 编写不易&#xff0c;仅供学习&#xff0c;请勿搬运&#xff0c;感谢理解 常见元器件驱动电路文章专栏连接 LM7805系列降压芯片驱动电路降压芯片驱动电路详解-CSDN博客 ME62…

【机器学习案列】使用随机森林(RF)进行白葡萄酒质量预测

&#x1f9d1; 博主简介&#xff1a;曾任某智慧城市类企业算法总监&#xff0c;目前在美国市场的物流公司从事高级算法工程师一职&#xff0c;深耕人工智能领域&#xff0c;精通python数据挖掘、可视化、机器学习等&#xff0c;发表过AI相关的专利并多次在AI类比赛中获奖。CSDN…

Reactor

文章目录 正确的理解发送double free问题 1.把我们的reactor进行拆分2.链接管理3.Reactor的理论 listensock只需要设置_recv_cb&#xff0c;而其他sock&#xff0c;读&#xff0c;写&#xff0c;异常 所以今天写nullptr其实就不太对&#xff0c;添加为空就没办法去响应事件 获…

React,Antd实现文本输入框话题添加及删除的完整功能解决方案

最终效果就是实现该输入框&#xff1a; 添加话题时&#xff0c;话题自动插入到输入框前面多文本输入框左侧间距为话题的宽度多行文本时&#xff0c;第二行紧接开头渲染删除文本时&#xff0c;如果删除到话题&#xff0c;再次删除&#xff0c;话题被删除 首先构造div结构 cons…

【机器人】ATM 用于策略学习的任意点轨迹建模 RSS 2024 | 论文精读

文章提出了一种新的框架&#xff0c;名为Any-point Trajectory Modeling (ATM) &#xff0c;称为任意点轨迹建模。 用于从视频中预测任意点的未来轨迹&#xff0c;从而在最少动作标签数据的情况下&#xff0c;学习稳健的视觉运动策略。 图中展示了三个案例&#xff0c;打开柜子…

Android 搭建AIDL Client和Server端,双向通信

一、背景 使用AIDL,搭建Client和Server端,实现跨进程通讯,即两个应用之间可以相互通讯。这里列举AIDL实现的方式和需注意的细节&#xff0c;并附上源码。 二、实现方式 2.1 定义AIDL需要的接口,名字为xxx.aidl,Client和Server端 AIDL接口的包名和aidl文件必须一致&#xff0c…

【VUE】14、VUE项目如何自动识别服务端是否发布了新版本

今天介绍的是通过轮询的方式去检测服务端是否发布了新版本&#xff0c;从而提醒客户刷新页面&#xff0c;提升用户体验。 1、实现思路 使用轮询的方式获取项目中 index.html 文件。查询文件引入的 JS 文件是否有更新&#xff08; Vue 每次打包后会生成新的引入文件&#xff0…

空天地遥感数据识别与计算--数据分析如何助力农林牧渔、城市发展、地质灾害监测等行业革新

在科技飞速发展的时代&#xff0c;遥感数据的精准分析已经成为推动各行业智能决策的关键工具。从无人机监测农田到卫星数据支持气候研究&#xff0c;空天地遥感数据正以前所未有的方式为科研和商业带来深刻变革。然而&#xff0c;对于许多专业人士而言&#xff0c;如何高效地处…

多智能体/多机器人网络中的图论法

一、引言 1、网络科学至今受到广泛关注的原因&#xff1a; &#xff08;1&#xff09;大量的学科&#xff08;尤其生物及材料科学&#xff09;需要对元素间相互作用在多层级系统中所扮演的角色有更深层次的理解&#xff1b; &#xff08;2&#xff09;科技的发展促进了综合网…

python数据分析:介绍pandas库的数据类型Series和DataFrame

安装pandas pip install pandas -i https://mirrors.aliyun.com/pypi/simple/ 使用pandas 直接导入即可 import pandas as pd pandas的数据结构 pandas提供了两种主要的数据结构&#xff1a;Series 和 DataFrame,类似于python提供list列表&#xff0c;dict字典&#xff0c;…

Python:枚举(包含例题字符计数,反倍数,洁净数,扫雷)

一.枚举是什么 枚举&#xff1a;通过逐个尝试所有可能的值或组合来解决问题的方法。 将问题空间划分为一系列离散的状态&#xff0c;并通过遍历这些状态来寻找解决方案。 二.枚举流程 1.确定解空间&#xff08;一维&#xff0c;二维等&#xff09; 2.确定空间边界&#xff…

设计模式之 abstract factory

适用场景 一个系统要独立于它的产品的创建、组合和表示时。一个系统要由多个产品系列中的一个来配置时。当你要强调一系列相关的产品对象的设计以便进行联合使用时。当你提供一个产品类库&#xff0c;而只想显示它们的接口而不是实现时 架构演示 首先client这个东西可以接触到…

linux-----数据库

Linux下数据库概述 数据库类型&#xff1a; 关系型数据库&#xff08;RDBMS&#xff09;&#xff1a;如MySQL、PostgreSQL、Oracle等。这些数据库以表格的形式存储数据&#xff0c;表格之间通过关系&#xff08;如主键 - 外键关系&#xff09;相互关联。关系型数据库支持复杂的…

鸿蒙学习笔记:用户登录界面

文章目录 1. 提出任务2. 完成任务2.1 创建鸿蒙项目2.2 准备图片资源2.3 编写首页代码2.4 启动应用 3. 实战小结 1. 提出任务 本次任务聚焦于运用 ArkUI 打造用户登录界面。需呈现特定元素&#xff1a;一张图片增添视觉感&#xff0c;两个分别用于账号与密码的文本输入框&#…

RunCam WiFiLink连接手机图传测试

RunCam WiFiLink中文手册从这里下载 一、摄像头端 1.连接天线&#xff08;易忘&#xff09; 2.打开摄像头前面的盖子&#xff08;易忘&#xff09; 3.接上直流电源&#xff0c;红线为正&#xff0c;黑线为负 4.直流电源设置电压为14v&#xff0c;电流为3.15A&#xff0c; 通…

通过阿里云 Milvus 和 LangChain 快速构建 LLM 问答系统

背景介绍 阿里云向量检索 Milvus 版是一款云上全托管服务&#xff0c;确保了与开源Milvus的100%兼容性&#xff0c;并支持无缝迁移。在开源版本的基础上增强了可扩展性&#xff0c;能提供大规模 AI 向量数据的相似性检索服务。相比于自建&#xff0c;目前阿里云Milvus具备易用…