select字句
数据查询是数据库中最常见的操作,SQL语言通过select语句来实现查询,由于select语句的结构较为复杂,为了更加清楚地理解select语句,下面所示的语法结构将省略细节
select 字句1
from 字句2
where 表达式1
group by 子句3
having 表达式2
order by 字句4
union 运算符
limit [m,]n
into outfile 输出文件名;
功能说明如下
select 字句:指定查询结果中需要返回的值
from 字句:指定从其中检索行的表或试图
where 表达式:指定查询的搜索条件
group by 字句:指定查询结果的分组条件
having 表达式:指定分组或集合的查询条件
order by 字句:指定查询结果的排序方法
union 运算符:将多个select语句查询结果组合为一个结果集,该结果集包含联合查询中所有查询的全部行
limit [m,]n :指定输出记录的范围
into outfile:输出文件名
单表无条件数据查询
语法格式
select all|distinct <选项> <as <显示列名>> ,<选项> <as <显示列名> [....]>
from <表名|视图名> [limit [m,]n];
说明
all:表示输出所有记录,包括重复记录,默认值为all
distinct:表示查询结果中去掉重复值
limit n:返回结果集中的前n行,加m,表示从表的第m行开始,返回查询结果集中的n行,m从0开始,n的取值范围由表中的记录数决定
选项:查询结果集中的输出列,选项可为字段名、表达式或函数。用 * 表示表中的所有字段。若选项为函数或表达式,则系统自动给出输出的列名,不是原字段名,故用as重命名
显示列名:在输出结果中,设置选项显示的列名。用引号定界或不定界
表名|试图:表示查询的数据源,可以是表或视图
实例
查询全体学生的学号和姓名
select sno,sname
from student;
查询全体学生的姓名、学号、所在系
select sname,sno,sdept
from student;
查询选修了课程的学生学号
select distinct sno
from sc;
查询全体学生的详细记录
select *
from student;
输出学生表前10条记录
select *
from student limit 10;
输出学生表第2条记录后的5条记录
select *
from student limit 2,5;
查询全体学生的姓名及年龄
select sname,year(curdate())-year(sbirthday) 当前年份减去出生年份
from student;