关于MySQL数据库的学习3

目录

前言:

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

1..1基本查询:

1.2条件查询:

1.3排序查询:

[1.3.1使用ORDER BY子句对查询结果进行排序。](#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.1 增加数据(INSERT))

[2.2. 修改数据(UPDATE):](#2.2. 修改数据(UPDATE):)

[2.3. 删除数据(DELETE)](#2.3. 删除数据(DELETE))

[3. DCL(数据控制语言,Data Control Language):](#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.1NOT NULL:)

4.2UNIQUE:

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

[4.3PRIMARY KEY:](#4.3PRIMARY KEY:)

[4.4FOREIGN KEY:](#4.4FOREIGN KEY:)

4.5CHECK:

4.5DEFAULT:

结语:


前言:

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

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

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

1..1基本查询

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

python 复制代码
select * from 表名;

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

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

python 复制代码
select (选择)字段1, 字段2 from 表名;

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

1.2条件查询

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

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

|-------------------------|---------------------------------|
| >,<,>=,<=,=,<>,!= | 大于,小于,大于等于,小于等于,不等于,不等于 |
| 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子句。

python 复制代码
select 字段 from 表名 limit m, n

m:表示第几条索引开始

n:表示查询多少条数据

1.7连接查询

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

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

1.8子查询

子查询可以在SELECT, FROM, 或 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)

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

python 复制代码
INSERT INTO 表名 VALUES (值1, 值2, 值3, ...);

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

python 复制代码
INSERT INTO 表名 (字段1, 字段2, 字段3, ...) VALUES (值1, 值2, 值3, ...);

2.2. 修改数据(UPDATE):

更新表中的数据:

python 复制代码
UPDATE 表名 SET 字段1 = 值1, 字段2 = 值2, ... WHERE 条件;

2.3. 删除数据(DELETE)

从表中删除数据:

python 复制代码
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前端的内容,如果我的文章存在任何问题欢迎大家指正。

相关推荐
苹果醋332 分钟前
React源码02 - 基础知识 React API 一览
java·运维·spring boot·mysql·nginx
了一li1 小时前
Qt中的QProcess与Boost.Interprocess:实现多进程编程
服务器·数据库·qt
码农君莫笑1 小时前
信管通低代码信息管理系统应用平台
linux·数据库·windows·低代码·c#·.net·visual studio
别致的影分身2 小时前
使用C语言连接MySQL
数据库·mysql
过过过呀Glik2 小时前
在 Ubuntu 上安装 MySQL 的详细指南
mysql·ubuntu
爱吃西瓜的小菜鸡3 小时前
【C语言】判断回文
c语言·学习·算法
小A1593 小时前
STM32完全学习——SPI接口的FLASH(DMA模式)
stm32·嵌入式硬件·学习
岁岁岁平安3 小时前
spring学习(spring-DI(字符串或对象引用注入、集合注入)(XML配置))
java·学习·spring·依赖注入·集合注入·基本数据类型注入·引用数据类型注入
京东零售技术3 小时前
“慢”增长时代的企业数据体系建设:超越数据中台
数据库
武昌库里写JAVA3 小时前
Java成长之路(一)--SpringBoot基础学习--SpringBoot代码测试
java·开发语言·spring boot·学习·课程设计