数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

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


发布日期:2021年09月06日
 
基于SQL中的数据查询语句汇总
以下是对SQL中的数据查询语句进行了汇总介绍需要的朋友可以过来参考下

where条件表达式
统计函数

复制代码 代码如下:
Select count() 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 realNameyear(now())year(birthday) as age from student;


查询年出生的学生

复制代码 代码如下:
select realName from student where year(birthday)>=;


查询年出生的学生

复制代码 代码如下:
select realName from student where year(birthday)<= and year(birthday)>=;
select * from student where year(birthday) between and ;


查询班上男女生人数

复制代码 代码如下:
select sexcount(*) from student group by sex;


in子句查询班上B或O型血的学生

复制代码 代码如下:
select realNameblood from student where blood in(BO);


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

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

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


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

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

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

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

复制代码 代码如下:
select arealnameccourseNamebscore from stu_student as a inner join stu_score as b on asid=bsid inner join stu_course c on bcid=ccid


还有一种方法不采用inner join:

复制代码 代码如下:
select arealnameccourseNamebscore from student ascore bcourse c where asid=bsid and ccid=bcid


外联分左外联和右外联
Left outer join:查询两边表的匹配记录且将左表的不匹配记录也查询出来
Right outer join:等上将右表不匹配记录也查询出来

复制代码 代码如下:


select arealnamebscore from stu_student as a left outer join stu_score as b on asid=bsid

上一篇:MySQL数据库线程缓沖池详解

下一篇:Oracle 10g vs PostgreSQL 8 vs MySQL 5