期末自主复习 之 简单数据查询(一)

单表无条件查询

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;

942c9ae0aa3c45f6946b9e28302ac9e1.png

2.查询所有学生的学号和姓名

代码及结果如下:

SELECT stuno,stuname
FROM stuinfo;

1da0997a91204be0a9a8c1ef2c665ced.png

*3.查询年龄最小的两位学生的学号、姓名及出生日期

分析:年龄越小,出生日期越大;所以要把出生日期按降序排序,排在第一二行的就是年龄最小的学生,再用LIMIT语句返回前两行

代码及结果如下:

SELECT stuno,stuname,stubirthday
FROM stuinfo
ORDER BY stubirthday DESC
LIMIT 2;

a1b57d5c5e874c15aa326c5f3ba74812.png


~假设我们现有一张存储 学生成绩信息的数据表(stumarks),在此表上我们进行简单的无条件查询~


4.查询至少选修了一门课程的学生的学号

表的结构内容如下:

代码及结果如下:

SELECT stuno
FROM stumarks;

c78cc7a966884f448536fc644e791072.png

重复数据过多?

在SELECT关键字后面使用DISTINCT关键字,可以去掉重复行。代码及结果如下:

SELECT DISTINCT stuno
FROM stumarks;

5be8490994cb4efaa9b3c5d84b29fe3e.png

5.查询表中所有的学号及成绩+5分后的结果,列名用中文别名

代码及结果如下:

SELECT stuno'学号',stuscore+5 AS '成绩'
FROM stumarks;

ea6eaf4399db47b195d7e24aac5b0d67.png

* 6.查询所有学生的选课记录,先按课程号升序排序,课程号相同的按成绩降序排序

分析:排序用ORDER BY语句

代码及结果如下:

SELECT *
FROM stumarks
ORDER BY cno,stuscore DESC;

a87feab46b6f483caeddf4dcd354422c.png


~over~

  • 51
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值