什么是SQL?

SQL代表结构化查询语言,该结构化查询语言用于存储,操作和检索数据库中的数据。 它是关系数据库管理系统的标准语言。尽管它是ANSI / ISO标准,但是SQL语言有不同的版本。

什么是数据库?

简而言之,数据库是数据的集合,并且该数据将由DBMS控制。

数据库包含一个或多个表。 每个表都有一个名称标识(例如:" id,name"。表包含数据记录。

SQL可以做什么?

· SQL可以创建新的数据库。

· SQL可以在数据库中创建新表。

· SQL可以对数据库执行查询。

· SQL可以更新数据库中的记录。

需要记住的..

SQL关键字不区分大小写,但我们更喜欢以大写形式编写查询。

每个语句后都需要分号吗?

有些数据库系统在每条语句后都需要分号(;),如果我们有多个语句,则SQL是其中的一种。

我们更喜欢在每个语句的末尾使用分号。

我们将为初学者讨论最重要的SQL查询。 开始吧

在本文中,我们将使用一个典型公司的数据库,该公司的员工分布在不同部门。 每个员工都有一个ID,一个名称和一个薪水,并且属于一个部门,如下表所示

EMPLOYEE表的样本:

sql学习入门(SQL入门指南)(1)

department表的样本:

sql学习入门(SQL入门指南)(2)

对于初学者来说最重要的SQL查询是

1.从员工表的所有列中检索数据

这是显示表中所有数据的基本查询。 该查询在SELECT" "之后仅包含一个字符(此处表示所有列),我们不要忘记编写FROM子句,后跟要从中检索数据的表的名称。 在此,我们从Employee表中检索每一列。

SELECT *

FROM employee;

2.从某些列检索数据

如果要显示某些列中的数据,则必须在SELECT语句之后列出这些列。 在此示例中,我们从first_name和salive列中检索数据。

SELECT first_name, salary FROM employee;

3.从某些列检索不同的数据

在雇员表的DEPARTMENT列中,我们有重复的值以获取唯一值,我们使用以下查询

SELECT DISTINCT DEPARTMENT

FROM employee;

4.使用WHERE子句过滤数据

如果要显示SALARY大于40,000的数据。 我们必须在WHERE子句之后列出条件,即SALARY> 40,000。 此查询检查SALARY列中值大于40,000的记录。

SELECT *

FROM employee

WHERE SALARY > 40,000;

检索部门为IT的员工

SELECT *

FROM employee

WHERE DEPARTMENT = ‘IT’ ;

5.使用WHERE子句结合逻辑运算符过滤数据

我们在MySQL中使用的逻辑运算符是AND,OR,NOT。

WHERE子句可以与上述运算符结合使用。

如果用AND分隔的所有条件均为True,则AND运算符将显示一条记录。

如果由OR分隔的任何条件为True,则OR运算符将显示一条记录。

如果条件不为真,则NOT运算符将显示记录。

和语法:

AND SYNTAX:

SELECT *

FROM employee

WHERE LAST_NAME = ‘KHANWALD’ AND SALARY > 25,000 ;

如果两个条件都为True,且last_name =" khanwald"且薪水大于25,000,则上面的查询返回记录。

或 语法:

SELECT *

FROM employee

WHERE LAST_NAME = ‘KHANWALD’ OR SALARY > 25,000 ;

如果任何一个条件为True,则上面的查询将返回记录。

非 语法:

SELECT *

FROM employee

WHERE NOT LAST_NAME = ‘KHANWALD’ ;

上面的查询返回last_name不等于" khanwald"的数据。

6,排序数据

要根据列对数据进行排序,请将该列放在ORDER BY之后,默认情况下,这将以升序对数据进行排序。 要按降序对其进行排序,请将DESC关键字放在列名之后。 我们可以根据不止一列进行排序。

SELECT *

FROM employee

ORDER BY LAST_NAME DESC, SALARY;上面的查询返回LAST_NAME从降序开始的记录,以及它们的薪水以升序排列。

7,计算表中的行数

COUNT关键字计算行数并返回值数。 我们必须在关键字之后输入任何列名称。

SELECT COUNT(EMPLOYEE_ID)

FROM employee;

8. IS NULL运算符

该运算符返回所选列中存在的空值记录。

SELECT *

FROM employee

WHERE SALARY IS NULL;

如果要跳过NULL值的记录,我们可以简单地将NOT运算符放在IS NULL之间。

语法:WHERE SALARY NOT NULL;

9. SQL SUM(),AVG(),MIN()和MAX()函数

SUM()函数返回整数列的总和。

AVERAGE()函数返回数字列的平均值。

MIN()函数返回该列的最小值。

MAX()函数返回该列的最大值。

SELECT SUM(SALARY) , AVG(SALARY) , MIN(SALARY), MAX(SALARY)

FROM employee;

第10章SQL JOIN的不同类型

SQL中的不同类型的JOIN是

JOIN:它返回两个表中具有匹配值的记录。 我们也可以称其为INNER JOIN。

LEFT JOIN:它返回左表中的所有记录以及右表中的匹配值。

RIGHT JOIN:它返回右表中的所有记录,并返回左表中的匹配值。

FULL JOIN:如果左表或右表匹配,则返回所有记录。

sql学习入门(SQL入门指南)(3)

内部联接或联接的语法:

SELECT employee.FIRST_NAME , department.BUDGET

FROM employee

JOIN department on employee.DEPARTMENT = department.DEPARTMENT ;

上面的查询返回employee表中的FIRST_NAME列和部门表中匹配的BUDGET列。

11.从表中删除数据

DELETE FROM查询从表中删除所有数据。 我们还可以使用WHERE子句从某些列中删除。

DELETE FROM employee;

上面的查询从表中删除所有数据。

DELETE FROM employee

WHERE EMPLOYEE_ID = 1024;

上面的查询删除了employee_id等于1024的数据。

12.创建一个表

我们可以使用CREATE TABLE创建一个表。 之后,我们必须列出表的名称,并在方括号中声明列名和数据类型。

例如,我们创建一个具有两列id和name的表。

CREATE TABLE emp(Id integer, Name text);

13.将值插入表

我们可以使用INSERT INTO和表名将新记录添加到表中。 之后,使用VALUES,然后在方括号中键入列的值。

INSERT INTO emp VALUES(1102, ‘Tom’);

14.更新表

UPDATE用于修改或更改列中的数据。 UPDATE之后,列出表的名称,然后列出SET,以及列的名称并等于新值。

UPDATE emp Name = “ GJ ”;

15.删除表

我们可以使用DROP TABLE和表名轻松删除表。

DROP TABLE emp;

摘要

以上查询是初学者和专业人士最常用的查询。 如果您想了解有关SQL的更多信息,请关注我的下一个博客。

(本文翻译自Golla Jayanth的文章《A Beginner's Guide to the SQL》,参考:https://medium.com/swlh/a-beginners-guide-to-the-sql-by-golla-jayanth-74ee1a3e97c6)

,