数据库操作
允许远程登录
grant all privileges on . to root@‘%’ identified by ‘密码’ WITH GRANT OPTION
DDL–数据库操作
DDL-查询
查询所有数据库
SHOW DATABASES;
查询当前数据库
SELECT DATABASE();
创建数据库
CREATE DATABASE [IF NOT EXISTS] 数据库名 [DEFAULT CHARSET 字符集] [COLLATE 排序规则];
删除数据库
DROP DATABASE [IF EXISTS] 数据库名;
使用数据库
USE 数据库名;
查询当前数据库所有表
SHOW TABLES;
查询表结构
DESC 表名;
查询指定的建表语句
SHOW CREATE TABLE 表名
DDL-表操作-创建
DDL-表操作-修改
添加字段
ALTER TABLE 表名 ADD 字段名 类型(长度) [COMMENT 注释] [约束];
修改数据类型
ALTER TABLE 表名 MODITY 字段名 新数据类型(长度);
修改字段名和字段类型
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度) [COMMENT '注释'] [约束];
修改字段位置
将字段1修改至字段2后面
ALTER TABLE 表名 CHANGE 字段名1 字段名1 VARCHAR(50) AFTER 字段名2
删除字段
ALTER TABLE 表名 DROP 字段名;
修改表名
ALTER TABLE 表名 RENAME TO 新表名;
删除表
DROP TABLE [IF EXISTS] 表名;
DML-数据操作语言
DML-添加数据
1.给指定字段添加数据
INSERT INTO 表名 (字段名1,字段名2,...) VALUES(值1,值2,...);
2.给全部字段添加数据
INSERT INTO 表名 VALUES(值1,值2,...);
3.批量添加数据
INSERT INTO 表名 (字段名1,字段名2,...) VALUES(值1,值2,...),值1,值2,...),值1,值2,...);
INSERT INTO 表名 VALUES(值1,值2,...),值1,值2,...),值1,值2,...);
DML-修改数据
UPDATE 表名 SET 字段名1=值1,字段名2=值2 [WHERE 条件];
where 条件不写则是修改整张表
DML-删除数据
DELETE FROM 表名 [WHERE 条件]
注意:
- DELETE语句的条件可以有,也可以没有,如果没有条件,则会删除整张表的所有数据。
- DELETE语句不能删除某一个字段的值(可以使用UPDATE)。
DQL-数据查询语言
DQL英文全称是Data Query Language(数据查询语言),数据查询语言,用来查询数据库中表的记录。
DQL-语法
DQL-基本查询
1.查询多个字段
select 字段1,字段2,字段3... from 表名;
select * from 表名;
2.设置别名
select 字段1 [as 别名1],字段2 [as 别名2]... from 表名;
3.去除重复记录
select distinct 字段列表 from 表名;
DQL-条件查询
1.语法
select 字段列表 from 表名 where 条件列表;
2.条件
DQL-聚合函数
1.介绍
将一列数据作为一个整体,进行纵向计算
2.常见聚合函数
3.语法
select 聚合函数(字段列表) from 表名;
DQL-分组查询
1.语法
select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件];
where与having区别
- 执行时机不同: where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤。
- 判断条件不同: where不能对聚合函数进行判断,而having可以。
注意
执行顺序:where > 聚合函数 > having 。
分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义。
DQL-排序查询
1.语法
select 字段列表 from 表名 order by 字段1 排序方式1,字段2 排序方式2;
2.排序方式
- ASC :升序(默认值)
- DESC:降序
注意:如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序。
DQL-分页查询
1.语法
select 字段列表 from 表名 LIMIT 起始索引,查询记录数;
注意
- 起始索引从0开始,起始索引=(查询页码-1)*每页显示记录数。
- 分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中是LIMIT。
- 如果查询的是第一页数据,起始索引可以省略,直接简写为limit 10。
DQL-执行顺序
DCL-数据控制语言
DCL-介绍
DCL英文全称是Data Control Language(数据控制语言),用来管理数据库用户、控制数据库的访问权限。
DCL-管理员用户
1.查询用户
USE mysql;
SELECT * FROM user;
2.创建用户
ALTER USER '用户名'@'主机名' IDENTIFIED BY '密码';
3.修改用户密码
ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码';
4.删除用户
DROP USER '用户名'@'主机名';
注意:
- 主机名可以使用%通配。
- 这类SQL开发人员操作的比较少,主要是DBA ( Database Administrator数据库管理员)使用。
DCL-权限控制
1.查询权限
show grants for '用户名'@'主机名';
2.授予权限
gant 权限列表 on 数据库名.表名 to '用户名'@'主机名';
3.撤销权限
REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';
注意:
- 多个权限之间,使用逗号分隔
P USER ‘用户名’@‘主机名’;
注意:
- 主机名可以使用%通配。
- 这类SQL开发人员操作的比较少,主要是DBA ( Database Administrator数据库管理员)使用。
##### DCL-权限控制
1.查询权限
show grants for ‘用户名’@‘主机名’;
2.授予权限
gant 权限列表 on 数据库名.表名 to ‘用户名’@‘主机名’;
3.撤销权限
REVOKE 权限列表 ON 数据库名.表名 FROM ‘用户名’@‘主机名’;
注意:
- 多个权限之间,使用逗号分隔
- 授权时,数据库名和表名可以使用*进行通配,代表所有