3.4数据查询——MySQL

正在连载中……

MYSQL系列文章目录

3.2 学生-课程数据库
3.3.1 模式的定义(创建)与删除
3.3.2 基本表的定义(创建)、删除与修改
3.3.3 索引的建立与删除

3.5 数据更新(添加数据、修改数据、删除数据)


数据查询-目录



select * from <表名>;

select * from student;
select * /*列*/
from student;/*表*/
/*行*/


3.4.1 单表查询

单表查询是指仅涉及一个表的查询。

1. 选择表中的若干列

选择表中的全部或部分列即关系代数的投影运算。

1.1 查询指定列

在很多情况下,用户只对表中的一部分属性列感兴趣,这时可以通过在select子句的<目标列表达式>中指定要查询的属性列。
[例 3.16] 查询全体学生的学号与姓名。

SELECT Sno,Sname
FROM Student;

该语句的执行过程:
从Student表中取出一个元组,取出该元组在属性Sno和Sname上的值,形成一个新的元组作为输出。对Student表中所有元组做相同的处理,最后形成一个结果关系作为输出。

[例 3.17] 查询全体学生的姓名、学号、所在系。

SELECT Sname,Sno,Sdept
FROM Student;

<目标列表达式>中各个列的先后顺序可以与表中的顺序不一致。用户可以根据应用的需要改变列的显示顺序。先列出姓名,在列出学号和所在系。

1.2 查询全部列

将表中的所有属性列都选出来有两种方法:
1.在select关键字后列出所有列名;
2.如果列的显示顺序与其在基表中的顺序相同,也可以简单地将<目标列表达式>指定为*

SELECT Sno,Sname,Ssex.Sage,Sdept
FROM Student;
//等价于
SELECT *
FROM Student;

1.3 查询经过计算的值(连载到这里……

2. 选择表中的若干元组

2.1 消除表中的若干元组

2.2 查询满足条件的元组

2.2.1 比较大小
2.2.2 确定范围
2.2.3 确定集合
2.2.4 字符匹配
2.2.5 涉及空值的查询
2.2.6 多重条件的查询

3. order by 子句

4. 聚集函数

函数意义
————————————————————————————————————————
count(*)统计元组个数对元组进行计数,某个元组的一个或部分列取空值不影响count的统计结果。
count( [all | distinct] <列名>)统计一列中值的个数跳过空值而只处理非空值
sum( [all | distinct] <列名>)计算一列值的总和(此列必须是数值型)跳过空值而只处理非空值
avg( [all | distinct] <列名>)计算一列值的平均值(此列必须是数值型跳过空值而只处理非空值
max( [all | distinct] <列名>)求一列值中的最大值跳过空值而只处理非空值
min( [all | distinct] <列名>)求一列值中的最小值跳过空值而只处理非空值

如果指定distinct短语,则表示在计算时要取消指定列中的重复值。如果不指定distinct短语或指定all短语(all为默认值),则表示不取消重复值。
注意:where子句是不能用聚集函数作为条件表达式的,聚集函数只能用于select子句group by中的having子句

5. group by 子句

3.4.2 连接查询

1. 等值与非等值连接查询

2. 自身连接

3. 外连接

4. 多表连接

3.4.3 嵌套查询

1. 带有 in 谓词的子查询

2. 带有比较运算符的子查询

3. 带有any(some)或all谓词的子查询

4. 带有exists谓词的子查询

3.4.4 集合查询

3.4.5 基于派生表的查询

3.4.6 select语句的一般格式

1. 目标列表达式的可选格式

1.1 *

1.2 <表名>.*

1.3 count([all | distinct] *)

1.4 [<表名>.] <属性列名表达式> [,[<表名>.] <属性列名表达式>] …

<属性列名表达式>可以是由属性列、作用与属性列的聚集函数和常量的任意算术运算(+、-、*、/)组成的运算公式。

2. 聚集函数的一般格式

2.1 count([all | distinct] <列名>)

2.2 sum([all | distinct] <列名>)

2.3 avg([all | distinct] <列名>)

2.4 max([all | distinct] <列名>)

2.5 min([all | distinct] <列名>)

3. where子句的条件表达式的可选格式

3.1

3.1.1 <属性列名>θ <属性列名>
3.1.2 <属性列名>θ <常量>
3.1.2 <属性列名>θ [ANY | ALL] (SELECT 语句)

3.2

3.2.1 <属性列名> [NOT] BETWEEN <属性列名> AND <属性列名>
3.2.2 <属性列名> [NOT] BETWEEN <常量> AND <常量>
3.2.3 <属性列名> [NOT] BETWEEN (SELECT 语句) AND (SELECT 语句)

3.3

3.3.1 <属性列名> [not] in (<值1> [,<值2>] …)
3.3.2 <属性列名> [not] in (select 语句)

3.4 <属性列名> [not] like <匹配串>

3.5 <属性列名> is [not] null

3.6 [not] exists(select语句)

3.7

3.7.1 <条件表达式> AND <条件表达式> [AND <条件表达式>…]
3.7.2 <条件表达式> AND <条件表达式> [OR <条件表达式>…]
3.7.3 <条件表达式> OR <条件表达式> [AND <条件表达式>…]
3.7.4 <条件表达式> OR <条件表达式> [OR <条件表达式>…]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值