为了账号安全,请及时绑定邮箱和手机立即绑定

基于SQL中的数据查询语句汇总

标签:
MySQL

where条件表达式
--统计函数

复制代码 代码如下:
Select count(1) from student;

--like模糊查询
--统计班上姓张的人数
复制代码 代码如下:
select count(*) from student where realName like '张%';

--统计班上张姓两个字的人数
复制代码 代码如下:
select count(*) from student where realName like '张_';

--统计班上杭州籍的学生人数
复制代码 代码如下:
select count(*) from student where home like '%杭州%';

--查询班上每位学生的年龄
复制代码 代码如下:
select realName,year(now())-year(birthday) as age from student;

--查询90年出生的学生
复制代码 代码如下:
select realName from student where year(birthday)>='1990';

--查询1987-1990年出生的学生
复制代码 代码如下:
select realName from student where year(birthday)<='1990' and year(birthday)>='1987';
select * from student where year(birthday) between '1987' and '1990';

--查询班上男女生人数
复制代码 代码如下:
select sex,count(*) from student group by sex;

--in子句查询班上B或O型血的学生
复制代码 代码如下:
select realName,blood from student where blood in('B','O'); 

子查询
子查询也可称之为嵌套查询,有些时候,一次查询不能解决问题,需要多次查询。


按子查询返回的记录行数区分,可分为单行子查询和多行子查询;

复制代码 代码如下:
select * from emp where sal>(       select sal from emp where ename='ALLEN‘ or ename =‘KING')

上例是找出比allen工资高的所有员工


A.子查询一般先于主语句的运行
B.必须有( ),表示一个整体
C.习惯上把子查询放在条件的右边
多行子查询:some,any,all

连接语句(应用于多表查询)
包括:内联,外联(左外连和右外联)
内联(inner join):把两张表相匹配的行查询出来。

--查询每个学生的各科成绩,显示“姓名”“课程名”“分数”三列

复制代码 代码如下:
select a.realname,c.courseName,b.score from stu_student as a inner join stu_score as b on a.sid=b.sid inner join stu_course c on b.cid=c.cid

还有一种方法,不采用inner join:
复制代码 代码如下:
select a.realname,c.courseName,b.score from student a,score b,course c where a.sid=b.sid and c.cid=b.cid

外联分左外联和右外联:
Left outer join:查询两边表的匹配记录,且将左表的不匹配记录也查询出来。
Right outer join:等上,将右表不匹配记录也查询出来。
复制代码 代码如下:
select a.realname,b.score from stu_student as a left outer join stu_score as b on a.sid=b.sid


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消