首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >轻松理解sql语句

轻松理解sql语句

作者头像
西柚dzh
发布2022-06-09 16:02:05
发布2022-06-09 16:02:05
4050
举报
文章被收录于专栏:dcmickey小站dcmickey小站

看个实例

代码语言:javascript
复制
SELECT  Amount,PackageNum,Amount*PackageNum as tes FROM  StudentAccount order by tes desc ;

SELECT  Amount,PackageNum,Amount*PackageNum as tes FROM  StudentAccount order by ReAmount desc ;

SELECT  Amount,PackageNum,Amount*PackageNum as tes FROM  StudentAccount order by 1 desc ;

SELECT  Amount,PackageNum,Amount*PackageNum as tes FROM  StudentAccount order by 4 desc ;

思考下,这四个sql执行结果如何呢?

1.SELECT Amount,PackageNum,Amount*PackageNum as tes FROM StudentAccount order by tes desc ; //第一个sql执行成功,结果是按照tes字段进行的排序undefined2.SELECT Amount,PackageNum,Amount*PackageNum as tes FROM StudentAccount order by ReAmount desc ; //第二个sql执行成功,结果是按照ReAmount字段进行的排序(前提是表中有这个字段)undefined3.SELECT Amount,PackageNum,Amount*PackageNum as tes FROM StudentAccount order by 1 desc ; //第三个sql执行成功,结果是按照第一个字段amount进行的排序undefined4.SELECT Amount,PackageNum,Amount*PackageNum as tes FROM StudentAccount order by 4 desc ; //第四个sql执行失败,结果是不存在第4列-->Unknown column '4' in 'order clause'

这是不是说明了 order by 中的列是建立在select的字段上进行的,且select中隐藏的字段也是可以参与orderby 的

引入正文

  1. SQL 是一种声明式语言

SQL 语言是为计算机声明了一个你想从原始数据中获得什么样的结果的一个范例,而不是告诉计算机如何能够得到结果。sql的执行引擎会根据你声明的数据结果去获取对应的数据

  1. SQL 的语法并不按照语法顺序执行

SQL 语句的语法顺序是:

代码语言:javascript
复制
SELECT[DISTINCT]
FROM
WHERE
GROUP BY
HAVING
UNION
ORDER BY

执行顺序

代码语言:javascript
复制
FROM
WHERE
GROUP BY
HAVING
SELECT
DISTINCT
UNION
ORDER BY

注意:

并非所有的数据库对 SQL 语句使用相同的解析方式。如 MySQL、PostgreSQL和 SQLite 中就不会按照上面第二点中所说的方式执行。


版权属于:dingzhenhua

本文链接:https://cloud.tencent.com/developer/article/2019192

转载时须注明出处及本声明

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-05-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 看个实例
  • 引入正文
  • 注意:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档