单表无条件查询
1.SELECT 语句
SELECT [ALL | DISTINCT] 表达式列表
FROM 表名
[ORDER BY 表达式列表 [ASC | DESC]]
[LIMIT[起始记录],返回的行数]
说明:
- 多个表达式之间用逗号隔开。 表达式可以是常量、字段、函数,或者是常量、字段、酒数与运算符共同构成的式子。
- 如果查找表中的所有字段,则表达式列表可以用“*”表示。
- 表达式可以用别名,定义别名有以下两种方式。
(1)第一种方式,语法格式如下:
表达式 别名
(2)第二种方式,语法格式如下:
表达式 AS 别名
别名可以使用引号定界,也可以不定界。 当别名中含有空格等特殊字符时,必须定界。
- AlL是默认选项,表示输出查询结果中的所有行,包括重复行。
- DISTINCT 表示要去掉查询结果中的重复行。
2. FROM子句
FROM子句用于选择查询的数据表,语法格式如下:
FROM 表名
3. ORDERBY子句
ORDER BY 子句用于对查询结果排序,语法格式如下:
[ORDER BY 表达式列表[ASC | DESC]]
- ASC表示升序,DESC表示降序,ASC是默认选项。
- 升序排序时,空值排在前面:降序排序时,空值排在后面。
4. LMIT子句
LIMIT 子句用于限制返回行的数量, 语法格式如下:
LIMIT [起始记录,]返回的行数]
说明:
- 读子句后面可以跟两个参数, 第一个参数表示起始记录,如果省略此参数,则表示从第 一行开始返回 (行号从0开始计数),第二个参数表示返回的行数。
例子
~假设我们现有一张存储 学生信息的数据表(stuinfo),在此表上我们进行简单的无条件查询~
1.查询所有学生的基本信息
代码及结果如下:
SELECT *
FROM stuinfo;
2.查询所有学生的学号和姓名
代码及结果如下:
SELECT stuno,stuname
FROM stuinfo;
*3.查询年龄最小的两位学生的学号、姓名及出生日期
分析:年龄越小,出生日期越大;所以要把出生日期按降序排序,排在第一二行的就是年龄最小的学生,再用LIMIT语句返回前两行
代码及结果如下:
SELECT stuno,stuname,stubirthday
FROM stuinfo
ORDER BY stubirthday DESC
LIMIT 2;
~假设我们现有一张存储 学生成绩信息的数据表(stumarks),在此表上我们进行简单的无条件查询~
4.查询至少选修了一门课程的学生的学号
表的结构内容如下:
代码及结果如下:
SELECT stuno
FROM stumarks;
重复数据过多?
在SELECT关键字后面使用DISTINCT关键字,可以去掉重复行。代码及结果如下:
SELECT DISTINCT stuno
FROM stumarks;
5.查询表中所有的学号及成绩+5分后的结果,列名用中文别名
代码及结果如下:
SELECT stuno'学号',stuscore+5 AS '成绩'
FROM stumarks;
* 6.查询所有学生的选课记录,先按课程号升序排序,课程号相同的按成绩降序排序
分析:排序用ORDER BY语句
代码及结果如下:
SELECT *
FROM stumarks
ORDER BY cno,stuscore DESC;
~over~