什么是SQL

什么是SQL

SQL代表结构化查询语言。SQL这个词的发音是ess-Kew-all或sequel。

SQL用于操作由SQL查询的底层关系数据库,例如Oracle,MySQLSQL Server,SQLite,PostgreSQL等。SQL最初是在1970年代开发的,但数据库管理员不经常使用SQL。现在,它也被软件开发人员和数据分析师使用。

SQL是国际标准化组织(ISO)和美国国家标准化组织(ANSI)的标准语言。然而,并非所有的数据库都支持SQL。

以下是SQL语法中包含的各个部分:

1. 关键词:

关键词是保留字或非保留字。SQL保留的关键字包括INTO,UPDATE,SELECT,DELETE,DROP,DESC和ASC。

2. 标识符:

数据库对象,如函数名、模式名、表名等,被命名为标识符。

子句:

查询和SQL语句的组成部分,如WHERE,GROUP BY,HAVING和ORDER BY,由子句形成。

3. 表达式:

由表达式生成的SQL中的数据,可以是列、标量值和行。

4. 布尔条件:

条件的结果是布尔值TRUE或FALSE,也称为表达式。受此条件限制的语句或查询的效果。

5. 查询:

根据特定条件检索数据是通过SQL语句实现的。查询是以SELECT子句开始的语句,因为它们从底层数据库中检索数据。

6. 语句:

SQL语句可以持续地影响模式和数据,或者控制事务、程序流程、连接、会话或诊断。SQL语句,例如INSERT,UPDATE,DROP和DELETE语句,因为它们修改数据库结构或数据。

SQL标准和专有扩展

1986年,美国国家标准化组织采纳了正式的SQL标准,1987年,国际标准化组织采纳了该标准。几年后,SQL的新版本发布,最新版本的SQL是2016版。

国际电工委员会和ISO联合开发了ISO/IEC 9075的SQL标准。ISO标准版本通过使用标准组织ISO/IEC后跟ISO标准号和冒号以及出版年份来引用。SQL的最新ISO标准是ISO/IEC 9075:2016。

开源和专有的围绕SQL构建的关系数据库管理系统已经可以供组织使用。这些产品包括SQL兼容的数据库服务器。其中有Oracle数据库、Microsoft SQL Server、IBM Db2、SAP HANA、Oracle MySQL、SAP自适应服务器、开源PostgreSQL和Oracle MySQL等。

对于过程性编程和其他功能,有一些SQL版本包括对标准语言的专有扩展。例如,Transact-SQL是由Microsoft提供的一组扩展,另一方面,过程语言是标准Oracle的扩展版本。

商业供应商提供专有扩展来区分其产品,为消费者提供额外的功能和特性。因此,供应商提供了一些不同的扩展SQL变体,它们之间只部分兼容。

SQL的基本用法:

  1. 它修改数据库表和索引结构。
  2. 添加、更新和删除数据行。
  3. 它检索关系数据库管理系统中的信息子集。该信息可以用于分析应用程序、事务处理和其他需要与关系数据库通信的应用程序。

关系型数据库与非关系型数据库

SQL查询语言可以用于关系型或非关系型数据库,但对于关系型数据库来说,它给我们带来了优势。

SQL的分类:

结构化查询语言分为以下几类。重要的是,以下表中的语句在不同的数据库中可能会有所不同。

结构化查询语言分为以下几类。重要的是,以下表中的语句在不同的数据库中可能会有所不同。

命令 描述
DDL 数据定义语言
DML 数据操作语言
TCL 事务控制语言
DCL 数据控制语言

1. DDL: (数据定义语言)

数据库中的数据结构通过数据定义语言 (DDL) 语句来定义,例如表、存储过程、函数、视图等。

下表列出了DDL语句:

语句 描述
CREATE 在数据库中创建新的对象,如过程、表、函数、视图等。
ALTER 修改SQL中数据库表的结构。
DROP 删除数据库对象。
RENAME 重命名数据库对象,如序列、视图、表、私有同义词等。
TRUNCATE 移除表中的所有记录。

2. 数据操纵语言 (DML)

数据库对象内的数据管理是通过数据操纵语言 (DML) 语句完成的。它允许对现有数据库模式对象进行查询和操作。

以下是DML语句列表:

语句 描述
SELECT 它将从表中检索行/列。
INSERT 它将向表中插入新数据。
UPDATE 它将更新表中的现有记录。
DELETE 它将从表中删除现有记录。
MERGE 它将根据指定条件在表中插入新行或更新现有行。
LOCK TABLE 它将以指定的模式锁定一个或多个表。根据所应用的锁定,可能拒绝访问表或仅向另一个用户提供只读访问权限。

3. TCL:-(事务控制语言)

通过执行DML语句进行的数据更改将由事务控制语言(TCL)语句最终确认。

