目录
简要了解SQL及其主要组件
编写SQL查询需要什么?
在哪里可以创建SQL数据库?
编写SQL查询的指南
第 1 步:了解SQL查询背后的过程
第 2 步:准备好数据库
第 3 步:创建一个表格来组织信息
第 4 步:从基本SQL语句开始
1)“INSERT INTO”语句
2) 'SELECT'子句
3) 'WHERE'子句
4) 'AND'和'OR'运算符
5) 'IN'和'BETWEEN'运算符
6) 'ORDER BY'子句
7) 'LIMIT'子句
8) ' UPDATE'语句
9)’DELETE’语句
10) 'TRUNCATE TABLE'语句
第 5 步:校对您的SQL查询
不要气馁!
SQL的知识一直很受欢迎。即使您没有数据分析师的工作或任何其他相关职位,知道如何编写基本的SQL查询也可能是您简历的有用补充。
有很多资源可以了解SQL,包括我们内容丰富的Essential SQL博客。然而,如此丰富的信息常常使学习者,尤其是初学者感到困惑,因为它相当分散。
因此,今天,我们将有关编写SQL查询的所有基本信息收集到一个终极指南中,以帮助您更有效地获得和实践这些知识。
简要了解SQL及其主要组件结构化查询语言(SQL)是一种特定于域的编程语言,旨在帮助维护数据库中保存的结构化数据。基本上,这种语言可以帮助我们与数据库通信、更新它并从中检索数据。
根据这个定义,我们可以得出结论,您可以使用SQL执行各种任务,例如:
- 创建数据库
- 在数据库中启动表和编写查询
- 从数据库请求信息
- 更新或删除特定记录或整个数据库
为了更好地理解这种语言的功能,您还需要对其主要组成部分或方言有基本的了解。
- 数据定义语言——用于创建数据库、更新其中的数据或完全删除数据库的SQL方言。
- 数据操作语言——用于维护数据库并指定您想要对其执行的操作(输入、更改或提取)的SQL方言。
- 数据控制语言——用于保护数据库的SQL方言。
一些专家还挑选出用于管理和控制事务的事务控制语言方言,以维护SQL语句中的数据完整性(保证准确性和一致性)。
编写SQL查询需要什么?要编写SQL查询,您首先需要创建一个关系数据库。
在SQL中,我们称数据库为关系型,因为它被划分为相互关联的表。这些表将数据分解为更小、更易于管理的单元,从而实现更好的维护和整体性能。
在哪里可以创建SQL数据库?为此,您需要安装数据库管理系统(DBMS)。DBMS是一种帮助您创建和管理数据库的软件。如果您的系统上还没有安装一个,这里有一些最受欢迎的选项:
- MySQL(开源)
- SQL Server Express(开源)
- Oracle(付费)
无论您选择哪种DBMS,它们都为您创建的所有数据库提供安全性和保护。如果有多个用户同时在DBMS上工作,它还有助于保持一致性。
编写SQL查询的指南现在,让我们仔细看看编写SQL查询需要了解的内容以及要避免的一些常见错误。
第 1 步:了解SQL查询背后的过程在开始编写SQL查询之前,您需要了解它在执行命令时是如何工作的。
当您输入查询时,它会立即被解析成一棵树。解析器是一种将SQL语句转换为解析树的计算机程序,它有助于识别查询是否符合句法和语义要求,即它是否可识别。
然后,如果一切正确,解析器会创建一个内部查询,然后将其传递给重写引擎。
之后,任务优化器会分析一个查询有多少个执行计划,为您的给定查询找到最佳执行计划。该计划表示将用于执行命令的算法。
如果查询编写正确,您将获得预期的结果。
现在,让我们看一下编写正确的SQL查询需要什么。
第 2 步:准备好数据库因此,正如我们已经提到的,要编写SQL查询,您需要通过启动数据库为其创建环境。
如果您已经安装了DBMS软件,则可以使用“CREATE DATABASE”语句直接创建数据库。此命令的基本语法如下所示:
CREATE DATABASE database_name;
例如,如果您想为客户评论创建一个数据库,结果将如下所示:
CREATE DATABASE client_reviews;
要继续使用您的数据库,您需要使用'USE'语句继续您的SQL查询:
USE client_reviews;
这将使该数据库成为您未来所有命令的目标。
请记住:如果具有此名称的数据库已经存在,您将收到一条错误消息。但是,为避免这种情况,您可以使用'IF NOT EXISTS'语句。这是它在MySQL中的样子:
mysql> CREATE DATABASE IF NO EXISTS client_reviews;
如果您的查询是正确的,您将收到一条OK消息。
第 3 步:创建一个表格来组织信息如果数据库已准备就绪,您现在可以继续创建表。正如我们已经提到的,表可以帮助您构建查询并使数据更易于管理。
创建表需要输入'CREATE TABLE'语句。此语句的语法类似于:
CREATE TABLE table_name (
column1_name_constraint,
…
)
我们应该在表名和列名中插入什么是很清楚的,但是让我们仔细看看约束的类型。
约束是数据类型的声明,它指示列将包含哪种数据。您可以在列中包含多种约束:
- CHAR – 固定长度的数据字符串(最大255个字符)
- DATE – YYYY-MM-DD格式的日期
- DATETIME – YYYY-MM-DD格式的日期和HH:MM:SS格式的时间
- DECIMAL – 精确的十进制数据
- INT – 2147483648到2147483647范围内的数字
- TEXT – 文本数据(最大大小为65,500个字符)
- TIMESTAMP – 带有精确秒数的时间戳数据
- VARCHAR – 可变长度数据字符串(最大大小为65,500个字符)
- Modifiers - UNIQUE约束确保一列中每一行的唯一值;PRIMARY-KEY约束标记表中的相关字段;DEFAULT约束表示列的默认值;如果未指定,AUTO_INCREMENT则自动为字段赋值;CHECK约束对可以包含在一列中的值进行了限制;NOT NULL约束从字段中排除空值。
如果我们为每个给出客户评论的人创建一个表格,最终结果将如下所示:
CREATE TABLE customer profiles (
id INT NOT NULL AUTO_INCREMENT
name VARCHAR NOT NULL
birth_date DATE
review TEXT
) ;
创建表时,如果表不存在,您可能会遇到与数据库相同的问题。为避免这种情况,在'CREATE TABLE'语句中,您还应该添加'IF NOT EXISTS'语句。
第 4 步:从基本SQL语句开始当表准备就绪并可以运行时,您现在可以通过在表中插入数据来继续编写SQL查询。
以下是输入和管理表内数据的所有基本语句:
1)“INSERT INTO”语句此语句用于将新行包含到表中。在这种情况下,语法如下所示:
INSERT INTO table_name (column1, column2, column 3);
您还可以包含值——您想要包含在每列中的数据。
以下是我们的客户评论表在向其中插入数据后最终查询的样子:
INSERT INTO customer profiles (name, birth_date, review)
VALUES (‘Jennifer Dickinson’, ‘1987-07-07’, ‘good service’)
最终结果将以表格的形式为您提供姓名、出生日期和评论的编号列表。
2) 'SELECT'子句该子句用于从一个或不同的表中选择和提取数据。此子句的语法将遵循以下模式:
SELECT column1_name, column2_name FROM table_name
-_name
'SELECT'和'FROM'子句的组合允许您从一个或不同表中的一个或多个列中获取信息。如果要选择一个表中的所有列,可以简单地使用'SELECT'、'FROM'子句和表名的组合。
3) 'WHERE'子句通过在表中插入此子句,您可以根据特定条件选择数据。如果您想根据姓名、出生日期等条件选择更新或完全删除行或列中的一条记录,这将很有帮助。以下是使用此子句的基本语法:
SELECT column1_name FROM table_name WHERE condition
-_name
如您所见,该WHERE子句与'SELECT'和'FROM'子句一起使用,可帮助您从正确的列或行中获取正确的数据。
您还可以使用'WHERE'子句根据特定条件过滤不同的记录。
为确保您选择正确的数据,此子句允许您使用几个基本的比较运算符:
- =(等于)
- >(大于)
- =(大于或等于)
-
关注打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?