前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SQL 语法面试备忘录,建议收藏!

SQL 语法面试备忘录,建议收藏!

作者头像
数据STUDIO
发布2021-10-27 10:18:52
1.1K0
发布2021-10-27 10:18:52
举报
文章被收录于专栏:数据STUDIO数据STUDIO

大家好,我是云朵君!

在这个越来越卷的行当——数据科学,其找工作面试必然难以驾驭。而它的多学科领域性质决定了你需要翻阅大量材料才能感觉准备充分,而这很可能会让你不知所措,无从下手。

在这里,云朵君总结了MySQL的大多数查询语法,并将其写成备忘录的形式,希望这可以帮助读者轻松应对数据科学面试。这里强烈建议你收藏,在面试前可以快速找出以临时抱佛脚。

快速查看

◎ 查找数据查询 ◎ 修改数据查询 ◎ 报告查询 ◎ 表连接查询 ◎ 视图查询 ◎ 修改表查询 ◎ 创建表查询

查找数据查询

SELECT

用于从数据库中选择数据

代码语言:javascript
复制
SELECT * FROM table_name;

DISTINCT

过滤掉重复值并返回指定列的行

代码语言:javascript
复制
SELECT DISTINCT column_name;

WHERE

用于过滤记录/行

代码语言:javascript
复制
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

用于按升序或降序对结果集进行排序

代码语言:javascript
复制
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

用于指定从表顶返回的记录数

代码语言:javascript
复制
SELECT TOP number columns_names 
FROM table_name WHERE condition;

SELECT TOP percent columns_names 
FROM table_name WHERE condition;

不是所有的数据库系统都支持SELECT TOP。与MySQL等价的是LIMIT子句

代码语言:javascript
复制
SELECT column_names 
FROM table_name LIMIT offset, count;

LIKE

在 WHERE 子句中用于搜索列中特定模式的运算符

◎ %(百分号)是代表零、一个或多个字符的通配符 ◎ _(下划线)是代表单个字符的通配符

代码语言:javascript
复制
SELECT column_names 
FROM table_name 
WHERE column_name 
LIKE pattern;

LIKE 'a%'(查找任何以“a”开头的值) LIKE '%a'(查找任何以“a”结尾的值) LIKE '%or%'(查找任何位置有“or”的值) LIKE '[ac]%'(查找以“a”、“b”或“c”开头的任何值)

IN

允许您在 WHERE 子句中指定多个值的运算符

◎ 本质上,IN 运算符是多个 OR 条件的简写

代码语言:javascript
复制
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

运算符选择给定范围内的值

代码语言:javascript
复制
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

字段中没有值的值

代码语言:javascript
复制
SELECT * FROM table_name 
WHERE column_name IS NULL;
		
SELECT * FROM table_name 
WHERE column_name IS NOT NULL;

AS

别名用于为表或列分配临时名称

代码语言:javascript
复制
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 语句的结果集

◎ UNION 中的每个 SELECT 语句必须具有相同的列数 ◎ 列必须具有相似的数据类型 ◎ 每个 SELECT 语句中的列也必须按相同顺序排列 ◎ UNION运算符只选择不同的值,UNION ALL将允许重复

代码语言:javascript
复制
SELECT columns_names FROM table1 
UNION 
SELECT column_name FROM table2;

INTERSECT

集合运算符,用于返回两个 SELECT 语句共有的记录

◎ 一般使用和上面UNION一样的方式

代码语言:javascript
复制
SELECT columns_names FROM table1 
INTERSECT 
SELECT column_name FROM table2;

EXCEPT

集合运算符用于返回第一个 SELECT 语句中第二个 SELECT 语句中未找到的所有记录

◎ 一般使用和上面UNION一样的方式

代码语言:javascript
复制
SELECT columns_names FROM table1 
EXCEPT 
SELECT column_name FROM table2;

ANY|ALL

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

◎ 该ANY如有子查询值满足条件运算符返回true ◎ 该ALL如果所有子查询值满足条件运算符返回true

代码语言:javascript
复制
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)一起使用的语句,用于按一列或多列对结果集进行分组

代码语言:javascript
复制
SELECT column_name1, COUNT(column_name2) 
FROM table_name 
WHERE condition 
GROUP BY column_name1 
ORDER BY COUNT(column_name2) DESC;

HAVING

这个子句被添加到 SQL 中,因为 WHERE 关键字不能与聚合函数一起使用