语句 描述
COMMIT 在此,事务更改通过它永久保存到数据库中。
ROLLBACK 它将数据库恢复到上一次提交之前的初始状态。
SAVEPOINT 创建一个SAVEPOINT,供ROLLBACK命令后续使用,以撤销改变到该点为止的所有更改。
SET TRANSACTION 设置事务属性,例如读写或只读访问。

4. DCL- 数据控制语言

数据控制语言(DCL)语句用于通过赋予不同用户访问数据库的权限来实施数据库安全性。

语句 描述
GRANT 它将授予用户访问数据的权限。
REVOKE 它将从用户那里收回授予的权限。
COMMENT 它将指定数据库表和列的注释。
ANALYZE 它将收集表、索引、分区、集群等的统计信息。
AUDIT 它将跟踪特定或所有的SQL语句或操作在某个特定模式对象上的发生情况。

5. SCL-会话控制语言

会话控制语言(SCL)语句用于通过执行DML语句来管理对数据库所做的更改。SCL命令基于数据库而异。以下表列出了Oracle数据库的SCL命令。

说明 描述
ALTER SESSION 修改当前会话的数据库参数。
SET ROLE 为当前会话启用或禁用角色。

SQL语句编写规则:

SQL语法是指SQL语句的编写和格式化规则。它类似于其他编程语言。

SQL语法的一些组成部分包括以下内容:

SQL语句以SQL命令开头,以分号(;)结尾,例如:

SELECT * FROM consumers;

这个SELECT语句提取了名为consumers的表的所有内容。

SQL语句是不区分大小写的,这意味着它们可以使用小写字母、大写字母或者大小写混合来编写。然而,按照惯例,SQL关键字、命令或控制运算符一般使用大写字母书写,表和列名一般使用小写字母书写。

语句中的单词可以使用引号来区分大小写,所以下面这两个语句将产生相同的结果。

SELECT * FROM consumers;
select * from CONSUMERS;

这两个表达式是不同的:

SELECT * FROM consumers;
SELECT * FROM "Consumers";

SQL语句仅以分号终止,这意味着可以将更复杂的语句跨多行呈现,例如:

SELECT name, telephone, age
FROM consumers;

这个命令从消费者表中选择姓名、电话和年龄列的内容。

SQL语句可以包含程序流控制,这意味着语句可以包含表和行选择。

例如,以下命令选择年龄超过27岁的所有消费者的姓名、电话号码和出生日期:

SELECT name, telephone, age
FROM consumers
WHERE age > 27;

大多数SQL实现都包括通过命令行、图形用户界面、使用SQL程序、或通过应用程序编程接口来访问使用其他编程语言访问SQL数据库的支持。

一些常用的带有示例的SQL命令

大多数SQL命令与运算符一起使用,以修改或缩小语句操作的数据范围。以下是一些常用的SQL命令和示例:

1. SQL SELECT

SELECT命令用于获取表中的一些或所有数据。

SELECT可以与运算符一起使用以缩小选择的数据量:

SELECT title, writer, publication_date
FROM catalog
WHERE publication_date = 2019;

一个出版商可以使用这个例子从名为catalog的表中选择标题、作者和出版日期列。

2. SQL创建

CREATE命令用于创建一个新的SQL数据库或SQL表。大多数SQL版本通过创建一个新的目录来创建一个新的数据库,其中的表和其他数据库对象以文件形式存储。

以下CREATE DATABASE语句创建一个名为Human_Res的新SQL数据库:

CREATE DATABASE Human_Res;

CREATE TABLE命令用于在SQL中创建表格。下面的语句创建了一个名为Workers的表格,该表格包含三个列:employee_ID、last_name和first_name。第一列存储整数(int)数据,其他列存储最大长度为255的可变字符数据类型varchar。

CREATE TABLE Workers (
employee_ID int,
last_name varchar(255),
first_name varchar(255)
);

3. SQL DELETE

DELETE命令从指定的表中删除行。在这个例子中,删除了所有姓Swain的工人记录:

DELETE FROM Workers WHERE last_name='Swain';

这个语句在运行结束时返回被删除的行数。

4. SQL INSERT INTO:

INSERT INTO命令用于向数据库表中添加记录。下面的语句向Employee表中添加一条新记录:

INSERT INTO Workers (
last_name,
first_name
)
VALUES (
'Alan,'
'Swain'
);

5. SQL UPDATE

UPDATE命令用于对特定表中的行或记录进行更改。例如,以下语句通过将名字更改为Sahoo,更新所有包含last_name值为Swain的记录:

UPDATE Workers
SET last_name = 'Sahoo',
WHERE last_name = 'Swain';

SQL语句可以使用循环,变量和其他编程语言组件根据不同的条件更新记录。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程