SQL 速查表

非原创,转自Github:enochtangg/quick-SQL-cheatsheet

SQL 语句用法的速查表。



内容

  1. 查找数据的查询
  2. 修改数据的查询
  3. 聚合查询
  4. 连接查询
  5. 视图查询
  6. 修改表的查询



1. 查找数据的查询

SELECT: 用于从数据库中选择数据

  • SELECT * FROM table_name;

DISTINCT: 用于过滤掉重复的值并返回指定列的行

  • SELECT DISTINCT column_name;

WHERE: 用于过滤记录/行

  • SELECT column1, column2 FROM table_name WHERE condition;
  • SELECT * FROM table_name WHERE condition1 AND condition2;
  • SELECT * FROM table_name WHERE condition1 OR condition2;
  • SELECT * FROM table_name WHERE NOT condition;
  • SELECT * FROM table_name WHERE condition1 AND (condition2 OR condition3);
  • SELECT * FROM table_name WHERE EXISTS (SELECT column_name FROM table_name WHERE condition);

ORDER BY: 用于结果集的排序,升序(ASC)或者降序(DESC)

  • SELECT * FROM table_name ORDER BY column;
  • SELECT * FROM table_name ORDER BY column DESC;
  • SELECT * FROM table_name ORDER BY column1 ASC, column2 DESC;

SELECT TOP: 用于指定从表顶部返回的记录数

  • SELECT TOP number columns_names FROM table_name WHERE condition;
  • SELECT TOP percent columns_names FROM table_name WHERE condition;
  • 并非所有数据库系统都支持SELECT TOP。 MySQL 中是LIMIT子句
  • SELECT column_names FROM table_name LIMIT offset, count;

LIKE: 用于搜索列中的特定模式,WHERE 子句中使用的运算符

  • % (percent sign) 是一个表示零个,一个或多个字符的通配符
  • _ (underscore) 是一个表示单个字符通配符
  • SELECT column_names FROM table_name WHERE column_name LIKE pattern;
  • LIKE ‘a%’ (查找任何以“a”开头的值)
  • LIKE ‘%a’ (查找任何以“a”结尾的值)
  • LIKE ‘%or%’ (查找任何包含“or”的值)
  • LIKE ‘_r%’ (查找任何第二位是“r”的值)
  • LIKE ‘a_%_%’ (查找任何以“a”开头且长度至少为3的值)
  • LIKE ‘[a-c]%’(查找任何以“a”或“b”或“c”开头的值)

IN: 用于在 WHERE 子句中指定多个值的运算符

  • 本质上,IN运算符是多个OR条件的简写
  • SELECT column_names FROM table_name WHERE column_name IN (value1, value2, …);
  • SELECT column_names FROM table_name WHERE column_name IN (SELECT STATEMENT);

BETWEEN: 用于过滤给定范围的值的运算符

  • SELECT column_names FROM table_name WHERE column_name BETWEEN value1 AND value2;
  • SELECT * FROM Products WHERE (column_name BETWEEN value1 AND value2) AND NOT column_name2 IN (value3, value4);
  • SELECT * FROM Products WHERE column_name BETWEEN #01/07/1999# AND #03/12/1999#;

NULL: 代表一个字段没有值

  • SELECT * FROM table_name WHERE column_name IS NULL;
  • SELECT * FROM table_name WHERE column_name IS NOT NULL;

AS: 用于给表或者列分配别名

  • SELECT column_name AS alias_name FROM table_name;
  • SELECT column_name FROM table_name AS alias_name;
  • SELECT column_name AS alias_name1, column_name2 AS alias_name2;
  • SELECT column_name1, column_name2 + ‘, ‘ + column_name3 AS alias_name;

UNION: 用于组合两个或者多个 SELECT 语句的结果集的运算符

  • 每个 SELECT 语句必须拥有相同的列数
  • 列必须拥有相似的数据类型
  • 每个 SELECT 语句中的列也必须具有相同的顺序
  • SELECT columns_names FROM table1 UNION SELECT column_name FROM table2;
  • UNION 仅允许选择不同的值, UNION ALL 允许重复

ANY|ALL: 用于检查 WHERE 或 HAVING 子句中使用的子查询条件的运算符

  • ANY 如果任何子查询值满足条件,则返回 true。
  • ALL 如果任何子查询值满足条件,则返回 true。
  • SELECT columns_names FROM table1 WHERE column_name operator (ANY|ALL) (SELECT column_name FROM table_name WHERE condition);