代码语言:javascript
复制
SELECT COUNT(column_name1), column_name2 
FROM table 
GROUP BY column_name2 
HAVING COUNT(column_name1) > 10;

数据修改查询

INSERT INTO

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

代码语言:javascript
复制
INSERT INTO table_name (column1, column2) VALUES (value1, value2);
INSERT INTO table_name VALUES (value1, value2 …);

UPDATE

用于修改表中现有记录

代码语言:javascript
复制
UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition;
UPDATE table_name SET column_name = value;

DELETE

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

代码语言:javascript
复制
DELETE FROM table_name WHERE condition;
DELETE * FROM table_name;

报告查询

COUNT

返回出现次数

代码语言:javascript
复制
SELECT COUNT (DISTINCT column_name);

MIN() 和 MAX()

返回所选列的最小/最大值

代码语言:javascript
复制
SELECT MIN (column_names) 
FROM table_name WHERE condition;

SELECT MAX (column_names) 
FROM table_name WHERE condition;

AVG()

返回数字列的平均值

代码语言:javascript
复制
SELECT AVG (column_name) 
FROM table_name WHERE condition;

SUM()

返回数字列的总和

代码语言:javascript
复制
SELECT SUM (column_name) 
FROM table_name WHERE condition;

表连接查询

INNER JOIN

返回在两个表中具有匹配值的记录

代码语言:javascript
复制
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)中匹配的记录

代码语言:javascript
复制
SELECT column_names FROM table1 
LEFT JOIN table2 ON table1.column_name=table2.column_name;

RIGHT (OUTER) JOIN

返回右表(table2)中的所有记录,以及左表(table1)中匹配的记录

代码语言:javascript
复制
SELECT column_names FROM table1 
RIGHT JOIN table2 ON table1.column_name=table2.column_name;

FULL (OUTER) JOIN

在左表或右表中匹配时返回所有记录

代码语言:javascript
复制
SELECT column_names FROM table1 
FULL OUTER JOIN table2 ON table1.column_name=table2.column_name;

自连接

普通连接,表与表自身的连接

代码语言:javascript
复制
SELECT column_names 
FROM table1 T1, table1 T2 
WHERE condition;

查看查询

CREATE:创建视图

代码语言:javascript
复制
CREATE VIEW view_name AS SELECT column1, column2 
FROM table_name WHERE condition;

SELECT:检索视图

代码语言:javascript
复制
SELECT * FROM view_name;

DROP:删除视图

代码语言:javascript
复制
DROP VIEW view_name;

修改表查询

ADD:添加一列

代码语言:javascript
复制
ALTER TABLE table_name ADD column_name column_definition;

MODIFY:更改列的数据类型

代码语言:javascript
复制
ALTER TABLE table_name MODIFY column_name column_type;

DROP:删除一列

代码语言:javascript
复制
ALTER TABLE table_name DROP COLUMN column_name;

创建表查询

CREATE:创建一个表

代码语言:javascript
复制
CREATE TABLE table_name (
column1 datatype,
column2 datatype,
column3 datatype,
column4 datatype,);
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-10-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据STUDIO 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 快速查看
  • 查找数据查询
    • SELECT
      • DISTINCT
        • WHERE
          • ORDER BY
            • SELECT TOP
              • LIKE
                • IN
                  • BETWEEN
                    • NULL
                      • AS
                        • UNION
                          • INTERSECT
                            • EXCEPT
                              • ANY|ALL
                                • GROUP BY
                                  • HAVING
                                  • 数据修改查询
                                    • INSERT INTO
                                      • UPDATE
                                        • DELETE
                                        • 报告查询
                                          • COUNT
                                            • MIN() 和 MAX()
                                              • AVG()
                                                • SUM()
                                                • 表连接查询
                                                  • INNER JOIN
                                                    • LEFT (OUTER) JOIN
                                                      • RIGHT (OUTER) JOIN
                                                        • FULL (OUTER) JOIN
                                                          • 自连接
                                                          • 查看查询
                                                            • CREATE:创建视图
                                                              • SELECT:检索视图
                                                                • DROP:删除视图
                                                                • 修改表查询
                                                                  • ADD:添加一列
                                                                    • MODIFY:更改列的数据类型
                                                                      • DROP:删除一列
                                                                      • 创建表查询
                                                                        • CREATE:创建一个表
                                                                        相关产品与服务
                                                                        云数据库 MySQL
                                                                        腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
                                                                        领券
                                                                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档