基于SQL中的数据查询语句汇总 |
本文标签:sql,查询语句 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.子查询一般先于主语句的运行 连接语句(应用于多表查询) 复制代码 代码如下: 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 |