前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SQL入门之从A到Z

SQL入门之从A到Z

作者头像
哒呵呵
发布2019-09-27 16:50:49
9630
发布2019-09-27 16:50:49
举报
文章被收录于专栏:鸿的学习笔记鸿的学习笔记
Alias

Alias就是表别名的意思。在join语句中,如果不指定某一列属于哪一张表,那么数据库会因为不知道某一列到底是属于哪一张表,从而报错。

代码语言:javascript
复制
select
orders.order_item,
inventory.inventory_item
from orders
inner join inventory
on orders.order_item = inventory.inventory_item

而表别名(Alias)让人们不至于在join语句中写那么冗长的全表表名,代以简单的别名。

代码语言:javascript
复制
select
o.order_item,
i.inventory_item
from orders o
inner join inventory i
on o.order_item = i.inventory_item
Begin Transaction

事务是包裹着一系列SQL的语句,通过事务可以使得事务里面的SQL可以一次性commit,或者是回滚。

代码语言:javascript
复制
begin transaction

update orders
set status = 'sent'
where order_id = '12345'

update orders
set status = 'sent'
where order_id = '54321'

commit transaction
CTEs v Subqueries

SQL CTE,即Common Table Expressions,常常用于过滤数据集赋以别名,并且在稍后的查询中使用到它。

代码语言:javascript
复制
with orderset as
(select
order_id,
order_item
from orders
where order_id between '12345' and '54321'
),

with inventoryset as
(select
inventory_item
inventory_balance
from inventory
)

select
orderset.order_id,
inventoryset.inventory_balance
from inventoryset
join orderset 
on orderset.order_item = inventoryset.inventory_item
Design

数据集市一般有两种设计模型:星型模型和雪花型模型。这两种模型由两种表组成:

  • 维度表:描述客观属性的表
  • 事实表:描述发生了什么的表
ETL

ETL,即 Extract, Transform, Load。ETL表示着将数据从一个数据库迁移到另一个数据库的过程。

ETL的过程主要是由数据工程或数据开发团队负责。

Function

在 SQL Server 中,一组为了完成特定功能的SQL语句集被称为存储过程,而在Postgre SQL中被称为函数(Function)。

它可以在数据库中被当作一个表达式正常使用,也可以传入参数返回一个动态的值。

Group By

SQL 的聚合函数允许我们针对特定的列执行诸如SUM, COUNT, MIN, MAX, AVERAGE等操作。

而Group By操作类似于Excel里面的透视表,表示根据某个字段进行分组聚合。

代码语言:javascript
复制
select
order_item,
sum(amount_due)
from orders
group by order_item;
Heaped Storage

Heaped Storage,用来描述没有带索引的数据库表。数据没有按特定的顺序组织起来,且新数据只是简单的添加到最后一行。因此如果要查询比较大的表,就必须使用索引。

索引分为两大类:

  • 聚集索引
  • 非聚集索引
Integrity

即数据库完整性,用来确保数据在逻辑上的一致性、正确性、有效性和相容性。 包括:

  • 实体完整性:每张表都有一个唯一的主键
  • 引用完整性:每张表的外键都可以引用到另一张表的主键
  • 域完整性:表中的列都有字段类型和长度
Join

当一张表无法获得所有信息时,就需要关联另一张表以获得完整的信息。

Key

主键自身是唯一的,且确保每一列的数据都是唯一的。

  • 它可以确保表中没有重复数据
  • 它不可为空
  • 每张表仅有一个主键
Lock

当两个用户同时更新或查询同一张表时,有可能会锁住(Lock),直到第一个事务完成。

Massive Parallel Processing

例如Redshift这种数据库,可以在分布式系统里的各个节点同时进行查询和处理。

Normalisation

即数据库三范式。

  • 1NF:字段不可分;
  • 2NF:有主键,非主键字段依赖主键;
  • 3NF:非主键字段不能相互依赖;
OLTP v OLAP
  • OLTP:Online Transaction Processing,常用于数据的快速处理反应
  • OLAP:Online Analytics Processing,常用于存储历史数据和数据挖掘。
Privileges

用于确保某些人只能查询和处理特定的数据,即用户权限。

代码语言:javascript
复制
GRANT ALL ON [table] TO [group] ;
-- if you would like them to SELECT, UPDATE and DELETE

GRANT SELECT ON [table] TO [group]  ;
-- if you would like them to be able to only SELECT
Query Plan

执行计划,用于查看所执行的SQL的执行过程,以便于更好的优化SQL。

代码语言:javascript
复制
explain

select
orders.order_item,
inventory.inventory_item
from orders
inner join inventory
on orders.order_item = inventory.inventory_item
Recovery

灾备恢复,一般与log、日志备份和复制有关,用以确保发生自然灾难、硬件故障或者是人为错误时,数据库依然正常。

  • Failover
  • Mirroring
  • Replication
System Tables

系统表用于存储数据内部对象的相关信息。

Truncate v Drop

删除表里的所有数据

Union

join是水平扩展数据,而union则是纵向扩展数据。

View

视图不是物理意义上的表,而是一系列的查询的抽象。

Window Function

窗口函数不像是聚合函数,而是跨行计算,并且把结果填到到每一行中。

代码语言:javascript
复制
select
order_id,
order_name
order_date,
rank() over(order amount_due desc) [rank]
from dbo.orders
XML

这个有凑数嫌疑

Year

Pass

Zero

Null表示这一行不存在,而不是0或者空。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 鸿的笔记 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Alias
  • Begin Transaction
  • CTEs v Subqueries
  • Design
  • ETL
  • Function
  • Group By
  • Heaped Storage
  • Integrity
  • Join
  • Key
  • Lock
  • Massive Parallel Processing
  • Normalisation
  • OLTP v OLAP
  • Privileges
  • Query Plan
  • Recovery
  • System Tables
  • Truncate v Drop
  • Union
  • View
  • Window Function
  • XML
  • Year
  • Zero
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档