SQL指的知的L知是结构化查询语言,旨在管理关系型数据库。识点SQL在数据科学中应用广泛,知的L知属于必备技能。识点以下列出了SQL的知的L知特点:
掌握基本命令的知识是终身学习的基础。否则,你只会记忆事实,而不了解它们如何配合。以下是一些最常用的SQL命令:
让我们以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
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;
作为一名数据科学家,子查询的知识是必不可少的,因为他们需要处理不同的表格,并且一个查询的结果可能会再次用于限制主查询中的数据。它也被称为嵌套查询或内部查询。子查询必须用括号括起来,在主查询之前执行。如果它返回多行,则称为多行子查询,并且必须使用多行运算符。
假设保险公司推出了一项新政策,取消那些年龄超过80岁的人的保险。可以使用如下所示的子查询完成:
DELETEFROM INSURANCE_CUSTOMERSWHERE AGE IN (SELECT AGE FROM INSURANCE_CUSTOMERS WHERE AGE > 80 );
内部子查询选择了所有80岁以上的客户,然后对该组执行Delete操作。
SQL连接是用于基于多个表格之间的逻辑关系将它们中的行组合在一起。SQL连接的4种类型如下所示:
SELECT Student.NameFROM StudentINNER JOIN Sports ON Student.ID = Sports.ID;
它返回那些已在体育部门注册的学生。注意:Sports ID与学生的注册ID相同。
SELECT Student.NameFROM StudentLEFT JOIN Sports ON Student.ID = Sports.ID;
SELECT Student.NameFROM StudentRIGHT JOIN Sports ON Student.ID = Sports.ID;
SELECT Student.NameFROM StudentFULL JOIN Sports ON Student.ID = Sports.ID;
存储过程允许我们在数据库中存储多个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进行调用以便执行。
我们都知道原始数据需要进行清洗,以提高整体生产力,从而做出高质量的决策。字符串格式化在这种情况下起着重要作用,它涉及到对字符串的操作,以去除不相关的内容。SQL提供了大量的字符串函数来转换和处理字符串。其中最常用的五个函数如下:
SELECT CONCAT(Name, ' has a major of ', Major)FROM StudentsWHERE student_Id = 37;
SELECT student_name,admission_date, SUBSTR(admission_date, 4, 2) AS dayFROM Students
从admission_date中提取出来的day列将以单独的形式出现,。
SELECT age, TRIM(trailing ' years' FROM age)FROM Students
它将26 years更改为26。
SELECT INSERT("OldWebsite.com", 1, 9, "NewWebsite");
它将被更新为NewWebsite.com。
SELECT COALESCE (NULL, NULL, 10, 'John’')
这将返回10。
窗口函数类似于聚合函数,但在计算后不会使行合并为单个行。相反,行保留其各自的标识。它们分为三个主要类别:
SELECT name, AVG(salary) over (PARTITION BY department) FROM Employees;
它显示了Employee表中不同部门的平均工资。
SELECT bank_branch, month, income, LAG(income,1) OVER ( PARTITION BY bank_branch ORDER BY month ) income_next_monthFROM Bank;
我们将银行不同分支机构的本月收入与上月进行比较。
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/
责任编辑:武晓燕 来源: Python学研大本营 SQLC++语言(责任编辑:休闲)
亚太卫星(01045.HK)年度纯利减少36.1% 每股盈利24.88港仙
苹果 iPhone 15 Pro Max 电池容量细节曝光:4422 毫安时,相比前代增加 2%
合丰集团(02320.HK)发布公告:年度公司拥有人应占亏损1.72亿港元
《星空》首发引吐槽,玩家自制 DLSS MOD 拯救游戏体验
微软 Microsoft 365 推出多项新功能:浏览器扩展、iOS 小组件等