关于MySQL数据库的学习3

目录

前言:

1.DQL(数据查询语言):

1..1基本查询:

1.2条件查询:

1.3排序查询:

1.3.1使用ORDER BY子句对查询结果进行排序。

1.3.2可以按一个或多个列进行排序,并指定排序方向(升序ASC或降序DESC)

1.4聚合查询:

1.5分组查询:

 1.6分页查询:

1.7连接查询:

2..DML(数据操纵语言DML):

2.1 增加数据(INSERT)

2.2. 修改数据(UPDATE):

2.3. 删除数据(DELETE)

3. DCL(数据控制语言,Data Control Language):

3.1用户管理:

3.1.1查询用户:

3.1.2创建用户:

3.1.3修改用户密码:

3.1.4删除用户:

3.2权限管理:

3.2.1赋予权限:

3.2.2撤销权限:

4.sql约束

4.1NOT NULL:

4.2UNIQUE:

此约束确保某列中的每行都有唯一的值。

4.3PRIMARY KEY:

4.4FOREIGN KEY:

4.5CHECK:

4.5DEFAULT:

结语:


前言:

我们已经学习了关于MySQL数据库的的DDL,今天我们将要继续去学习关于DQL的知识点了,关于这个知识我先解释一下关于这两者的区别:DQL专注于查询和检索数据库中的数据,而DDL则负责定义和更改数据库的结构和对象。其实以上都是个人关于学习的意点个人的见解,难免会有些遗漏欢迎大家的指正也欢迎大家在评论区和谐讨论。

1.DQL(数据查询语言):

在DQL(数据查询语言)中,主要关注的是如何从数据库中检索和操作数据。DQL是SQL(结构化查询语言)的一个子集,专注于数据查询方面。

1..1基本查询

1.1.1使用SELECT语句从数据库表中检索数据。

select * from 表名;

或者查询表中部分字段数据:

1.1.2可以指定要检索的列(字段)和要从中检索数据的表。

select (选择)字段1, 字段2 from 表名;

1.1.2可以使用*通配符来选择所有列。

1.2条件查询

1.1.1使用WHERE子句来指定筛选条件,只返回满足条件的行。

1.1.2可以使用比较运算符(如=<>><>=<=)和逻辑运算符(如ANDORNOT)来构建复杂的条件。

>,<,>=,<=,=,<>,!=

大于,小于,大于等于,小于等于,不等于,不等于

between...and...

显示在某一个区间的值(头尾都包含)

in(set)

显示在集合内的值,

例如:in(10,20, 30)

like ‘字符’

%代表零个或任意多个字符

_代表一个字符

like ‘_好%’

is null/is not null

判断为空/不为空

and,or,not

逻辑运算符

1.3排序查询

1.3.1使用ORDER BY子句对查询结果进行排序。

通过order by,将查询出来的结果进行排序,放在select语句的最后

