day06【入门】MySQL学习(3)完结!!!!

news2024/12/26 9:49:26

今日学习目标,mysql剩余的一小部分。开始接口自动化测试的学习。


目录

1、自关联

2、子查询

2.1 标量子查询

2.2 列子查询

2.3 表级子查询

2.4 作业

3、MySQL内置函数

3.1 concat字符串连接

3.2 length(str)  

3.3 left字符串

3.4 right字符串

3.5 substring指定位置截取字符

3.6 练习

3.6 ltrim 去除字符串左侧空格

3.7 去除字符串右侧空格

3.8 trim去掉字符串两侧的空格

3.9 round四舍五入

3.10 rand随机数

​编辑

​编辑

3.11 日期和时间函数

4、存储过程 procedure

5、视图

6、事务

6.1 开启事务begin、回滚事务rollback

6.2 提交事务commit

7、索引

7.1 创建索引

7.2 索引的调用

7.3 查看索引

7.4 删除索引

7.5 索引的优缺点


1、自关联

select * from areas;
--  查询有多少个省
select * from areas where pid is null;

 


 

-- 查询有多少个市
select count(*) from areas where pid is not null;


-- 查询广东省的所有城市(自关联)
select * from areas l INNER JOIN areas r 
on l.id = r.pid 
WHERE l.name = '广东省';

2、子查询

-- 查询大于平均年龄的学生记录
select * from students where age > (
	select avg(age) from students
);


having不能单独使用,必须搭配group by。

where里面不能使用聚合函数。


2.1 标量子查询

2.2 列子查询

--  查询30岁的学生的成绩。
-- 先查询30岁学生的studentNo,接着查询成绩
select score from scores WHERE studentNo in (
	select studentNo from students where age = 30
)

2.3 表级子查询

-- 用子查询,查询所有女生的信息和成绩。
select * from  (select * from students where sex = '女') stu INNER JOIN
scores sc on stu.studentNO = sc.studentNO;

2.4 作业

-- 1、列出男职工的总数和女职工总数
select sex 性别,count(*) 人数 from employees GROUP BY sex;


-- 2、列出非党员职工的总数
select count(*) 非党员职工总数 from employees where politicalstatus <> '党员';


-- 3、列出所有职工工号,姓名以及所在部门名称
select empid,empname,d.deptname from (select * from employees) emp INNER JOIN departments d ON
emp.deptid = d.deptid;


-- 4、列出所有职工工号,姓名和对应工资
select emp.empid, empname,salary from (select * from employees) emp INNER JOIN salary sal ON
emp.empid = sal.empid;


-- 5、列出领导岗的姓名以及所在部门名称
select empname,dep.deptname from (select * from employees WHERE leader is NULL) emp INNER JOIN
departments dep ON emp.deptid = dep.deptid


-- 6、列出职工总人数大于4的部门号和总人数。
select deptid,count(*) from employees GROUP BY deptid having count(*) > 4;


-- 7、列出职工总人数大于4的部门号和部门名称;
select emp.deptid,deptname from employees emp INNER JOIN departments d on 
emp.deptid = d.deptid
GROUP BY deptid having count(*) > 4;


-- 8、列出开发部和测试部的职工号,姓名
select emp.empid,empname from employees emp INNER JOIN departments dep ON
emp.deptid = dep.deptid WHERE deptname = '测试部' or deptname ='开发部';

select emp.empid,empname from employees emp INNER JOIN departments dep ON
emp.deptid = dep.deptid WHERE deptname in ('测试部','开发部');


-- 9、列出市场部所有女职工的姓名和政治面貌。
select empname,politicalstatus from employees emp INNER JOIN departments dep ON
emp.deptid = dep.deptid WHERE sex = '女' and deptname='市场部';


select * from salary;
-- 10、显示所有职工姓名和工资,包括没有工资的职工姓名。
SELECT empname,salary from employees emp LEFT JOIN salary sal ON
emp.empid = sal.empid;


-- 11、求不姓‘孙’ 的所有职工工资总和。
select sum(salary) FROM employees emp INNER JOIN salary sal ON
emp.empid = sal.empid
WHERE empname not LIKE '孙%';

3、MySQL内置函数

3.1 concat字符串连接

3.2 length(str)  


3.3 left字符串

3.4 right字符串

3.5 substring指定位置截取字符

3.6 练习


select * from students;
-- 1、查询students 表的card字段,截取出生年月日,显示李白的生日。
select substring(card,7,8) from students WHERE name ='查娜';


