版权声明:未经许可不得转载 https://blog.csdn.net/weixin_44141532/article/details/87868345
一、查询
连接查询
1.内联
-- 内联,取两张表的交集
select * from 表1 inner join 表2 on 连接的条件;
2.左连接
-- 左边表不管在右边有没有找到对应信息 都显示
select * from 表1 left join 表2 on 连接的条件;
3.右连接
-- 右边表不管在左边有没有找到对应信息 都显示
select * from 表1 right join 表2 on 连接的条件;
子查询
-- 子查询:一个查询里面包含其他查询语句
-- 查询高于平均身高 height的学生信息
select * from student where height > (select avg(height) from students);
二、事务
事务可以保证我们一系列的操作要么都成功,要么都失败,确保数据操作的完整性
-- 开启事务两种方法
begin;
start transaction;
-- 回滚
rollback; -- 数据将返回事务开启前原始值 此次事务结束
-- 提交
commit; -- 一旦提交 保存操作 此次事务结束
三、视图
视图是用来替换复杂的sql语句,它是对若干张表的引用,把复杂的sql语句功能封装起来的一张虚表,不用来存储具体的数据,所以我们的基本表数据发生改变时,视图也会改变。
-- 创建视图
create view view_视图名 as 查询语句; -- 视图名一般以view 或 v开头
-- 查看视图
select * from view_视图名;
-- 删除视图
drop view view_视图名;
四、索引
作用:当我们的数据量非常庞大时,为了加快查询速度,我们会使用索引。索引可以理解为一本书的目录
注意:索引虽然可以加快查询的速度,但同时建立太多的索引会影响更新和插入数据的速度,因为在更新插入的同时需要更新每个索引文件,索引最好建立在不需要经常修改的数据,并且建立索引会占用磁盘空间
-- 创建索引
create index 索引名 on 表(索引字段);
-- 查看表中已有的表名
show index from 表名;
-- 删除索引
drop index 索引名 on 表名;
五、权限管理
用户权限信息存储在MySQL数据库user表中
-- 查看user表结构
desc user;
-- 主要字段 Host:允许访问的主机 User:用户名 authentication_string:加密后的密码
-- 查看所有用户
select host,user,authentication_string from user;
-- 创建用户并授权 grant
-- 部分权限
grant 权限列表 on 数据库 to '用户名'@'访问主机' identified by '密码';
-- 所有权限
grant all privileges on 数据库 to "用户名"@"访问主机" identified by "密码";
-- 增加权限 之后要刷新权限
grant 权限名 on 数据库 to 账户@主机 with grant option;
-- 刷新权限
flush privileges;
-- 修改密码 之后要刷新权限
update user set authentication_string=password(新密码) where user = 用户名;
-- 删除用户
drop user 用户名@主机; -- 方法一
delete from user where user = 用户名; -- 方法二 操作结束之后需要刷新权限
user表中host列的值
- % 此账户可使用任何ip主机登录访问此数据库 (可以远程)
- localhost 只允许本机访问
- IP地址 特定主机访问 127.0.0.1本机访问