1
ETL 是 extract、transform 和 load 的缩写。
Extract 从哪拿的数据;
Transform 变形,给数据揉一揉哈哈哈,叫数据按摩。今天学习数据的变形处理。
2 select_list:
*
列别名
表达式
列别名 = 表达式
udt 相关是不常用的。
今天一上来就是实验课:
1 SELECT * FROM Person.Person 第一个表示 schema,第二个表示 tablename
* 表示要所有列;
打开 tables,展开,直接从左边展开,和右边查询里写是一样的。
2 加上表名、视图名再加 .*
SELECT Person.* FROM Person.Person 也可以
也可以选多张表:
SELECT P.* FROM Person.Person AS P 取了别名,就不认原名了
加不加表名有什么用。
3 选 方法和食材,是笛卡尔积的计算结果。
SELECT Ingredient.* FROM Method, Ingredient
SELECT I.* FROM Method AS M, Ingredient AS I 表名或别名.*
4 SELECT Person.FirstName, Person.LastName FROM Person.Person
SELECT FirstName, LastName FROM Person.Person 表名可以省掉
5 SELECT FirstName AS FN, LastName AS LN
FROM
Person.Person # 列名 + 别名
折了以后不报错,就OK了哈哈。熟悉了就明白了。
6 expression 激动人心的时刻,未来操作符和函数还要再讲。强大的编程语言,往往拥有强大的计算符号,函数库。
SELECT FirstName + ‘ ‘ + LastName
FROM
Person.Person
哇,SQL Server 来加列也很方便嘛。
还可以加别名,因为结果中是没有名字的,因为原表里木有。
SELECT FirstName + ‘ ‘ + LastName AS FullName
FROM
Person.Person
加表名:SELECT Person.FirstName + ‘ ‘ + Person.LastName AS FullName
FROM
Person.Person
加别名:SELECT P.FirstName + ‘ ‘ + P.LastName AS FullName
FROM
Person.Person AS P
7 把一列数据 劈开成两半:
SELECT Firstname, SUBSTRING(FirstName, 1, 1)
FROM Person.Person
SQL Server substring 起始索引是 1,就你特殊。
SELECT Firstname + ‘ ‘ + LastName AS FullName,
SUBSTRING(FirstName, 1, 1) + SUBSTRING(LastName, 1, 1) AS Initial
FROM Person.Person
很多内建函数,等待我们用它们去按摩哈哈
8 column_alias = expression
SELECT FullName = Firstname + ‘ ‘ + LastName,
Initial = SUBSTRING(FirstName, 1, 1) + SUBSTRING(LastName, 1, 1)
FROM Person.Person
SQL 的变化可以嵌套和叠加。
复杂拆解:哪些变化。
8 ALL| DISTINCT
SELECT FirstName FROM Person.Person
SELECT ALL FirstName FROM Person.Person 结果还是 19972, 默认的,加不加都一样。
SELECT DISTINCT FirstName FROM Person.Person 结果 1018 行,去重了。
相当于 set(list()) Series.unique()
SELECT DISTINCT FirstName, LastName FROM Person.Person
选出来的是 FirstName, LastName 相同的被去重的。
9 TOP(5) 前五个,咋排的,自然排序。
SELECT TOP(5) FirstName,LastName FROM Person.Person
ORDER BY FirstName
相当于 pandas.head(5)
SELECT TOP(5)PERCENT FirstName,LastName FROM Person.Person
SELECT TOP(5)WITHTIE FirstName,LastName FROM Person.Person
WITHTIE 是看值一样的话,还算不算。
为什么实验滞后概念学习,因为内在逻辑就是这样要求的呀:
先知道概念,才能知道哪些概念是对的,哪些变化是对的。
