<>select 语句查询格式
select 目标表的列名或列表达式序列(2019-ave)
from 基本表名 (最好加一个别名容易操作)和(或)视图序列
[where 行条件表达式]
[group by 列名序列
[having 组条件表达式]]
[order by 列名[asc(升序)| desc(降序)]…]
*
子句select-from-where的执行过程 :
根据where子句的条件表达式,从from表中指定的表或视图中找到满足条件的元组,再按照select子句中的目标列表达式再选出元组中的属性形成结果表。
*
整个子句的执行过程 :
读取from子句中的基本表,视图,进行笛卡尔积操作——>选取满足where子句中条件表达式的元组——>按照group子句里面的指定列进行分组,提取满足having子句条件的表达式的组——>按select给出的列名或列表达式求值取出——>根据order
by对输出表进行排序,升序或降序。
<>表的查询
单表查询(最简单的查询)
// 1.查询指定列 select SNO, SNAME from s; //2.查询全部列(两种方法) select * from s;
/**列名非常的多时推荐使用**/ select sno, sname, sex, avg, sdept from s;
/**列的显示顺序与基表的顺序相同**/ //3.查询经过计算的列 //比如:查询全体学生的姓名及出生年份 select sname, 2019 - ave
from s; //4.选择表中的若干行 /**distinct消除重复行,默认是all**/ select distinct sno from sc;
/**用in查找指定集合的元组**/ //比如:查询计算机系(CS),数学系(MA), 信息系(IS)学生的姓名和性别 select sname, sex
from s where sdept in ('CS', 'MA', 'IS'); //5.涉及到空值的查询(只能用is不能用=) select sno,cno
from sc where grade is null; select sno,cno from sc where grade is not null;
//6.多重条件:可用逻辑运算符AND和OR来连接多个查询条件,AND的优先级高于OR,括号可以改变优先级 select sno,cno from sc
where sdeptin ('CS', 'MA', 'IS') and grade is not null; //7.order
by子句:按一个或多个属性列排序。升序:ASC;降序:DESC;默认是升序 select sno,cno from sc order by grade desc
; * 当排序含空值时:ASC:排序列为空值的元组最后显示;DESC:排序列为空值的元组最先显示