MySql 基础语句学习

多表联合查询:
1.带in的子查询
2.内连接查询
3.外连接查询:左连接查询和右连接查询

创建数据库supermarket,在其中创建 uesr、product、user_order 3个表,简单模拟商场的用户、商品、订单。
用户: id name age sex vip
商品: productid name price mount
订单总信息:orderid data address state userid

查找订单里的用户的信息
select * from user where in (select distinct userid from user_order);
select * from user where not in (select distinct userid from user_order);
distinct的作用是去重,同一用户会有多个订单信息。
多表查询不建议用in查询,因为:
子查询在完成后,会产生一张临时表,存储后,再供外部查询进行查询,等到整个sql语句结束后,再进行释放。

select * from user a,user_order b where a.id=b.userid and b.state=‘已付款’;
或者:连接查询(比如查询,a、b的重复内容,c=a∩b)
select a.* from user a inner join user_order b on a.id=b.userid where b.state=‘已付款’;

左连接(比如查询a、b中,a除了重复的内容,c = a-a∩b)
select a.* from user a left join user_order b on a.id=b.userid where b.userid is NULL;

右连接(c = b - a∩b)
select a.* from user a right join user_order b on a.id=b.userid where b.userid is not NULL;

索引:把添加索引的字段全部放在一颗B+树上,再次查找的时候,可以快速查找,其中有单列索引和多列索引(联合索引)。
单列索引:索引排序的时候,只用一个字段的值进行排序。
多列索引:索引排序时,用多个字段的值进行排序,先用第一个字段值进行排序,第一个字段相同,再用第二个字段进行排序,一次类推,顺序不能乱!

表中unique唯一键字段都是自动添加索引项的,分别被称为主键索引和唯一键索引。

创建索引:
create index name_index on user(name);
删除:
drop index name_index on user;

explain:是分析SQL语句的执行计划的
学会用explain查看SQL的执行计划,观察索引的使用情况。。。

设置一个合理的慢查询时间,可以有效的查看SQL执行的效率。

MySQL的日志有4种:
1:二进制日志 insert delete updata select
2: 查询日志 主要存储所有的select语句
3:错误日志 主要记录MySQL Server运行、启动、关闭、重启阶段的一些异常
4:慢查询日志 会把MySQL Server 运行中,所有运行时间超过指定long_query_time时间的select查询语句记录下来

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值