2.mysql数据库-DML-DQL-DCL

1. DML-操作数据

1.1 DML-添加数据

给指定字段添加数据

INSERT INTO 表名 (字段名1,字段名2,…) values (值1,值2…)

给全部字段添加数据

INSERT INTO 表名 values(值1,值2,…)

批量添加数据

INSERT INTO 表名 (字段名1,字段名2,…) values (值1,值2…), (值1,值2…)
INSERT INTO 表名 values(值1,值2,…),(值1,值2,…)
注意:
插入数据时,指定的字段顺序需要与值得顺序一一对应的。
字符串和日期类型数据应该在引号中。
输入的数据大小,应该在字段规定的范围内。

1.2 DML-修改数据

UPDATE 表名 SET 字段名1=值1,字段名2=值2,…[WHERE 条件];

1.3 DELETE -删除数据

DELETE FROM 表名 [WHERE 条件]

2.DQL-查询数据

在这里插入图片描述

  • 基本查询
  • 条件查询(where)
  • 聚合函数(count、max、min、avg、sum)
  • 分组查询(group by)
  • 排序查询(order by)
  • 分页查询 (limit)

2.1 DQL-条件查询

1.语法

SELECT 字段列表 FROM 表名 WHERE 条件列表;

2.条件
在这里插入图片描述

2.2 DQL-分组查询

1.语法

SELECT 字段列表 FROM 表名 [WHERE 条件] GROUP BY 分组字段名 [HAVING 分组后过滤条件];

2.WHERE与HAVING区别

  • 执行时机不一样:where是分组之前进行过滤,不满足where条件不参与分组,having是分组之后对结果进行过滤。
  • 判断条件不一样:where 不能对聚合函数进行判断,而having可以。
    注意
  • 执行顺序:where >聚合函数>having
  • 分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无意义

2.3 DDL-聚合函数

1.介绍
将一列数据作为一个整体,进行纵向计算。

2.常见的聚合函数
在这里插入图片描述
3.语法

SELECT 聚合函数(字段列表) FROM 表名;

注意:null值不参与所有聚合函数运算

2.4 DQL-排序查询

1.语法

SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式1,字段2 排序方式2;

2.排序方式

  • ASC :升序
  • DESC:降序

注意:如果多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序

2.5 DQL-分页查询

1.语法

SELECT 字段列表 FROM 表名 LIMIT 起始索引,查询记录数;

注意:

  • 起始索引从0开始,起始索引=(查询页码-1)*每页显示记录数
  • 分页查询是数据库的方言,不同数据库有不同的实现
  • 如果查询的是第一页数据,起始页可以省略,直接简写为limit 10

3. DCL-数据库控制语言

用来管理数据库用户、控制数据库的访问权限。

3.1 DCL-管理用户

1.查询用户

use mysql; 
select * from user

2.创建用户 主机名指的是在哪个主机上可以访问数据库

CREATE USER ‘用户名’@‘主机名’ INDENTIFIED BY ‘密码’;

创建用户itcast ,只能在当前主机localhaost访问,密码为123456,当任意主机访问数据将localhost改为’%’

CREATE USER  'itcast'@'localhost'  IDENTIFIED BY '123456';

当显示这个报错的时候:The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
执行刷新权限操作

flush privileges;

使用新创建的用户访问数据库,不能访问所有数据库

C:\Users\Tracy>mysql -u itcast -p
Enter password: ******
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.5.22 MySQL Community Server (GPL)

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
+--------------------+
1 row in set (0.00 sec)

mysql>

3.修改用户名密码

ALTER USER ‘用户名’@‘主机名’ IDENTIFIED WITH mysq_native_password BY ‘新密码’;

4.删除用户名

DROP USER ‘用户名’@‘主机名’;

DROP USER 'itcast'@'localhost'
> OK
> 时间: 0s

3.2 DCL-权限控制

权限说明
ALL,ALL PRIVILEGES所有权限
SELECT查询说明
INSERT插入数据
UPDATE修改数据
DELETE删除数据
ALTER修改表
DROP删除数据库/表/视图
CREATE创建数据库/表

1.查询权限
SHOW GRANTS FOR ‘用户名’@‘主机名’;

show grants for 'tracy'@'%' 

返回结果
show grants for 'tracy'@'%' 
 GRANT USAGE ON *.* TO 'tracy'@'%' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9'

2.授予权限

GRANT 权限列表 ON 数据库.表名 TO ‘用户名’@‘主机名’;

#授予库tracy 所有权限给tracy用户
grant all on tracy.* to 'tracy'@'%'
#查询权限
GRANT USAGE ON *.* TO 'tracy'@'%' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9'
GRANT ALL PRIVILEGES ON `tracy`.* TO 'tracy'@'%'

3.撤销权限

REVOKE 权限列表 ON 数据库.表名 FROM ‘用户名’@‘主机名’;

revoke all on tracy.* from 'tracy'@'%';

注意:

  • 多个权限之间使用,逗号分隔
  • 授权时,数据库和表名可以使用*进行通配,代表所有
  • 19
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值