谈谈关于 mysql数据库的查询都有哪些?分别使用场景?注意事项。。。

mysql的查询有哪些?

单表查询:
查询全部字段数据:select * from tablename;
查询某字段(一列)的值:select column_name from tablename;
where条件查询:select column_name frome tablename where 表达式(查询条件,eg:id=1)
多表查询:
联合查询,连接查询(内连接,左外连接,右外连接)。
联合查询:union 将两个sql查询的结果集合并在一个表中。
注意:两个结果集的表结构相同。
select student_name from student where s_id = 1
union
select teacher_name from teacher where t_id = 3;
注意:默认删除重复,union all 允许重复值。
链接查询:
内连接:inner join (等同于join)
select s.s_name,t.t_name from student s inner join teacher t on s.s_id = t.s_id;
可以不使用inner join
select s.s_name,t.t_name from student s ,teacher t where s.s_id = t.s_id;
使用场景:查询A 表和B表同时满足查询条件的数据,
左外连接: left join
select s.s_name,t.t_name from student s left join teacher t on s.s_id = t.s_id;
使用场景:查询A表的所有满足条件的数据,B表中有满足条件的则记录,若没有,补为null值。
手册原话:从左表 (student) 那里返回所有的行,即使在右表 (teacher) 中没有匹配的行。
右外连接: right join
select s.s_name,t.t_name from student s right join teacher t on s.s_id = t.s_id;
使用场景:查询B表的所有满足条件的数据,A表中有满足条件的则记录,若没有,补为null值。
手册原话:从右表 (teacher) 那里返回所有的行,即使在左表 (student) 中没有匹配的行。

子查询:在sql语句中,包含另一个sql语句的查询,被包含的sql语句为子查询。
select student_grade from grade where student_id = (select student_id from student where name=’张三’);
使用场景: 一般不提倡写子查询,这样会降低数据库的效率。
在优化数据库时,尽量减少子查询。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值