select * from students;
-- 2、查询students 表的所有学生信息,按生日从大到小排序。(注意:不能使用age排序。)
select * from students ORDER BY substring(card,11,4);

3.6 ltrim 去除字符串左侧空格

3.7 去除字符串右侧空格

-- 去除字符串'abcd     ' 右侧的空格
select concat(rtrim('  abcde         '),'测试字符串')

3.8 trim去掉字符串两侧的空格

3.9 round四舍五入

3.10 rand随机数


3.11 日期和时间函数

 


4、存储过程 procedure

5、视图

6、事务

6.1 开启事务begin、回滚事务rollback

6.2 提交事务commit

如果开始了一个事务,执行了begin之后,没有rollback 也没有commit,中间系统出问题了,默认会执行rollback;

7、索引

创建索引:目的是加快查找速度。

7.1 创建索引

-- 给数字 创建索引
create index age_index on students(age);

-- 给 字符串 字段创建索引 
CREATE INDEX name_index on students(name(10));

7.2 索引的调用

7.3 查看索引

7.4 删除索引

 

7.5 索引的优缺点


完结啦,数据库就到这里,还得多用。多用就会熟练很多。接下来,准备学习 接口测试啦。

 

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

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

相关文章

使用 Apache Commons IO 实现文件读写

在 Java 编程中&#xff0c;文件读写是常见的操作。虽然 Java 标准库提供了基本的文件 I/O 功能&#xff0c;但使用 Apache Commons IO 库可以进一步简化这些操作&#xff0c;提高开发效率。Apache Commons IO 是一个强大的工具库&#xff0c;提供了许多实用的类和方法&#xf…

9. 一分钟读懂“策略模式”

9.1 模式介绍 策略模式是一种行为型设计模式&#xff0c;用于在运行时灵活切换对象的行为或算法&#xff0c;它将算法封装为独立的类&#xff0c;使得它们可以互相替换&#xff0c;而不会影响使用这些算法的客户端代码。 策略模式的核心思想是&#xff1a;定义一系列可互换的算…

使用Oracle通过gateway连接MSSQL

环境概述 某医院的his系统Oracle数据库要和体检系统进行数据通讯&#xff0c;需要从Oracle能查到sqlserver的数据。本次通过Oracle gateway来解决此问题。 HIS服务器&#xff1a;windows server 2016数据库oracle11.2.0.4&#xff0c;假设IP是192.168.100.9 体检服务器&…

社区医疗服务可视化系统设计与实现

文末获取源码和万字论文&#xff0c;制作不易&#xff0c;感谢点赞支持。 摘 要 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff0c;…

Alibaba EasyExcel 导入导出全家桶

一、阿里巴巴EasyExcel的优势 首先说下EasyExcel相对 Apache poi的优势&#xff1a; EasyExcel也是阿里研发在poi基础上做了封装&#xff0c;改进产物。它替开发者做了注解列表解析&#xff0c;表格填充等一系列代码编写工作&#xff0c;并将此抽象成通用和可扩展的框架。相对p…

掌控时间,成就更好的自己

在个人成长的道路上&#xff0c;时间管理是至关重要的一环。有效的时间管理能够让我们更加高效地完成任务&#xff0c;实现自己的目标&#xff0c;不断提升自我。 时间对每个人都是公平的&#xff0c;一天只有 24 小时。然而&#xff0c;为什么有些人能够在有限的时间里做出卓…

十、JavaScript的应用

10.1 JavaScript概述 10.1.1 JavaScript简介 JavaScript是一种基于 对象(0bject) 和 事件驱动(EventDriven) 并具有安全性能的脚本语言&#xff0c;能够与HTML(超文本标记语言)、Java语言一起在Web页面中与web 客户交互&#xff0c;它无须经过先将数据传给服务器端(Server)、再…

服务器上的常见Linux命令教程

在管理服务器&#xff08;如香港服务器&#xff09;时&#xff0c;掌握常见的 Linux 命令 是非常重要的&#xff0c;它们可以帮助你高效地完成服务器管理任务&#xff0c;如文件操作、进程管理、用户管理、网络配置等。 以下是一个系统化的 Linux 常见命令教程&#xff0c;分为…

开发手札:Win+Mac下工程多开联调

最近完成一个Windows/Android/IOS三端多人网络协同项目V1.0版本&#xff0c;进入测试流程了。为了方便自测&#xff0c;需要用unity将一个工程打开多次&#xff0c;分别是Win/IOS/Android版本&#xff0c;进行多角色联调。 在Win开发机上&#xff0c;以Windows版本为主版…

