ksweb mysql 数据库6_MySQL (六)数据库的查询

继续上一篇中的问题【常用的Select选择语句】二、【 Select 语句之 from 子句的使用 】1、【原理说明】前面介绍了使用SELECT子句选择列,本小节讨论SELECT查询的对象(即数据源)的构成形式。先来看看下面的这个例子:usexscjselect姓名,专业名,总学分from xs;(1)实际上,这句话的逻辑是: select 子句指定了现在要进行选择操作了,但是对哪个表进行操作呢?...
摘要由CSDN通过智能技术生成

继续上一篇中的问题

【常用的Select选择语句】

二、【 Select 语句之 from 子句的使用 】

1、【原理说明】

前面介绍了使用SELECT子句选择列,本小节讨论SELECT查询的对象(即数据源)的构成形式。先来看看下面的这个例子:

usexscjselect姓名,专业名,总学分from xs;

(1)实际上,这句话的逻辑是: select 子句指定了现在要进行选择操作了,但是对哪个表进行操作呢?被操作的表有from子句指定,换句话说:对于select语句来说,首先应该由from子句指定操作数据源(虽然from子句位于select之后)

(2)还有一个问题值得注意的是:from子句的执行结果实际上是一个临时表,比如上面的from xs 语句 实际上生成了一张和源xs表一样的临时表,所有的select语句中的子句的操作都会在from这张临时表上进行操作

(3)from子句的语法格式为:

FROM table_reference [, table_reference]…

其中,table_reference:

tbl_name [[AS] tbl_name_alias ] [{USE | IGNORE | FORCE} INDEX (key_list)] /*查询表*/

| join_table /*连接表*/

说明:table_reference指出了要查询的表或视图。

●  {USE | IGNORE | FORCE} INDEX:USE INDEX告知MySQL选择一个索引来查找表中的行,IGNORE INDEX告知MySQL不要使用某些特定的索引,FORCE INDEX的作用接近USE INDEX(key_list),只有当无法使用一个给定的索引来查找表中的行时,才使用表扫描。

●  tbl_name为要查询的表名,与列别名一样,可以使用AS选项为表指定别名,tbl_name_alias为表指定的别名。表别名主要用在相关子查询及连接查询中。如果FROM子句指定了表别名,这条SELECT语句中的其他子句都必须使用表别名来代替原始的表名。当同一个表在SELECT语句中多次被提到的时候,就必须要使用表别名来加以区分。

这句话什么意思呢?

也就是说:如果我们在from子句中为一张临时表(或者一张临时的连接表中的子表)指定了别名的话,那么我们在select语句中再提到对应的表名的时候,就必须使用这个别名

为什么呢?

实际上,这是非常的明显的,就像上面说的一样,select语句的所有的操作都是在由from子句生成的临时表上进行操作的,与源表没有任何的关系,所以当from为表起了一个别名的话,select语句中当让要使用这个别名才正确呀!如下面这个例子:

假如我们已经创建了两张表

student1

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值