GROUP BY: 通常与聚合函数(COUNT,MAX,MIN,SUM,AVG)一起使用,用于将结果集分组为一列或多列

  • SELECT column_name1, COUNT(column_name2) FROM table_name WHERE condition GROUP BY column_name1 ORDER BY COUNT(column_name2) DESC;

HAVING: HAVING 子句指定 SELECT 语句应仅返回聚合值满足指定条件的行。它被添加到 SQL 语言中,因为WHERE关键字不能与聚合函数一起使用。

  • SELECT COUNT(column_name1), column_name2 FROM table GROUP BY column_name2 HAVING COUNT(column_name1) > 5;



2. 修改数据的查询

INSERT INTO: 用于在表中插入新记录/行

  • INSERT INTO table_name (column1, column2) VALUES (value1, value2);
  • INSERT INTO table_name VALUES (value1, value2 …);

UPDATE: 用于修改表中的现有记录/行

  • UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition;
  • UPDATE table_name SET column_name = value;

DELETE: 用于删除表中的现有记录/行

  • DELETE FROM table_name WHERE condition;
  • DELETE * FROM table_name;



3. 聚合查询

COUNT: 返回出现次数

  • SELECT COUNT (DISTINCT column_name);

MIN() and MAX(): 返回所选列的最小/最大值

  • SELECT MIN (column_names) FROM table_name WHERE condition;
  • SELECT MAX (column_names) FROM table_name WHERE condition;

AVG(): 返回数字列的平均值

  • SELECT AVG (column_name) FROM table_name WHERE condition;

SUM(): 返回数值列的总和

  • SELECT SUM (column_name) FROM table_name WHERE condition;



4. 连接查询

INNER JOIN: 内连接,返回在两张表中具有匹配值的记录

  • SELECT column_names FROM table1 INNER JOIN table2 ON table1.column_name=table2.column_name;
  • SELECT table1.column_name1, table2.column_name2, table3.column_name3 FROM ((table1 INNER JOIN table2 ON relationship) INNER JOIN table3 ON relationship);

LEFT (OUTER) JOIN: 左外连接,返回左表(table1)中的所有记录,以及右表中的匹配记录(table2)

  • SELECT column_names FROM table1 LEFT JOIN table2 ON table1.column_name=table2.column_name;

RIGHT (OUTER) JOIN: 右外连接,返回右表(table2)中的所有记录,以及左表(table1)中匹配的记录

  • SELECT column_names FROM table1 RIGHT JOIN table2 ON table1.column_name=table2.column_name;

FULL (OUTER) JOIN: 全外连接,全连接是左右外连接的并集. 连接表包含被连接的表的所有记录, 如果缺少匹配的记录, 以 NULL 填充。

  • SELECT column_names FROM table1 FULL OUTER JOIN table2 ON table1.column_name=table2.column_name;

Self JOIN: 自连接,表自身连接

  • SELECT column_names FROM table1 T1, table1 T2 WHERE condition;



5. 视图查询

CREATE: 创建视图

  • CREATE VIEW view_name AS SELECT column1, column2 FROM table_name WHERE condition;

SELECT: 检索视图

  • SELECT * FROM view_name;

DROP: 删除视图

  • DROP VIEW view_name;



6. 修改表的查询

ADD: 添加字段

  • ALTER TABLE table_name ADD column_name column_definition;

MODIFY: 修改字段数据类型

  • ALTER TABLE table_name MODIFY column_name column_type;

DROP: 删除字段

  • ALTER TABLE table_name DROP COLUMN column_name;

原文地址:https://www.cnblogs.com/shanzhiming/p/10355743.html

时间: 2024-09-29 01:54:52

SQL 速查表的相关文章

50个数据科学和机器学习速查表【转】

在数据科学领域有成千上万的包和数以百计的函数公式,你虽然不需要掌握所有的这些知识,但是有一个速查表在你的学习中是非常重要的.学习大数据包括对统计学.数学.编程知识(尤其是R.python.SQL)等知识的理解,还需要理解业务来驱动决策.这些表单也许能给你一些帮助. Python的速查表 Python在初学者中非常受欢迎,同样足以支持那些最受欢迎的产品和应用程序,它的设计让你在编程的时候感觉同用英语写作一样自然,Python basics 或者Python Debugger的速查表覆盖了重要的语法

