sql 语句如何一个表变成另一个表_数据分析之SQL(1)

从今天起,正式开始学习数据分析相关的知识,希望在未来可以找到一份优秀的Offer,也希望我可以努力成为那个优秀的他。话不多说,首先开始我们的SQL语言学习。

我们主要是通过学习《SQL必知必会》书籍来掌握SQL基础语句(主要以书中MySQL数据库为主,其他数据库语句不做总结),然后刷牛客网“数据库SQL实战”编程习题,最后填充相关的知识细节。

第一课 了解SQL

数据库是以某种有组织的方式存储的数据集合。最简单的办法是将数据库想象为一个文件柜。文件柜只是一个存放数据的物理位置,它不管数据是什么,也不管数据是如何组织的。

数据库软件应称为数据库管理系统(DBMS)。数据库通过DBMS创建和操纵的容器。

数据库表

  • 是一种结构化的文件,可用来存储某种特定类型的数据;
  • 存储在数据库表中的数据是同一种类型的数据或清单;
  • 数据库中的每个表都有一个名字来标识自己。这个名字是唯一的,即数据库中没有其他表具有相同的名字;
  • 表具有一些特性,这些特性定义了数据在表中如何存储,包括存储什么样的数据,数据如何分解,各部分信息如何命名等。描述表的这组信息就是所谓的模式,模式可以用来描述数据库中特定的表,也可以用来描述整个数据库。

是表中的一个字段,所有表都是由一个或多个列组成。数据库中每个列都有相应的数据类型,数据类型定义了列可以存储哪些数据种类和可以完成的操作。

表中的数据是按存储的,所保存的每个记录存储在自己的行内。

主键:一列或者几列,其值能够唯一标识表中每一行。表中的任意列都可以作为主键,只要它满足以下条件:

  • 任意两行都不具有相同的主键值;
  • 每一行都必须具有一个主键值(不允许为NULL);
  • 主键列中的值不允许修改或更新;
  • 主键值不能重用。

第二课 检索数据

每个SQL语句都是由一个或多个关键字构成的。最经常使用的SQL语句就是SELECT语句了。它的用途是从一个或者多个表中检索信息。

Sams Teach Yourself SQL in 10 Minutes (Fifth Edition)​forta.com
9c0d873213b0393149d57c6375f14b6e.png

后面用到的语句都可以从上面网站找到相应的数据库表结构。创建完成后如下图所示。

fbdd0b20a330a21fa1369d57574d9237.png
数据库表

检索单个列

SELECT `prod_name` FROM `products`;  -- FROM关键字指出从哪个表中检索数据

e04d7d54e1ee3068d39d62e4b1ac94b3.png

多条SQL语句必须以分好(;)分隔。

【注】SQL语句不区分大小写。

检索多个列

在SELECT关键字后给出多个列名,列名之间必须以逗号分隔。

SELECT `prod_id`, `prod_name`, `prod_price` FROM `products`;

d35c33fe0f7c4297fc9e9504c9605214.png

检索所有列

在实际列名的位置使用星号(*)通配符可以做到。

SELECT * FROM `products`;

6da82f456435eaec3c3769e3a66a9e4f.png

检索不同的值

使用DISTINCT关键字,指示数据库只返回不同的值。DISTINCT关键字作用于所有的列,不仅仅是跟在其后的那一列。

SELECT DISTINCT `vend_id` FROM `products`;

abb0d8d59994c0d159fbdf747d40e56e.png

限制结果

LIMIT n OFFSET m,指定返回n行,从第m行开始。第一个被检索的行是第0行,而不是第1行。(也可以简写为LIMIT n,m)

SELECT `prod_name`
FROM `products`
LIMIT 5 OFFSET 5;

656c2ed36d4ac12d20d37a9315a9609b.png

使用注释

注释使用 “--”。

挑战题目

  • 编写 SQL 语句,从 Customers 表中检索所有的 ID(cust_id)
SELECT `cust_id`
FROM `customers`;
  • OrderItems 表包含了所有已订购的产品(有些已被订购多次)。编写 SQL 语句,检索并列出已订购产品(prod_id)的清单(不用列每个订单,只列出不同产品的清单)。提示:最终应该显示 7 行。
SELECT DISTINCT `prod_id`
FROM `orderitems`;
  • 编写 SQL语句,检索 Customers 表中所有的列,再编写另外的 SELECT 语句,仅检索顾客的 ID。使用注释,注释掉一条 SELECT 语句,以便 运行另一条 SELECT 语句。(当然,要测试这两个语句。)
SELECT * FROM `customers`;
-- SELECT `cust_id` FROM `customers`;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值