2024 阿里云Debian12.8安装apach2【图文讲解】

1. 更新系统&#xff0c;确保您的系统软件包是最新的 sudo apt update sudo apt upgrade -y 2. 安装 Apache Web 服务器 apt install apache2 -y 3. 安装 PHP 及常用的扩展 apt install php libapache2-mod-php -y apt install php-mysql php-xml php-mbstring php-curl php…

Chromium网络调试篇-Fiddler 5.21.0 使用指南:捕获浏览器HTTP(S)流量(二)

概述 在上一篇文章中&#xff0c;我们介绍了Fiddler的基础功能和如何安装它。今天我们将深入探讨如何使用Fiddler来捕获HTTP请求&#xff0c;这是Fiddler的一个核心能力&#xff0c;对于前端开发者、测试人员以及安全研究人员来说非常有用。捕获HTTP请求可以帮助我们更好地理解…

【开源安全保护】如何安装JumpServer堡垒机

【开源安全保护】如何安装JumpServer堡垒机 什么是堡垒机 大家好&#xff0c;我是星哥&#xff0c;今天我以前来认识堡垒机 堡垒机&#xff08;Bastion Host&#xff09;&#xff0c;也称为跳板机&#xff08;Jump Server&#xff09;&#xff0c;是指在计算机网络中&#x…

AIGC 012-Video LDM-更进一步,SD作者将LDM扩展到视频生成任务!

AIGC 012-Video LDM-Stable Video diffusion前身&#xff0c;将LDM扩展到视频生成任务&#xff01; 文章目录 0 论文工作1论文方法实验结果 0 论文工作 Video LDM作者也是Stable diffusion的作者&#xff0c;作者在SD的架构上进行扩展&#xff0c;实现了视频的生成。后续在Vid…

Qt开源控件:图像刻度轴绘制器 (附源码)工程项目私信博主

项目简介 图像刻度轴绘制器是一款基于 Qt/C 开发的小型绘图工具&#xff0c;旨在实现带有刻度轴的图像显示功能。该项目主要用于需要精确测量或标注图像坐标的场景。通过左侧和底部的坐标轴以及对应的刻度线&#xff0c;可以直观地了解图像内容在二维空间中的位置。 项目功能 …

集成学习综合教程

一、前置知识 一个分类器的分类准确率在60%-80%&#xff0c;即&#xff1a;比随机预测略好&#xff0c;但准确率却不太高&#xff0c;我们可以称之为 “弱分类器”&#xff0c;比如CART&#xff08;classification and regression tree 分类与回归树&#xff09;。 反之&#x…

渗透测试--Windows凭证收集

在渗透测试过程中&#xff0c;我们终究会遇到攻陷了某台加域Windows主机的情况。而这种情况下&#xff0c;我们很需要搜集当前主机的凭证信息。为进一步利用这些相互信任的凭证来进行横向打下基础。 在凭证收集中&#xff0c;我们主要有以下场景&#xff1a; 1.lsass.exe的DMP文…

云开发 Copilot ——让开发变得更简单

声明&#xff1a;本篇博客为云开发 Copilot体验文章&#xff0c;非广告 目录 前言&#xff1a; 游客体验 云开发 Copilot实战&#xff1a; 一、图片生成需求 二、云开发 Copilot实现需求 三、AI生成低代码页面 Copilot 的亮点功能 使用场景 云开发 Copilot开发的前景…

【Docker】创建Docker并部署Web站点

要在服务器上创建Docker容器&#xff0c;并在其中部署站点&#xff0c;你可以按照以下步骤操作。我们将以Flask应用为例来说明如何完成这一过程。 1. 准备工作 确保你的服务器已经安装了Docker。如果没有&#xff0c;请根据官方文档安装&#xff1a; Docker 安装指南 2. 创…

【Java】Switch语句、循环语句(for、while、do...while)

Switch语句&#xff1a;针对某个表达式的值进行判断&#xff0c;从而决定执行哪一段代码 语法格式&#xff1a; switch(表达式){ case 目标值1: 执行语句1 break; case 目标值2: …

第一部分:基础知识 3. 数据类型 --[MySQL轻松入门教程]

第一部分:基础知识 3. 数据类型 --[MySQL轻松入门教程] MySQL 支持多种数据类型,这些数据类型可以分为几大类:数值类型、字符串类型、日期和时间类型、二进制类型以及枚举和集合。每种类型都有其特定的用途和存储需求。以下是 MySQL 中常用的数据类型的详细介绍: 1. 数值…