学习大数据,所需要的SQL基础(3)

文章目录

  • mysql函数
    • 字符串函数
      • 字符串函数列表概览
      • 用户环境准备
      • 字符串连接函数
      • 字符串大小写处理函数
      • 移除空格函数
      • 子串函数
    • 数值函数
      • 数值函数列表
      • 常用数值函数练习
    • 日期函数
      • 日期函数列表
      • 常用日期函数的练习
  • sql练习
    • 查询练习

mysql函数

MySQL中的函数都是针对指定的列进行操作的

字符串函数

字符串函数列表概览

函数用法
CONCAT(S1,S2,…,Sn)连接S1,S2,…,Sn为一个字符串
CONCAT_WS(separator, S1,S2,…,Sn)连接S1一直到Sn,并且中间以separator作为分隔符
UPPER(s) 或 UCASE(s)将字符串s的所有字母转成大写字母
LOWER(s) 或LCASE(s)将字符串s的所有字母转成小写字母
TRIM(s)去掉字符串s开始与结尾的空格
SUBSTRING(s,index,len)返回从字符串s的index位置其len个字符

用户环境准备

CREATE TABLE t_user (id int(11) NOT NULL AUTO_INCREMENT,uname varchar(40) DEFAULT NULL,age int(11) DEFAULT NULL,sex int(11) DEFAULT NULL,PRIMARY KEY (id)
);
insert  into t_user values (null,'zs',18,1);
insert  into t_user values (null,'ls',20,0);
insert  into t_user values (null,'ww',23,1);
insert  into t_user values (null,'zl',24,1);
insert  into t_user values (null,'lq',15,0);
insert  into t_user values (null,'hh',12,0);
insert  into t_user values (null,'wzx',60,null);
insert  into t_user values (null,'lb',null,null);

字符串连接函数

字符串连接函数主要有两个:

函数或操作符描述
concat(str1, str2, …)字符串连接函数,可以将多个字符串进行连接
concat_ws(separator, str1, str2, …)可以指定间隔符将多个字符串进行连接;

练习:使用concat函数显示出 你好 uname的结果

SELECT CONCAT('hello','world');
##指定间隔符将多个字符串进行连接
SELECT CONCAT_WS('-','hello','world');
SELECT CONCAT('你好',uname) uname FROM t_user;
SELECT CONCAT_WS('-','你好',uname) uname FROM t_user;

字符串大小写处理函数

字符串大小写处理函数主要有两个

函数或操作符描述
upper(str)得到str的大写形式
lower(str)得到str的小写形式

练习,将字符串hello装换为大写显示

将hello转成大写
查询t_user,uname变成大写

SELECT UPPER('hello'); 
SELECT UPPER(uname) from t_user;

将HELLO转成小写
查询t_user,uname变成小写、

SELECT LOWER('hello'); 
SELECT lower(uname) from t_user;

移除空格函数

可以对字符串进行按长度填充满、也可以移出空格字符

函数或操作符描述
trim(str)将str两边的空白符移除

练习:将用户id为9的用户的姓名的两边空白符移除

SELECT TRIM(uname),age,sex FROM t_user WHERE id = 9 ;

子串函数

字符串也可以按条件进行截取,主要有以下可以截取字串的函数

函数或操作符描述
substr()、substring()获取子串: 1:substr(str, pos) 、substring(str, pos); 2:substr(str, pos, len)、substring(str, pos, len)

功能一样:
substr(str, pos)
substring(str, pos)
str 要截取的字符串
pos 从第几个字符开始截取
功能一样:
substr(str, pos,len)
substring(str, pos,len)
str 要截取的字符串
pos 从第几个字符开始截取
len 截多少个

SELECT SUBSTR('abcdefg',3);
SELECT SUBSTR('abcdefg',3,2);

练习

#获取hello,world从第二个字符开始的完整字串
SELECT SUBSTR('hello,world',7);
SELECT SUBSTR('hello,world',7,4);

数值函数

数值函数列表

函数用法
ABS(x)返回x的绝对值
CEIL(x)返回大于x的最小整数值
FLOOR(x)返回小于x的最大整数值
RAND()返回0~1的随机值
POW(x,y)返回x的y次方

常用数值函数练习

#获取绝对值
SELECT ABS(-12);
#将-11.2向上取整
SELECT CEIL(-11.2);
#将1.6向下取整
SELECT FLOOR(1.6);
#获得2的两次幂的值
SELECT POW(2,2);
#获得0-110之间的随机数
SELECT RAND()*100;

日期函数

日期函数列表

