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

相关推荐

  1. MySQL入门学习-关系数据库.数据库

    2024-03-18 10:12:03       33 阅读
  2. 关于MySQL源码学习 这里是一些建议

    2024-03-18 10:12:03       52 阅读
  3. 关于DFS学习

    2024-03-18 10:12:03       30 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-18 10:12:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-18 10:12:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-18 10:12:03       87 阅读
  4. Python语言-面向对象

    2024-03-18 10:12:03       96 阅读

热门阅读

  1. 处理Centos 7 中buff/cache高的问题

    2024-03-18 10:12:03       43 阅读
  2. CSP - 2022 普及组初赛试题及解析

    2024-03-18 10:12:03       68 阅读
  3. 关于static关键字

    2024-03-18 10:12:03       41 阅读
  4. C语言自学笔记8----C语言Switch语句

    2024-03-18 10:12:03       42 阅读
  5. C语言自学笔记11----C语言指针

    2024-03-18 10:12:03       36 阅读
  6. 单元测试、集成测试、系统测试区别

    2024-03-18 10:12:03       39 阅读
  7. 单词接龙~~

    2024-03-18 10:12:03       37 阅读