• 关系数据库,基于关系模型,使用关系(表)存储数据,同时定义了完整性约束。常见的关系数据库系统包括:Oracle、MySQL/MariaDB、SQL Server、PostgreSQL 等等。
  • SQL,结构化查询语言,访问和操作关系数据库的标准语言。SQL 具有声明性,是一种面向集合的编程语言。

1、单表查询

SELECT col1, col2 AS c2 -- 列别名 FROM t; -- 基本查询

SELECT * FROM t; -- 查询所有字段

SELECT col1, col2, … FROM t WHERE conditions; -- 过滤条件

SELECT col1, col2, … FROM t ORDER BY col1 ASC, col2 DESC; -- 排序

SELECT col1, col2, … FROM t ORDER BY col1 ASC, col2 DESC OFFSET m ROWS FETCH FIRST n ROWS ONLY; -- 限定数量
LIMIT n OFFSET m; -- 非标准实现 SELECT col1, col2, agg_fun() -- 聚合函数 FROM t GROUP BY col1, col2 -- 分组汇总
HAVING conditions; -- 分组后过滤

2、多表连接

SELECT t1.col1, t2.col2, … FROM t1 INNER JOIN t2 ON conditions; -- 内连接 SELECT t1.col1, t2.col2, … FROM t1 LEFT JOIN t2 ON conditions; -- 左连接

SELECT t1.col1, t2.col2, … FROM t1 RIGHT JOIN t2 ON conditions; -- 右连接

SELECT t1.col1, t2.col2, … FROM t1 FULL JOIN t2 ON conditions; -- 全连接

SELECT t1.col1, t2.col2, … FROM t1 CROSS JOIN t2 ON conditions;-- 交叉连接

SELECT a.col1, b.col2, … FROM t1 a -- 表别名 JOIN t1 b ON conditions; -- 自连接

3、集合运算

SELECT col1, col2, … FROM t1 UNION [ALL]

SELECT c1, c2, … FROM t2; -- 并集运算

SELECT col1, col2, … FROM t1 INTERSECT SELECT c1, c2, … FROM t2; -- 交集运算

SELECT col1, col2, … FROM t1 EXCEPT -- MINUS

SELECT c1, c2, … FROM t2; -- 差集运算

4、子查询

SELECT col1, (subquery) AS c2 -- 标量子查询 FROM t;

SELECT col1, col2, … -- 行子查询 FROM t WHERE (col1, col2) = (subquery);

SELECT t1.col1, t2.c2, … FROM t1 JOIN (subquery) t2 -- 表子查询 ON conditions;

SELECT t1.col1, t1.col2, … FROM t1 WHERE EXISTS ( -- 关联子查询 SELECT 1FROM t2 WHERE t2.c1 = t1.col1);

5、数据操作

INSERT INTO t(col1, col2, …) VALUES (val1, val2, …); -- 插入单条数据

INSERT INTO t(col1, col2, …) SELECT …; -- 插入查询结果 

UPDATE t SET col1 = val1, col2 = val2 WHERE conditions; -- 更新数据

DELETE FROM t WHERE conditions; -- 删除数据 

MEGRE INTO t1 USING t2 ON (condition) WHEN MATCHED THEN UPDATE SET col1 = val1, col2 = val2, ... WHEN NOT MATCHED THEN INSERT (col1, col2, ...) VALUES (val1, val2, ...); -- 合并数据

6、数据定义

CREATE TABLE t ( col1 INT NOT NULL PRIMARY KEY, col2 VARCHAR(50) NOT NULL, col3 DATE ); -- 创建表

CREATE TABLE t(col1, col2, …) SELECT … ; -- 基于查询结果创建表

ALTER TABLE t ADD col3 INT; -- 增加字段

ALTER TABLE t RENAME COLUMN col1 TO c1;

ALTER TABLE t DROP COLUMN col1;

DROP TABLE t; -- 删除表

TRUNCATE TABLE t; -- 删除表中所有数据

CREATE VIEW v AS SELECT …; -- 创建视图

DROP VIEW v; -- 删除视图

CREATE [UNIQUE] INDEX idx ON t(col1, col2); -- 创建索引

DROP INDEX idx; -- 删除索引

扩展内容

• 查询条件包括:=、!=、<>、<、<=、>、>=、BETWEEN、IN、EXISTS、LIKE、AND、OR、NOT、IS [NOT] NULL、ANY、ALL

• 完整性约束包括:PRIMARY KEY、NOT NULL、FOREIGN KEY、CHECK、UNIQUE、DEFAULT。

• 常见聚合函数:AVG、COUNT、SUM、MIN、MAX。

