数据科学家与SQL基础

根据美国劳工统计局的数据,预计到2026年,计算机和信息研究科学家以及数据科学家的就业前景将增长至少19%。无论公司领域如何,数据的收集和处理都是必不可少的。数据科学家深入挖掘数据,寻找对公司有益的宝贵见解。

为什么学习SQL?

大多数公司使用关系数据库管理系统(RDBMS)来存储和管理数据。SQL是结构化查询语言的缩写,它允许用户访问和操作数据。公司使用不同的系统,如MySQL、PostgreSQL、Oracle数据库等,进行数据存储。这些不同版本的SQL之间存在细微差别,但一旦掌握了一种,转向另一种相对容易。

数据库表在SQL中是什么?

数据库中的数据存储在表中,可以将其视为Excel电子表格。每个电子表格都有行和列。每一行包含与实体(如人、公司等)相关的数据,每一列包含与行的特定方面(如姓名、账户ID、年龄等)相关的数据。

SQL命名约定

请注意,SQL不区分大小写。它将“table”视为与“TABLE”相同。但是,按照惯例,SQL命令以全部大写字母书写,数据库表以小写字母命名,下划线代替空格。

创建表

在SQL中创建新表的语法如下:

CREATE TABLE table_name( column1 datatype, column2 datatype, );

使用CREATE TABLE语句,后跟表名。然后在括号内提及列名及其数据类型。请注意,每个SQL语句都以分号结束。

插入值到SQL

INSERT INTO语句将新记录插入数据库表中。语法如下:

INSERT INTO table_name(column1, column2, ...) VALUES (value1, value2, ...);

现在,让向上面创建的表中插入虚拟值。

SELECT和FROM语句

SELECT语句用于从数据库中选择数据。FROM语句列出将从中获取数据的数据库表。

SELECT column_name_1, column_name_2, ... FROM table_name;

要替换列名以选择数据库列中的所有列,请用星号(*)替换列名。

WHERE语句

WHERE语句根据语句后提到的条件过滤记录,语法如下:

SELECT column1, column2, ... FROM table_name WHERE condition;

过滤出薪水超过50,000的员工的代码如下:

SELECT * FROM employee WHERE salary > 50000;

注意WHERE语句位于FROM语句下方。在条件内,可以使用逻辑表达式(OR、AND和NOT)以及比较运算符,如>、<、=等。

AND、OR和NOT

这三个是最常用的逻辑运算符。这些运算符不需要解释,以下是包含示例条件的表格。

LIKE运算符

在解释LIKE运算符之前,假设想要过滤出公司中的后端开发人员。可以使用WHERE语句和比较运算符如下:

SELECT * FROM employee WHERE job = 'Backend Developer';

这种查询的问题是,如在数据库表中看到的,还有另一个后端开发人员(Nick)没有被过滤,因为他的职位标题是‘Backend Dev’。因此,将使用LIKE运算符。

BETWEEN运算符

想要找到所有薪水在25,000和40,000之间(包括)的员工。可以使用AND和比较运算符如下:

SELECT * FROM employee WHERE salary >= 25000 AND salary <= 40000;

另一种方法是使用BETWEEN运算符。BETWEEN运算符是包含性的:开始和结束值都包括在内。

IN运算符

这里明确定义了一系列值,并返回包含列表中任何值的记录。想要选择employee_id为1、3或5的员工。

SELECT * FROM employee WHERE employee_id IN (1, 3, 5);

这类似于使用OR语句将多个条件链接在一起(WHERE employee_id = 1 OR employee_id = 3 ...)。

LIMIT/FETCH

SELECT * FROM employee FETCH FIRST 2 ROWS ONLY; SELECT * FROM employee ORDER BY salary DESC FETCH FIRST 3 ROWS ONLY;
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485