【笔记】MySQL常用语句

本博客为博主查阅大量资料后整理原创,虽水仍不易,如需转载,请附上本文链接https://blog.csdn.net/JasonLeeeeeeeeee/article/details/82319756,谢谢
本文若有不足之处可以交流沟通,互相学习
本文是博主读了《SQL必知必会》后,觉得有用的一些地方特地拿出来汇成一篇博客,当笔记用吧。书中对于常见的几种数据库的语法都有提到,本文只罗列了MySQL语句。

SELECT

检索不同的值:

SELECT DISTINCT vend_id FROM Products;
DISTINCT关键字作用于所有的列,不仅仅是跟在其后的那一列。例如,SELECT DISTINCT vend_id, prod_price, 因为指定的两列不完全相同,所以所有的行都会被检测出来。

限制结果:

SELECT prod_name FROM Products LIMIT 5;
表示返回的值是前5行的结果。用关键字LIMIT来限制最多返回多少行。

SELECT prod_name FROM Products LIMIT 5 OFFSET 5;
LIMIT带的OFFSET指定从第几行开始。注意第一个被检索的行是第0行,因此LIMIT 1 OFFSET 1 会返回检索第二行。对于这条语句MySQL还有一个简化版的语句,例如LIMIT 4 OFFSET 3的语句,简化版为LIMIT 3,4 ,其中逗号前为OFFSET值,逗号后为LIMIT值

使用注释:

– 这是嵌在SQL语句行后的注释符; # 表示一整行都是注释; /* 范围内的行都是注释 */。

排序:

SELECT prod_id, prod_price, prod_name FROM Products ORDER BY prod_price, prod_name;
上句表示先按照prod_price进行升序,然后按照prod_name进行升序排序;

SELECT prod_id, prod_price, prod_name FROM Products ORDER BY 2,3;
表示先按照第二个字段prod_price进行升序,然后按照prod_name升序进行排序,注意当根据不出现在SELECT清单中的列进行排序时,不能用此法。相对列的位置和实际列名混合使用。

SELECT prod_id, prod_price, peod_name FROM Products ORDER BY prod_price DESC, prod_name;
表示先按照prod_price进行降序,然后按照prod_name进行升序排序。如果想在多个列上进行降序排序,必须对每一列都指定关键字DESC。

在排序的时候,A与a默认为是相同大小。

WHERE过滤数据

当同时使用 ORDER BY 和 WHERE 子句时,先写 WHERE,再写 ORDER BY,否则会报错。
条件操作符 <> 与 != 相同, !< 相当于 >=。

IN 在 WHERE 子句中用来指定要匹配值的清单的关键字,功能与OR相当。
例如 SELECT prod_price, prod_name FROM Products WHERE vend_id IN (‘DLL01’,’BRS01’);相当于SELECT prod_price, prod_name FROM Products WHERE vend_id = ‘DLL01’ OR vend_id = ‘BRS01’;

IN的优点:更清楚,更直观;求值顺序更容易管理;IN操作符一般比一组OR操作符执行得更快;IN可以包含其他的SELECT语句。

LIKE过滤数据

SELECT prod_id, prod_name FROM Products WHERE prod_name LIKE ‘Fish%’;
表示搜索prod_name字段以 ‘Fish’ 开头的,后续任意长度字符的行。

拼接字段

SELECT Concat(vend_name, ‘(‘, vend_country, ‘)’) AS vend_title FROM Vendors ORDER BY vend_name;
将 vend_name(vend_country) 拼接起来,并进行重新命名为 vend_title。
在SELECT之后也可进行加减乘除的运算。

函数

函数说明
NOW()获取当前日期
YEAR()从日期中提取年份
SUBSTRING()提取字符串的子串
LEFT()返回字符串左边的字符
RIGHT()返回字符串右边的字符
LENGTH()返回字符串的长度
LOWER()将字符串转换为小写
UPPER()将字符串转换为大写
SOUNDEX()返回字符串的SOUNDEX值,用来查找发音相似的字符串
LTRIM()去掉字符串左边的空格
RTRIM()去掉字符串右边的空格
TRIM()去掉字符串两边的空格
SIN()返回一个角度的正弦
COS()返回一个角度的余弦
TAN()返回一个角度的正切
ABS()返回一个数的绝对值
EXP()返回一个数的指数值
SQRT()返回一个数的平方根
PI()返回圆周率
CONVERT()数据类型转换
AVG()返回某列的平均值
COUNT()返回某列的行数
MAX()返回某列的最大值
MIN()返回某列的最小值
SUM()返回某列值之和

创建和过滤分组

SELECT cust_id, COUNT() AS orders FROM Orders GROUP BY cust_id HAVING COUNT() >= 2;
这条语句是先按照cust_id进行分组统计每个客户id的订单量,然后筛选订单量至少为2的客户id,最后输出客户id和该客户的订单量。

HAVING 和 WHERE 的区别:HAVING过滤分组,而WHERE过滤行;HAVING是在分组后进行过滤,而WHERE是在分组前进行过滤,也就是说WHERE排除的行不在分组中。

SELECT子句顺序

子句说明是否必须使用
SELECT返回的列或表达式
FROM从中检索的数据表仅在从表中选择数据时使用
WHERE行级过滤
GROUP BY分组说明仅在按组聚集时使用
HAVING组级过滤
ORDER BY输出排序顺序

联接表

SELECT vend_name, prod_name, prod_price
FROM Vendors INNER JOIN Products
ON Vendors.vend_id = Products.vend_id;
在使用这种语法时,联结条件用特定的ON子句而不是WHERE子句。

SELECT Customers.cust_id, Orders.order_num
FROM Customers LEFT OUTER JOIN Orders
ON Customers.cust_id = Orders.cust_id;
这里与上条语句不同的是,这里是外联接,上面是内联接。外联结包括没有关联行的行,也就是该语句的返回中不但包括左右有联接的行,而且包括其中左表中其他未找到联接行的行。如果想返回全部Orders表内容,可以调换两个表的位置或者将关键字LEFT改为RIGHT。

参考文献:
SQL必知必会 Ben Forta

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值