1.3.2可以按一个或多个列进行排序,并指定排序方向(升序ASC或降序DESC

select * from 表名 order by 排序字段 asc/desc

默认是升序(asc)

1.4聚合查询

1.4.1使用聚合函数(如SUM()AVG()COUNT()MAX()MIN()等)对一组值进行计算并返回单个值。

1.4.2通常与GROUP BY子句一起使用,将数据分组后进行聚合计算。

这是几个常见的聚合查询:

1.count:统计指定列不为null的记录行数,

2.sum:计算指定列的和,如果指定列的类型不是数字类型,那么结果是0

3.max:计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算

4.min:计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算

5.avg:计算指定列的平均值,如果指定列的类型不是数字类型,那么结果是0

1.5分组查询

1.5.1使用GROUP BY子句将表中的行分组,基于一个或多个列的值。

通过group by对查询的信息进行分组,分组之后(而where是在分组之前的查询信息)只能查询分组的字段和聚合查询

select 字段 from 表名 group by 分组字段 having 条件;

having和where的区别:having是在分组后对数据进行过滤,where是在分组前对数据进行过滤;

having后面可以使用聚合函数(在Python中,聚合函数是指可以对一组值执行计算,并返回单个值的函数。Python中的聚合函数主要包括sum()、max()、min()、mean()(平均值)、count()等。这些函数通常用于对数据列表、元组或集合进行操作,以获得关于这些数据的统计信息。)过滤数据,where不可以,

分组就是将一样的数据放到一样的表格里面进行查询

1.5.2分组后,可以使用聚合函数对每个组进行计算。

1.5.3可以使用HAVING子句对分组后的结果进行过滤,类似于WHERE子句但用于分组后的数据。

 1.6分页查询

1.6.1用于限制查询结果返回的行数,通常用于分页显示数据。

1.6.2不同的数据库系统有不同的分页查询语法。例如,在MySQL中使用LIMITOFFSET关键字,而在SQL Server中使用OFFSETFETCH子句。

select 字段 from 表名 limit m, n

m:表示第几条索引开始

n:表示查询多少条数据

1.7连接查询

使用JOIN语句将多个表中的数据组合在一起,基于它们之间的相关列进行匹配。

存在多种类型的连接,如内连接(INNER JOIN)、左外连接(LEFT JOIN)、右外连接(RIGHT JOIN)和全外连接(FULL JOIN)等。

1.8子查询

子查询可以在SELECTFROM, 或 WHERE子句中使用。

一个查询可以嵌套在另一个查询中,作为外部查询的条件、数据源或用于计算的值等。

1.9别名使用

使用AS关键字为列或表指定别名,使查询结果更易读或简化查询语句的编写。在某些情况下,AS关键字可以省略。

1.10去除重复数据

使用DISTINCT关键字去除查询结果中的重复行。

去掉重复的数据:distinct

2..DML(数据操纵语言DML):

DML(数据操纵语言,Data Manipulation Language)是SQL(结构化查询语言,Structured Query Language)的一个子集,主要用于对数据库中的数据进行增删改查等操作。DML的主要语句包括INSERT、UPDATE、DELETE和SELECT。不过,SELECT通常也被归类为DQL(数据查询语言,Data Query Language),因为它主要用于查询数据,而不直接修改数据。

2.1 增加数据(INSERT)

向表中所有字段插入数据:

INSERT INTO 表名 VALUES (值1, 值2, 值3, ...);

向表中指定字段插入数据:

INSERT INTO 表名 (字段1, 字段2, 字段3, ...) VALUES (值1, 值2, 值3, ...);

2.2. 修改数据(UPDATE):

更新表中的数据:

UPDATE 表名 SET 字段1 = 值1, 字段2 = 值2, ... WHERE 条件;

2.3. 删除数据(DELETE)

从表中删除数据:

DELETE FROM 表名 WHERE 条件;

3. DCL(数据控制语言,Data Control Language):

3.1用户管理

3.1.1查询用户

例如,在MySQL中,可以使用SELECT * FROM user;命令来查询所有用户信息(通常需要在mysql数据库下执行此命令)。

3.1.2创建用户

使用CREATE USER命令来创建新的数据库用户。例如,CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';可以创建一个新的用户,并指定其从哪个主机访问以及使用什么密码。

3.1.3修改用户密码

使用ALTER USER命令来修改用户的密码。例如,ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码';

3.1.4删除用户

使用DROP USER命令来删除一个数据库用户。例如,DROP USER '用户名'@'主机名';

3.2权限管理

3.2.1赋予权限

通过GRANT命令赋予用户特定的数据库权限。这些权限可以针对整个数据库、特定的表或特定的列,并可以包括如SELECT、INSERT、UPDATE、DELETE等操作。

3.2.2撤销权限

使用REVOKE命令来撤销之前赋予用户的数据库权限。

4.sql约束

4.1NOT NULL

此约束确保某列不能有NULL值。

4.2UNIQUE

此约束确保某列中的每行都有唯一的值。

4.3PRIMARY KEY

此约束是NOT NULL和UNIQUE的结合。它确保某列(或两个列或多个列的组合)有唯一标识,有助于更容易、更快速地找到表中的一个特定的记录。

4.4FOREIGN KEY

此约束用于保证一个表中的数据匹配另一个表中的值。这是为了保持数据的参照完整性。外键字段里的所有数据都必须是另一张表的主键字段里的值。

4.5CHECK

此约束确保列中的所有值都满足某一条件。例如,可以确保某列的值都大于0。

4.5DEFAULT

此约束为没有给列赋值的行提供默认值。

结语:

今天我们就先分享到这里了,今天已经介绍完了MySQL数据库的几个语言.关于后面我们就会分享一点关于web前端的内容,如果我的文章存在任何问题欢迎大家指正。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

(十八)【Jmeter】取样器(Sampler)之BeanShell 取样器

简述 操作路径如下: 作用:通过Beanshell脚本来编写自定义请求。配置:编写Beanshell脚本代码,实现请求逻辑。使用场景:在JMeter中利用Beanshell脚本语言的特性进行自定义请求。优点:可以利用Beanshell脚本语言的丰富功能。缺点:脚本语言的性能可能不如其他编译语言,且…

Day67:WEB攻防-Java安全JNDIRMILDAP五大不安全组件RCE执行不出网

知识点&#xff1a; 1、Java安全-RCE执行-5大类函数调用 2、Java安全-JNDI注入-RMI&LDAP&高版本 3、Java安全-不安全组件-Shiro&FastJson&JackJson&XStream&Log4j Java安全-RCE执行-5大类函数调用 Java中代码执行的类&#xff1a; GroovyRuntimeExecPr…

<el-tab>样式自定义——一个可以触类旁通的小例子

首先在网页的检查确定想要自定义的部分叫什么 例如&#xff1a; 我想修改的组件是el-tabs__header.is-top 的margin-bottom 则在相应vue文件的<style>里面增加这一属性 其中&#xff0c;::v-deep可以帮助覆盖子组件内部元素的样式。 ::v-deep .el-tabs__header.is-to…

Ubuntu18.04 中编译 TI 官方的ros驱动包中 autonomous_robotics_ros 包所存在的问题及解决方案

环境&#xff1a; 安装有 ROS 系统的 Ubuntu18.04 环境&#xff0c;并且已将 TI 官方的毫米波雷达 ROS 驱动下载到Ubuntu18.04系统中&#xff0c;如需获取此代码请点击此链接根据教程下载即可。 代码下载链接&#xff1a;TI IWR6843ISK ROS驱动程序搭建-CSDN博客 问题1&…

计算机设计大赛 题目:基于深度学习卷积神经网络的花卉识别 - 深度学习 机器视觉

文章目录 0 前言1 项目背景2 花卉识别的基本原理3 算法实现3.1 预处理3.2 特征提取和选择3.3 分类器设计和决策3.4 卷积神经网络基本原理 4 算法实现4.1 花卉图像数据4.2 模块组成 5 项目执行结果6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基…

基于Spark的气象数据处理与分析

文章目录 一、实验环境二、实验数据介绍三、数据获取1.观察数据获取方式2.数据爬取3.数据存储4.数据读取5.数据结构6.爬虫过程截图 四、数据分析1.计算各个城市过去24小时累积雨量2.计算各个城市当日平均气温3.计算各个城市当日平均湿度4.计算各个城市当日平均风速 五、数据可视…

WebRTC:真正了解 RTP 和 RTCP

介绍 近年来&#xff0c;通过互联网进行实时通信变得越来越流行&#xff0c;而 WebRTC 已成为通过网络实现实时通信的领先技术之一。WebRTC 使用多种协议&#xff0c;包括实时传输协议 (RTP) 和实时控制协议 (RTCP)。 RTP负责通过网络传输音频和视频数据&#xff0c;而RTCP负责…

Uibot (RPA设计软件)RPA基础培训-财务会计Web应用自动化(批量开票机器人)

Uibot (RPA设计软件&#xff09;Mage AI智能识别&#xff08;发票识别&#xff09;———机器人的小项目友友们可以参考小北的课前材料五博客~ (本博客中会有部分课程ppt截屏,如有侵权请及请及时与小北我取得联系~&#xff09; 紧接着小北的前两篇博客&#xff0c;友友们我们…

【全面了解自然语言处理三大特征提取器】RNN(LSTM)、transformer(注意力机制)、CNN

目录 一 、RNN1.RNN单个cell的结构2.RNN工作原理3.RNN优缺点 二、LSTM1.LSTM单个cell的结构2. LSTM工作原理 三、transformer1 Encoder&#xff08;1&#xff09;position encoding&#xff08;2&#xff09;multi-head-attention&#xff08;3&#xff09;add&norm 残差链…

PyCharm实现一个简单的注册登录Django项目

之前已经实现了一个简单的Django项目&#xff0c;今天我们j基于之前的项目来实现注册、登录以及登录成功之后跳转到StuList页面。 1、连接数据库 1.1 配置数据库信息&#xff1a; 首先在myweb的settings.py 文件中设置MySQL数据库连接信息&#xff1a; DATABASES {default…

在线疫苗预约小程序|基于微信小程序的在线疫苗预约小程序设计与实现(源码+数据库+文档)

在线疫苗预约小程序目录 目录 基于微信小程序的在线疫苗预约小程序设计与实现 一、前言 二、系统设计 三、系统功能设计 1、疫苗管理 2、疫苗订单管理 3、论坛管理 4、公告管理 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源…

html5cssjs代码 022 表单输入类型示例

html5&css&js代码 022 表单输入类型示例 一、代码二、解释 这段HTML代码定义了一个网页&#xff0c;展示了表单输入类型示例。 一、代码 <!DOCTYPE html> <html lang"zh-cn"> <head><title>编程笔记 html5&css&js 表单输入…

SpringBoot整合JPA

一 运行效果如下 二 项目结构图 三 代码 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance&qu…

2024 年(第 12 届)“泰迪杯”数据挖掘挑战赛——A 题:生产线的故障自动识别与人员配置具体思路以及源代码分析

一、问题背景 随着新兴信息技术的大规模应用&#xff0c;工业生产线的智能化控制技术日益成熟。自动生产线 可以自动完成物品传送、物料填装、产品包装和质量检测等过程&#xff0c;极大地提高了生产效率和 产品质量&#xff0c;减少了生产成本。自动生产线融入故障智能报警…

【Spring Boot 源码学习】深入应用上下文初始化器实现

《Spring Boot 源码学习系列》 深入应用上下文初始化器实现 一、引言二、往期内容三、主要内容3.1 spring-boot 子模块中内置的实现类3.1.1 ConfigurationWarningsApplicationContextInitializer3.1.2 ContextIdApplicationContextInitializer3.1.3 DelegatingApplicationConte…

FFmpeg-aac、h264封装flv及时间转换

文章目录 时间概念流程api核心代码 时间概念 dts: 解码时间戳, 表示压缩帧的解码时间 pts: 显示时间戳, 表示将压缩帧解码后得到的原始帧的显示时间 时间基: time_base &#xff0c; 通常以ms为单位 时间戳: timestamp , 多少个时间基 真实时间&#xff1a;time_base * timest…

email + celery+django 异步发送邮件功能的实现

主要流程&#xff1a; django通过发件服务器到收件服务器&#xff0c;最后到收件人 邮件配置设置需要打开SMTP/IMAP并获的授权码&#xff0c;完成授权功能实现发送给收件人 邮件配置请参考另一博客https://blog.csdn.net/qq_44238024/article/details/136277821 项目结构树…

mac下Appuim环境安装

参考资料 Mac安装Appium_mac电脑安装appium-CSDN博客 安卓测试工具&#xff1a;Appium 环境安装&#xff08;mac版本&#xff09;_安卓自动化测试mac环境搭建-CSDN博客 1. 基本环境依赖 1 node.js 2 JDK&#xff08;Java JDK&#xff09; 3 Android SDK 4 Appium&#x…

数据分析 | Matplotlib

Matplotlib 是 Python 中常用的 2D 绘图库&#xff0c;它能轻松地将数据进行可视化&#xff0c;作出精美的图表。 绘制折线图&#xff1a; import matplotlib.pyplot as plt #时间 x[周一,周二,周三,周四,周五,周六,周日] #能量值 y[61,72,66,79,80,88,85] # 用来设置字体样式…

Linux进程管理:(六)SMP负载均衡

文章说明&#xff1a; Linux内核版本&#xff1a;5.0 架构&#xff1a;ARM64 参考资料及图片来源&#xff1a;《奔跑吧Linux内核》 Linux 5.0内核源码注释仓库地址&#xff1a; zhangzihengya/LinuxSourceCode_v5.0_study (github.com) 1. 前置知识 1.1 CPU管理位图 内核…