sql语言提供了select语句进行数据查询,select语句使用方式灵活、功能丰富,我们要学会使用
数据查询select进行
一.单表的查询
1.选择表中的若干列
select <目标列表达式> from <表名>;
如果是查询多列,增加上面的目标列表达式并用逗号作为分隔符
以学生表为例 select Sname,Sno,Sdept from student;
如果是查询全部列 select * from student;其中*为通配符,表示选中全部的列。
以我自己的数据库为例:
此外在上述的目标表达式中,目标表达式还可以是算术表达式、字符串常量、函数。
2.选中表中的若干元组
distinct:消除取值重复的行
where:查询满足条件的元组
例如:我要查询薪水大于等于10000的人的职业与薪水
select jobName,salary
from the_infor_of_job
where salary>=10000;
查询条件 | 谓词 |
---|---|
比较 | =,>,<,>=,<=,!=,<>,!>,!<;NOT+上述比较运算符 |
确定范围 | BETWEEN AND,NOT BETWEEN AND |
确定集合 | IN,NOT IN |
字符匹配 | ILIKE,NOT LIKE |
空值 | IS NULL,IS NOT NULL |
多重条件(逻辑运算) | AND,OR,NOT |
3.ORDER BY
用户可以用order by字句对查询结果按照一个或者多个属性列的升序(ASC)或者降序(DESC)排列,
默认值为升序。
select jobName,salary
from the_infor_of_job
where city_Name=‘上海’ AND salary>10000
order by salary ;
4.聚集函数
COUNT(*) 统计元组的个数
COUNT([DISTINCT|ALL]<列名>) 统计一列中值的个数
**SUM([DISTINCT|ALL]<列名>)**计算一列值的总和(此列必须是数值类型)
**AVG([DISTINCT|ALL]<列名>)**计算一列值的平均值(此列必须是数值类型)
**MAX([DISTINCT|ALL]<列名>)**求一列值的最大值
**MIN([DISTINCT|ALL]<列名>)**求一列值的最小值
例如:我要查询一个表中有多少元组
select count(*)
from the_infor_of_job;
select avg(all salary)
from the_infor_of_job;
5.GROUP BY字句
group by字句将查询结果按某一列或多列的值分组,值相等的为一组。
分组的目的是为了细化聚集函数的适用对象。
select city_Name,avg(all salary)
from the_infor_of_job
group by city_Name;