java-Mysql-SQLServer数据类型匹配速查表

java-Mysql-SQLServer数据类型匹配速查表 Mysql ************************************ 当前列 ClassName ColumnType DisplaySize TypeName 0: java.lang.Integer ColumnType:4 11 INTEGER 1: java.lang.Integer ColumnType:-6 4 TINYINT 2: java.lang.String ColumnType:12 0 UNKNO

程序员/设计师能用上的 75 份速查表

75 份速查表,由 vikas 收集整理,包括:jQuery.HTML.HTML5.CSS.CSS3.JavaScript.Photoshop .Git.Linux.Java.Perl.PHP.Python.Ruby.Ruby on Rails.Scala.C#.SQLite.C++.C语言.Ubuntu.WordPress.Node.JS.Oracle.NMAP.Mac OS X.Haskell.Unicode.PostgreSQL.Lisp.Matlab 等. 速查表可能是图片,也可能是 P

程序员/设计师能用上的 75 份速查表(转)

75 份速查表,由 vikas 收集整理,包括:jQuery.HTML.HTML5.CSS.CSS3.JavaScript.Photoshop .git.Linux.Java.Perl.PHP.Python.Ruby.Ruby on Rails.Scala.C#.SQLite.C++.C语言.Ubuntu.WordPress.Node.js.Oracle.NMAP.Mac OS X.Haskell.Unicode.PostgreSQL.Lisp.Matlab 等. 速查表可能是图片,也可能是 P

测试启发法速查表

本文是测试大师Elisabeth Hendrickson的测试启发法速查表. 一.通用启发法 这些启发法绝对适用于任何种类的接口和任何种类的系统. 抽象 剔除模型中的细节.忽略低层级的细枝末节,以此进行简化,让模型可以更少地关注具体细节,而更多地聚焦与概念层面. 例如,对于交互图来说,无需详尽地描述一组通信,你也可以只画一条线,再取个名字来描述这些通信的核心交互即可.如果是在测试邮件客户端,那么在发送邮件时客户端可能要经历如下步骤:连接到服务器.鉴权.传输数据.与其在模型中记录所有步骤,你可以直

windows端口号速查表

windows端口号速查表 1 tcpmux TCP 端口服务多路复用  5 rje 远程作业入口  7 echo Echo 服务  9 discard 用于连接测试的空服务  11 systat 用于列举连接了的端口的系统状态  13 daytime 给请求主机发送日期和时间  17 qotd 给连接了的主机发送每日格言  18 msp 消息发送协议  19 chargen 字符生成服务:发送无止境的字符流  20 ftp-data FTP 数据端口  21 ftp 文件传输协议(FTP)端口

pandas基础命令速查表

pandas基础命令速查表 数据的导入 数据的导出 创建测试对象 数据的查看与检查 数据的选取 数据的清洗 数据的过滤(filter)排序(sort)和分组(group) 数据的连接(join)与组合(combine) 一.数据的导入 pd.read_csv(filename) # 导入csv格式文件中的数据 pd.read_table(filename) # 导入有分隔符的文本 (如TSV) 中的数据 pd.read_excel(filename) # 导入Excel格式文件中的数据 pd.r

社保系列10——返回值速查表

9000 命令执行成功 6006 依据传输模式,所要读取的字节长度错 61xx 正常处理.'xx'表示可以通过后续 GET RESPONSE命令得到的额外数据长度 6281 回送数据可能出错 6282 文件长度<Le 6283 选择文件无效 6284 FCI格式与P2指定的不符 6300 认证失败 63Cx 验证失败,x =0 表示不提供计数器 x !=0 表示重试次数 6581 EEPROM损坏,导致卡锁定 6700 Lc或Le长度错 6900 无信息提供 6901 命令不接受(无效状态) 6

【转】游戏程序员的数学食粮05——向量速查表

原文:http://gad.qq.com/program/translateview/7172922 翻译:王成林(麦克斯韦的麦斯威尔)  审校:黄秀美(厚德载物) 这是本系列大家盼望已久的第五篇.如果你对向量了解不多,请先查看本系列的前四篇文章:介绍,向量基础,向量的几何表示,向量的运算. 这篇速查表会列举一些游戏中常见的几何问题,以及使用数学向量解决它们的方法. 基本向量运算的完整表单 首先,先复习一下. 首先我假设你有一个可用的向量类.它的功能大部分集中在2D上,但是3D的原理相同.差别只