基于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)='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
下一篇: EC2上MySQL如何开启远程访问
推荐阅读
-
基于SQL中的数据查询语句汇总_MySQL
-
thinkphp中多表查询中防止数据重复的sql语句(必看)
-
PHP中SQL查询语句的id=%d解释(推荐)
-
MySQL中的sql语句执行过程
-
mysql数据库分类之(DQL)查询表中的数据(3)
-
in语句查询按in里的顺序返回记录 博客分类: 数据库mysql
-
MySQL和Oracle数据库sql查询日期比较条件的差异
-
【2019-2020春学期】数据库作业8:SQL练习5 - SELECT(嵌套查询EXISTS、集合查询、基于派生表的查询)
-
查询最近12个月的数据SQL语句
-
Oracle PL/SQL 中if语句的应用 博客分类: 数据库 OraclePL/SQLif