SQL 速查表的更多相关文章

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

    java-Mysql-SQLServer数据类型匹配速查表 Mysql ************************************ 当前列 ClassName ColumnType Di ...

  2. [翻译]Django速查表

    原文在此:https://code.djangoproject.com/wiki/DjangoCheatSheet Django速查表Django教程已经非常好了.这个速查表的作用是创建一个快速开始指 ...

  3. Tools - 速查表与备忘单(Cheat Sheet)

    Cheat Sheets Rico's cheatsheets Cheat-Sheets.org Python Python Cheat sheet Python Programming Cheat ...

  4. ABP问题速查表

    如果你领导要让你一夜之间掌握ABP,并且用ABP撸一个项目出来,你很可能很快速的过了一遍ABP文档就马上动手干活了.那么这篇文章就很适合你. 这篇文章列出了很多ABP新手问的问题和解答.注:有些同学问 ...

  5. [功能集锦] 003 - 一键生成mysql数据字典/数据库速查表

    写在前面: 因为工作时候经常遇到半路接手项目的情况,由于年代久远,数据库字典这块经常缺失.故写此篇,以便复用,也希望对大家有点帮助. 随笔内容不高级,如有不妥,不吝指正. ps:有另一篇详细随笔可以参 ...

  6. Github标星3K+,热榜第三,一网打尽数据科学速查表

    这几天,Github上的趋势榜一天一换. 这次一个名为 Data-Science--Cheat-Sheet 的项目突然蹿到了第三名. 仔细一看,确实干货满满.来,让文摘菌推荐一下~ 这个项目本质上是备 ...

  7. 简明 Git 命令速查表(中文版)

    原文引用地址:https://github.com/flyhigher139/Git-Cheat-Sheet/blob/master/Git%20Cheat%20Sheet-Zh.md在Github上 ...

  8. .htaccess下Flags速查表

    Flags是可选参数,当有多个标志同时出现时,彼此间以逗号分隔. 速查表: RewirteRule 标记 含义 描述 R Redirect 发出一个HTTP重定向 F Forbidden 禁止对URL ...

  9. Markdown 语法速查表

      Markdown 语法速查表 1 标题与文字格式 标题 # 这是 H1 <一级标题> ## 这是 H2 <二级标题> ###### 这是 H6 <六级标题> 文 ...

随机推荐

  1. golang go语言 实现链表

    package main import ( "errors" "fmt" "strconv" ) type List struct { Le ...

  2. 「面试」拿到B站的意向书

    此次B站服务端开发面试之旅可谓惊险,不过通过对大部分面试题套路的掌握,不出意外还是拿下了,下面我们来看看这些骚题是不是常见的不能再常见的了.这些面试题看了就能面上?当然不是,只是通过这些题让自己知道所 ...

  3. Mysql中把varchar类型的字段转化为tinyint类型的字段

    因为之前不知道tinyint类型的用法,所以将一些状态属性字段类型设置成了varchar类型,然后用"是"和"否"来判断状态 后来了解到了tinyint,就想试 ...

  4. Solon详解(十)- 怎么用 Solon 开发基于 undertow jsp tld 的项目?

    Solon详解系列文章: Solon详解(一)- 快速入门 Solon详解(二)- Solon的核心 Solon详解(三)- Solon的web开发 Solon详解(四)- Solon的事务传播机制 ...

  5. selenium学习之基本操作(一)

    通过selenium的使用可以驱动浏览器来模拟加载网页,简单定位元素和获取对应的数据:# find_elements_by_id #(根据id属性值获取元素列表)# find_elements_by_ ...

  6. 深入浅出学Java-HashMap

    一.概要 HashMap在JDK1.8之前的实现方式 数组+链表,但是在JDK1.8后对HashMap进行了底层优化,改为了由 数组+链表+红黑树实现,主要的目的是提高查找效率. 如下图所示: JDK ...

  7. 这就是小学生也会用的四则计算练习APP吗?- by软工结对编程项目作业

    结对编程项目 软件工程 这就是链接 作业要求 这就是链接 作业目标 熟悉在未结对情况下如何结对开发项目 Github与合作者 合作者(学号): 区德明:318005422 虚左以待 Github链接: ...

  8. Java虚拟机系列——检视阅读

    Java虚拟机系列--检视阅读 参考 java虚拟机系列 入门掌握JVM所有知识点 2020重新出发,JAVA高级,JVM JVM基础系列 从 0 开始带你成为JVM实战高手 Java虚拟机-垃圾收集 ...

  9. 2020 CSP-J 初赛答案及解析

    部分咕咕咕的明天一定 单项选择 A A D 解析 : 与z的都是假 C 解析 : $ \frac{2048\times1024\times32}{8\times1024\times1024}=8$ C ...

  10. Java 8 有多牛逼?打破一切你对接口的认知!

    前段时间面试了一个 39 岁的程序员,结果不是很理想,没看过的点击这里阅读. 最近也面试一些 Java 程序员,不乏工作 4.5 年经验的,当我问他一些 Java 8 的新特性时,大多却答不上来. 比 ...