函数用法
CURDATE() 或 CURRENT_DATE()返回当前日期 年月日
CURTIME() 或 CURRENT_TIME()返回当前时间 时分秒
NOW() / SYSDATE() / CURRENT_TIMESTAMP() / LOCALTIME() / LOCALTIMESTAMP()返回当前系统日期时间
DATEDIFF(date1,date2) / TIMEDIFF(time1, time2)返回date1 - date2的日期间隔 / 返回time1 - time2的时间间隔

常用日期函数的练习

#获取当前日期
SELECT CURDATE();
#获取当前时间 仅仅需要时分秒
SELECT CURTIME();
#获取当前时间,包括年月日时分秒
SELECT NOW();
#获取到11月11日还有多少天
SELECT DATEDIFF('2024-11-11',NOW());

sql练习

一下是相关需求,大家可以根据这个,自行练习
1.创建数据库mytest01,并使用数据库
2.创建部门表dept,部门表中包含 部门id (自增) 部门名称
3.向部门表中插入三条数据 分别是 开发部,市场部,财务部
4.创建员工表包含以下字段
员工id 为主键,自增
姓名,
性别,
工资,
入职日期,
部门编号,
关联部门表id,作为外键
5.向部门表插入数据,
(‘小龙’,‘男’,100000,‘1921-01-01’,1);
(‘小芹’,‘女’,10000,‘1940-01-01’,1);
(‘大勇’,‘男’,20000,‘1942-01-01’,1);
(‘大伟’,‘男’,50000,‘1921-01-01’,2);
(‘小捷’,‘男’,70000,‘1921-01-01’,2);
(‘楚岚’,‘男’,60000,‘1921-01-01’,3);
(‘冯宝’,‘男’,30000,‘1921-01-01’,3);
(‘张之维’,‘男’,50000,‘1921-01-01’,3);
(‘小云’,‘女’,40000,‘1921-01-01’,1);

查询练习

1.查询员工和部门的名字
2.查询大勇的信息,显示员工id,姓名,性别,工资和所在的部门名称(使用显式内连接)
3.将上面查到的内容 表头使用别名的形式展示 比如显示id为员工id name为姓名 等
4.在部门表中增加一个销售部
5.查询所有的部门信息关联查询出该部门中的所有员工信息
6.查询所有的部门信息关联查询出该部门中的所有员工的名字 部门 以及 工资
7.统计出 每个部门的员工人数 查询显示 部门名称 人数
8.统计出 每个部门员工 平均薪资 按照 薪资排序 查询显示 部门名称 平均薪资
9.统计出,每个部门的平均薪资 按照薪资排序 并且筛选出平均薪资>7000的部门
10.查询最高工资是多少
11.根据最高工资到员工表查询到对应的员工信息
12.查询工资小于平均工资的员工有哪些
13.查询工资大于5000的员工,来自于哪些部门的名字
14.查询开发部与财务部所有的员工信息
15.查询出1922年以后入职的员工信息,包括部门名称

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

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

相关文章

【代码分享】二十三种测试函数(关注可免费获取)

智能优化算法测试函数简介 智能优化算法测试函数是为了在优化算法研究和开发中测试算法性能的规范问题集合。这些测试函数模拟了真实世界优化问题的不同方面,包括局部最小值、最大值、全局最优解,以及多种复杂性如高维度、非线性、不连续等。优化算法,如遗传算法、粒子群优…

大数据面试题 —— Kafka

目录 消息队列 / Kafka 的好处消息队列的两种模式什么是 KafkaKafka 优缺点你在哪些场景下会选择 Kafka讲下 Kafka 的整体结构Kafka 工作原理 / 流程Kafka为什么那么快/高效读写的原因 / 实现高吞吐的原理生产者如何提高吞吐量(调优)kafka 消息数据积压&…

什么是组态软件?Web组态软件又是什么?

从事相关工作的对“组态软件”应该都不陌生,那Web组态软件又是什么呢?本文将对Web组态可视化软件(下称“Web组态软件”)做简单介绍,可视化编辑器是Web组态软件中的一个重要功能模块。除了编辑器,还有哪些功能模块?又…

15届蓝桥杯第二期模拟赛所有题目解析

文章目录 🧡🧡t1_求余🧡🧡思路代码 🧡🧡t2_灌水🧡🧡思路代码 🧡🧡t3_字符显示🧡🧡思路代码 🧡🧡t4_区间最大和…

yum安装mysql、数据库tab自动补全

一 centos7上面没有mysql,它的数据库名字叫做mariadb (自带 5.7版本) 一 centos7 安装mariadb [rootlocalhost ~]#yum install mariadb-server -y [rootlocalhost ~]#systemctl start mariadb.service [rootlocalhost ~]#systemctl stop f…

