SQL_基础教程

课程1: Basic SQL(发音sei kuo)
课程来源:https://classroom.udacity.com/courses/ud198

ERD(Entry relationship diagram) 实体关系图
这些图可帮助您可视化所分析的数据,包括:

  1. 表的名称。
  2. 每个表中的列。
  3. 表一起工作的方式。
    在这里插入图片描述

SQL(Structured Query Language)
企业使用数据库的原因:
1 确保数据的完整性
2 可以快速访问数据
3 数据易于分享

SQL的关键是理解语句。一些声明包括:

  1. CREATE TABLE是在数据库中创建新表的语句。
  2. DROP TABLE是删除数据库中的表的语句。
  3. SELECT允许您读取和显示数据。这称为查询。

每个查询中使用:SELECT … FROM…。

  1. SELECT指示要为其提供数据的列。
  2. FROM指定要从中选择表的列。注意,该表中的列需要存在。
    如果要提供表中所有列的数据,请使用“ *”,例如 SELECT * FROM orders;

SELECT 格式化查询
SQL查询不区分大小写
通用的做法是将表名和列名保留小写的同时,大写命令字.这样可以使查询更易于阅读,而在编写更复杂的查询时,查询将变得更加重要.

在表名和变量名中避免空格
表名和变量名中通常使用下划线并在列名称中避免空格

在查询中使用空格
SQL查询会忽略空格,因此可以根据需要在代码之间添加尽可能多的空格和空白行,查询结果是相同的.例如:

SELECT account_id
FROM orders

分号
最好的做法是在每个语句的末尾加上分号,如果环境允许,也可以一次运行多个查询。

LIMIT
LIMIT可以让你看到的一个表的前几行语句。这比加载整个数据集要快得多。
LIMIT命令始终是一个查询的最后一部分, 例如:

SELECT *
FROM orders
LIMIT 10;

ORDER BY
ORDER BY语句允许我们对我们造成任何列使用的数据进行排序
使用ORDER BY只会对查询结果产生临时影响
DESC可以在ORDER BY语句的列之后添加按降序排序,因为默认情况是按升序排序(ASC)。
降序(descending)
使用ORDER BY要注意排序多个字段时的顺序问题.例如, 以下两个查询

SELECT id, account_id, total_amt_usd
FROM orders
ORDER BY account_id, total_amt_usd DESC;
SELECT id, account_id, total_amt_usd
FROM orders
ORDER BY total_amt_usd DESC, account_id;

在查询1中,将每个帐户ID的所有订单分组在一起,然后在每个分组中,订单的显示顺序为最大订单量到最小订单量。在查询2中,由于首先按总金额排序,因此订单从最大到最小显示,而不管它们来自哪个account_id。然后,将它们按照account_id排序。

WHERE
可以将WHERE命令视为过滤数据
包括 >, < , >=, <=, =, != 6种
WHERE语句还可以用非数字数据使用。我们可以在此处使用=and !=运算符。这里需要确保对文本数据使用单引号

派生列(derived column)
创建由现有列组合而成的新列称为派生列。通常,您想使用AS关键字为新列指定名称或“别名” 。
此派生列及其别名通常只是临时的,仅在查询期间存在。例如:

SELECT id, (standard_amt_usd/total_amt_usd)*100 AS std_percent, total_amt_usd
FROM orders
LIMIT 10;

在这里,我们将标准纸面美元金额除以总订单量,以找到该订单的标准纸面百分比,并使用AS关键字将此新列命名为“ std_percent
可以使用的算术运算符为: +, -, *, / 4种
如果是除法, 注意数据中的至少一个值在您的公式中创建了零除的情况.

逻辑运算符

  1. LIKE
    这使您可以进行类似的操作使用WHERE和=,但是当你的情况可能不知道究竟你在找什么。
  2. IN
    这使您可以执行与使用WHERE和相似的操作=,但要针对多个条件。
  3. NOT
    与IN和LIKE一起使用,以选择在特定条件下NOT LIKE或NOT IN所有状态的所有行。
  4. AND和BETWEEN之
    组合,您可以在必须满足所有组合条件的情况下组合操作。
  5. OR
    这允许您组合其中至少有一个组合条件为真的操作。

LIKE
通配符(wildcard)
% 代表一个或任意数量的字符
使用LIKE需要区分大小写

例如: name字段中以C开始的记录

SELECT name
FROM accounts
WHERE name LIKE 'C%';

name字段包含one的记录

SELECT name
FROM accounts
WHERE name LIKE '%one%';

name字段以s结尾的记录

SELECT name
FROM accounts
WHERE name LIKE '%s';

IN
可以检查同一查询中一个列值中对应的一个或多个数据.
文本可以使用单引号或双引号, 如果文本中带有``, 则可能需要使用双引号
例如:

SELECT *
FROM web_events
WHERE channel IN ('organic', 'adwords');
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章