SQL中的数据查询语句汇总
SQL中的数据查询语句汇总
五大三粗 发表于3年前
SQL中的数据查询语句汇总
  • 发表于 3年前
  • 阅读 50
  • 收藏 0
  • 点赞 0
  • 评论 0

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子句查询班上BO型血的学生

 

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  

共有 人打赏支持
粉丝 151
博文 890
码字总数 4479865
×
五大三粗
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: