七个不可不知的SQL知识点 当前要闻
时间:2023-06-27 11:02:01来源:Python学研大本营
SQL与数据科学

SQL指的是结构化查询语言,旨在管理关系型数据库。SQL在数据科学中应用广泛,属于必备技能。以下列出了SQL的特点:

广泛使用:虽然它已经有了大约40年的历史,但在大多数关系型数据库系统中用于查询,并已成为实验数据的标准工具。简化对数据的理解:SQL在浏览数据库内容时非常方便。它能让你有效地理解细节。易于学习:它是新手的完美起点,具有简单的类英语语法,只需几行代码即可提取有价值的见解。能够处理海量数据:SQL可以使你以有组织的方式管理大量数据,是数据科学应用的理想选择。与其他编程语言和应用程序的兼容性:将SQL与Python、C++、R等语言集成非常方便。它还支持商业智能和数据可视化工具,如Power BI和Tableau,使开发过程更加容易。7个SQL知识点1)基本命令

掌握基本命令的知识是终身学习的基础。否则,你只会记忆事实,而不了解它们如何配合。以下是一些最常用的SQL命令:

SELECT和FROM:从指定的表中检索数据的属性。SELECT DISTINCT:它消除重 复的行并只显示唯一的记录。WHERE:它过滤记录并只显示满足给定条件的记录。AND、OR、NOT:当条件不为True时不执行查询。而AND和OR用于应用多个条件。ORDER BY:它按升序或降序对数据进行排序。GROUP BY:它对相同的数据分组。HAVING:对由Group By聚合的数据可以在此进一步筛选。聚合函数:聚合函数,如COUNT()、MAX()、MIN()、AVG()和SUM(),用于对给定的数据执行操作。

让我们以Employee表为例,应用这些命令:


(资料图片)

ID

Name

Department

Salary ($)

Gender

1

Julia

Admin

20000

F

2

Jasmine

Admin

15000

F

3

John

IT

20000

M

4

Mark

Admin

17000

M

现在,我们想要获取在Admin部门工作的女性的平均工资。

SELECT Department,       AVG(Salary)FROM EmployeesWHERE Gender="F"GROUP BY DepartmentHAVING Department = "Admin";

输出:

Admin | 17500.0
2)Case When

Case When是SQL中一种非常强大和灵活的语句,用于编写复杂的条件语句。它提供了IF.THEN.ELSE语句的功能。让我们来看一下它的语法:

CASE expression   WHEN value_1 THEN result_1   WHEN value_2 THEN result_2   ...   WHEN value_n THEN result_n   ELSE resultEND

它按顺序执行语句,并在条件为True时返回值。如果没有满足条件的情况,将执行ELSE块,如果没有ELSE块,则返回NULL。

假设我们有一个学生数据库,我们想根据他们的成绩对他们进行分级。可以使用以下SQL语句:

SELECT student_name,       marks,       CASE           WHEN marks >= 85 THEN "A"           WHEN marks >= 75                AND marks < 85 THEN "B+"           WHEN marks >= 65                AND marks < 75 THEN "B"           WHEN marks >= 55                AND marks < 65 THEN "C"           WHEN marks >= 45                AND marks < 55 THEN "D"           ELSE "F"       END AS gradingFROM Students;
3)子查询

作为一名数据科学家,子查询的知识是必不可少的,因为他们需要处理不同的表格,并且一个查询的结果可能会再次用于限制主查询中的数据。它也被称为嵌套查询或内部查询。子查询必须用括号括起来,在主查询之前执行。如果它返回多行,则称为多行子查询,并且必须使用多行运算符。

假设保险公司推出了一项新政策,取消那些年龄超过80岁的人的保险。可以使用如下所示的子查询完成:

DELETEFROM INSURANCE_CUSTOMERSWHERE AGE IN    (SELECT AGE     FROM INSURANCE_CUSTOMERS     WHERE AGE > 80 );

内部子查询选择了所有80岁以上的客户,然后对该组执行Delete操作。

4)连接

SQL连接是用于基于多个表格之间的逻辑关系将它们中的行组合在一起。SQL连接的4种类型如下所示:

内部连接(Inner Join):内部连接仅显示满足给定条件的两个表格中的行。它可以在集合术语中称为交集。
SELECT Student.NameFROM StudentINNER JOIN Sports ON Student.ID = Sports.ID;

它返回那些已在体育部门注册的学生。注意:Sports ID与学生的注册ID相同。

左连接(Left Join):它返回左表格中的所有记录,而只显示右表格中的匹配记录。
SELECT Student.NameFROM StudentLEFT JOIN Sports ON Student.ID = Sports.ID;
右连接(Right Join):它与左连接作用正好相反。
SELECT Student.NameFROM StudentRIGHT JOIN Sports ON Student.ID = Sports.ID;
完全连接(Full Join):它包含来自两个表格的所有行,如果它没有相应的匹配条目,则显示NULL值。
SELECT Student.NameFROM StudentFULL JOIN Sports ON Student.ID = Sports.ID;
5)存储过程

存储过程允许我们在数据库中存储多个SQL语句以便日后使用。它提供了可重用性,还可以在调用时接受参数值。它可以增强性能,并且更容易进行任何修改。

CREATE PROCEDURE SelectStudents @Major nvarchar(30),                                       @Grade char(1) ASSELECT *FROM StudentsWHERE Major = @Major  AND Grade = @Grade GO;EXEC SelectStudents @Major = "Data Science",                    @Grade = "A";

此存储过程允许我们提取不同专业的学生,并根据其成绩进行筛选。例如,我们要提取所有专业为数据科学且成绩为A的学生。请注意,CREATE PROCEDURE就像函数声明一样,需要使用EXEC进行调用以便执行。

6)字符串格式化

我们都知道原始数据需要进行清洗,以提高整体生产力,从而做出高质量的决策。字符串格式化在这种情况下起着重要作用,它涉及到对字符串的操作,以去除不相关的内容。SQL提供了大量的字符串函数来转换和处理字符串。其中最常用的五个函数如下:

CONCAT:用于将两个或多个字符串相加。
SELECT CONCAT(Name, " has a major of  ", Major)FROM StudentsWHERE student_Id = 37;
SUBSTR:返回字符串的一部分,并在其参数中提供子字符串的起始位置和长度。
SELECT student_name,admission_date,     SUBSTR(admission_date, 4, 2) AS dayFROM Students

从admission_date中提取出来的day列将以单独的形式出现,。

TRIM:TRIM的主要作用是从字符串的开头、结尾或两者中删除字符(如果指定了)。必须指定前导、后导或两者,然后是指定要删除的字符,再接着是要从中删除的字符串。
SELECT age,   TRIM(trailing " years" FROM age)FROM Students

它将26 years更改为26。

INSERT:允许我们在给定字符串中的指定位置插入字符串。必须指定要写入的新子字符串的位置和长度。请注意,此新字符串将覆盖先前的文本。
SELECT INSERT("OldWebsite.com", 1, 9, "NewWebsite");

它将被更新为NewWebsite.com。

COALESCE:主要是用使用者定义的值替换空值,这在数据科学中经常需要。
SELECT COALESCE (NULL, NULL, 10, "John’")

这将返回10。

7)窗口函数

窗口函数类似于聚合函数,但在计算后不会使行合并为单个行。相反,行保留其各自的标识。它们分为三个主要类别:

聚合函数:它从数值列中显示聚合值,如AVG()、COUNT()、MAX()、MIN()、SUM()等。
SELECT name,       AVG(salary) over (PARTITION BY department) FROM Employees;

它显示了Employee表中不同部门的平均工资。

值函数:使用值窗口函数为每个分区分配一些值。一些常用的值函数有LAG()、LEAD()、FIRST_VALUE()、LAST_VALUE()和NTH_VALUE()。
SELECT   bank_branch, month, income, LAG(income,1) OVER (  PARTITION BY bank_branch  ORDER BY month ) income_next_monthFROM Bank;

我们将银行不同分支机构的本月收入与上月进行比较。

排名函数:它们可根据预定义排序为行分配排名。ROW_NUMBER()、RANK()、DENSE_RANK()、PERCENT_RANK()、NTILE()等是其中的几个函数。
SELECT product_name, price, RANK () OVER (   ORDER BY list DESC ) price_hightolowFROM Products;

使用RANK(),对产品进行基于价格的排名。

结论

通过阅读本文能全面了解作为数据科学家需要了解多少SQL基本知识。如果想更深入地了解这些概念,以下是一些资源可供参考:

【SQLServertutorial】:https://www.sqlservertutorial.net/

【TutorialsPoint】:https://www.sqlservertutorial.net/

【W3Schools】:https://www.w3schools.com/sql/

标签:

最新
  • 七个不可不知的SQL知识点 当前要闻

    SQL与数据科学SQL指的是结构化查询语言,旨在管理关系型数据库。SQL在

  • 环球速读:《暗黑破坏神4》净化火焰任务怎么做 净化火焰任务攻略

    在马格雷夫镇中与牧师麦特维交谈即可领取,来到指定地点后点燃火盆并

  • 星汉灿烂原著小说叫什么名字?星汉灿烂原著是穿越小说吗?

    星汉灿烂原著小说叫什么名字?电视剧星汉灿烂的原著小说叫《星汉灿烂

  • 天猫优品微信小程序暂停服务,互联网巨头“拆墙”再起风波 天天快讯

    来源 师天浩观察撰文 师天浩中国互联网正在发生变化,巨头间频繁“拆墙

  • 5月份江苏金融统计数据出炉_每日资讯

    本文转自:人民日报客户端记者从中国人民银行南京分行获悉,5月末,江

  • 潢川:“信易供水”便利惠民服务稳步推进-观天下

    “信易供水”便利惠民措施是水业公司提升社会信用管理水平、充分发挥“

  • 世界资讯:2023年6月25日ETF黄金最新净持仓量数据

    2023年6月25日ETF黄金最新净持仓量数据

  • 天天即时:你关心的都在这!2023年高考志愿填报十问十答来了

    近期,各省(区、市)正陆续发布2023年高考成绩,并即将启动高考志愿填

  • 泉州古城:端午喜迎八方客

    6月22日,端午节。四面八方的游客来到泉州古城,感受世界遗产城市独特

  • 世界快看点丨买房贷款50万需要担保人吗?贷款买二手房有年龄限制吗?

    买房贷款50万需要担保人吗买房贷款50万不需要担保人,但是如果购房

  • 小额定存选哪种方式好?​小额定存款怎样存利息高点?

    小额定存选哪种方式好?方法一:一次性存入如果储户的资金比较少,比

  • 2023年高考分数线汇总 来看看你那里是多少_天天热推荐

      中新网6月23日电综合消息,自23日起,多省份高考分数线陆续公布。

  • 通讯!广汽集团有哪些品牌车?广汽传祺前身是啥车?

    广汽集团有哪些品牌车?广汽集团有品牌车有:广汽传祺、广汽本田、广

  • 落选秀里淘淘宝,快船签下了一名顶级后场得分手?|全球新动态

    本赛季卡斯塔涅达在NCAA赛场的表现可谓是有了显著的提升,他的进攻效率

  • 探馆亚运丨杭州亚运场馆一览

    三个月之后的9月23日,第19届亚运会将在杭州开幕。新华体育带您一同速

  • 年纪大了别勤快,3件事伤身!

    案例:张大爷是个退休的老人,今年已经65岁了。他住在城里的儿子家里,

  • 旅游
    • 【全球速看料】麻瓜是什么意思四川话骂人_呵呵是什么骂人意思

    • 焦点!傣族有什么特色 傣族有什么民俗?

    • 融资融券股票会不会退市?融资融券的股票散户可以买吗?|全球今热点

    • 谷歌提醒员工在使用聊天机器人时要小心 包括其自家的Bard