第1关:统计文件中的字符

open(name[, mode[, buffering]])函数可以打开诸如txt,csv等格式的文件。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬ 如下定义read_file()函数: def read_fi…

linux之权限管理和组

一,ACL权限 1.1,什么是acl权限? ACL是Access Control List的缩写,即访问控制列表。可以通过下列的实例来理解ACL的作用: 思考如何实现如下的权限控制: 每个项目成员在有一个自己的项目目录,…

SMART PLC升降温速率计算

1、单自由度增量式PID温度控制系统框图(数字量PWM输出) https://rxxw-control.blog.csdn.net/article/details/136732932https://rxxw-control.blog.csdn.net/article/details/136732932 1、温度监测1 2、温度监测2 待续...

Windows Terminal配置 美化

Windows 终端自定义提示符设置 | Microsoft Learn 安装PowerShell7 在 Windows 上安装 PowerShell - PowerShell | Microsoft Learn 设置默认为 PowerShell7 安装 在powerShell 开启远程权限 Set-ExecutionPolicy RemoteSigned -scope CurrentUserscoop 执行 iwr -useb ht…

[BX]和loop指令

文章目录 [BX]和loop指令1 [bx]2 Loop指令3 在Debug中跟踪用loop指令实现的循环程序4 Debug和汇编编译器Masm对指令的不同处理5 loop和[bx]的联合应用6 段前缀7 一段安全的空间8 段前缀的使用 [BX]和loop指令 1 [bx] 我们用[bx]表示一个内存单元,它的段地址默认在…

腾讯云服务器多少钱一个月?5元1个月,这价格没谁了

2024腾讯云服务器多少钱一个月?5元1个月起,腾讯云轻量服务器4核16G12M带宽32元1个月、96元3个月,8核32G22M配置115元一个月、345元3个月,腾讯云轻量应用服务器61元一年折合5元一个月、4核8G12M配置646元15个月、2核4G5M服务器165元…

力扣1. 两数之和

思路:用一个map存放 已遍历过的元素和下标; 若当前元素是nums[i], 且该元素的另一半 target-nums[i] 在已遍历过的map里面,则返回两个元素的下标; class Solution {public int[] twoSum(int[] nums, int target) {int[] ans new…

BFS模板

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、173. 矩阵距离(acwing)二、5475 聚会 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着…

5年经验之谈 —— 总结自动化测试与性能测试的区别!

很多刚刚接触自动化测试和性能测试的同学感觉性能测试和自动化测试是没什么区别的,就像小编刚刚接触自动化测试和性能测试的时候一样,区别就是:自动化测试是一个用户在测试,而性能测试需要并发,需要设计各种场景。测试…

单目测距那些事儿(上) _ 从MobileEye谈起

单目测距那些事儿(上) | 从MobileEye谈起 全面专业的自动驾驶学习资料:链接 前言 在ADAS领域,有个功能叫自适应巡航控制(Adaptive Cruise Control, ACC)。 ACC是一种纵向距离控制,具体包括发现目标车辆、判断目标车辆所在路径、测量相对本车的距离和速…

Vulnhub靶机渗透:DC-7打靶记录

前言 自信自强,来自于不怕苦、不怕难的积淀。宝剑锋从磨砺出,梅花香自苦寒来;任何美好理想,都离不开筚路蓝缕、手胼足胝的艰苦奋斗! 靶场介绍 DC-7是一个初中级的靶场,需要具备以下前置知识:…

0009、ts的类型断言

类型断言(Type Assertion)是 TypeScript 中的一种特性,允许开发者在某些情况下手动指定变量的类型。它的主要使用场景是在开发者明确知道某个值的类型,但 TypeScript 编译器无法自动推断出来时,用来告诉编译器该值的确切类型。 在 TypeScrip…

GPT能复制人类的决策和直觉吗?

GPT-3能否复制人类的决策和直觉? 近年来,像GPT-3这样的神经网络取得了显著进步,生成的文本几乎与人类写作内容难以区分。令人惊讶的是,GPT-3在解决数学问题和编程任务方面也表现出色。这一显著进步引发了一个问题:GPT…

ES6中删除对象属性的方法

ES6中删除对象属性的方法 文章目录 ES6中删除对象属性的方法1. delete方法删除(单个)1. 删除方法12. 删除方法2 2. Reflect.deleteProperty删除(单个)3. 解构赋值删除(批量) 1. delete方法删除(单个) delete 用于删除对象的某个属性,如果没有指向这个属性的引用,那它…