什么是SQL
SQL是结构化查询语言的缩写。SQL这个词的发音是ess-Kew-all或sequel。
SQL用于操作由SQL查询的底层关系型数据库,如Oracle、MySQL、SQL Server、SQLite、PostgreSQL等。最初,SQL是在20世纪70年代开发的,但数据库管理员并不经常使用SQL。现在,它也被软件开发人员和数据分析师所使用。
SQL是一种ISO(即国际标准化组织)和ANSI(即美国国家标准协会)标准语言。然而,SQL并不被所有的数据库所支持。
以下是SQL语法中包括的各个部分
1.关键词
关键词是保留或不保留的词。SQL保留的关键字是INTO, UPDATE, SELECT, DELETE, DROP, DESC, 和ASC。
2.标识符
数据库对象,如函数名、模式名、表名等,被命名为标识符。
条款。
查询和SQL语句的组成部分,如WHERE、GROUP BY、HAVING和ORDER BY,由子句构成。
3.表达式
由EXPRESSION产生的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建立的开源和专有RDBMS可供组织使用。给出的产品都包含在符合SQL标准的数据库服务器中。这些产品如oracle数据库、Microsoft SQL Server、IBM Db2、SAP HANA、Oracle MySQL、SAP adaptive server、开源PostgreSQL和Oracle MySQL。
对于程序性编程和其他一些功能,有一些SQL版本包括对标准语言的专有扩展。例如,transact-SQL是由微软提供的一套扩展,另一方面,程序性语言是Oracle标准的扩展版本。
专有的扩展是由商业供应商提供的,通过向消费者提供额外的功能和特性来区分他们的产品。因此,供应商提供了一些不同的扩展SQL的变体,它们只是部分地相互兼容。
SQL的基本用途
- 它可以修改数据库的表和索引结构。
- 它添加、更新和删除数据行。
- 关系数据库管理系统内的信息子集被它检索出来。这些信息可用于分析应用、交易处理和其他需要与关系型数据库通信的应用。
关系型数据库与非关系型数据库
关系型或非关系型数据库都使用SQL查询语言,但这给我们带来了关系型数据库的优势。
SQL的分类
结构化查询语言分为以下几类。重要的一点是,下表中的语句在不同的数据库中可能会有所不同。
结构化查询语言分为以下几类。重要的一点是,下表中的语句在不同的数据库中可能有所不同。
命令 | 描述 |
---|---|
DDL | 数据定义语言 |
DML | 数据操作语言 |
TCL | 事务控制语言 |
DCL | 数据控制语言 |
1.DDL: (数据定义语言)
数据库中的数据结构需要借助于数据定义语言(DDL)语句来定义,如表、程序、函数、视图等。
下表列出了DDL语句
语句 | 描述 |
---|---|
CREATE | 它将在数据库中创建一个新的对象,如过程、表、函数、视图等。 |
更改 | 它将在SQL中修改数据库表的结构。 |
DROP | 它将删除数据库中的对象。 |
重命名 | 它将重命名数据库对象,如序列、视图、表、私有同义词)。 |
TRUNCATE | 它将删除一个表的所有记录。 |
2.DML: (数据操作语言)
数据库对象内的数据管理是由数据操作语言(DML)语句完成的。它允许对现有的数据库模式对象进行查询和操作。
下表列出了DML语句
语句 | 说明 |
---|---|
选择(SELECT) | 它将从一个表中检索行/列。 |
INSERT | 它将向一个表插入新的数据。 |
更新(UPDATE | 它将更新表的现有记录。 |
删除(DELETE | 它将从表中删除现有记录。 |
合并 | 它将根据指定的条件在表中插入新行或更新现有行。 |
锁定表 | 它将以指定的模式锁定一个或多个表。基于所应用的锁,表的访问被拒绝或只给另一个用户真正的访问。 |
3.TCL:-( 事务控制语言)
通过执行DML语句所做的数据改变是由事务控制语言(TCL)语句最终确定的。
语句 | 语句描述 |
---|---|
提交(COMMIT | 在这个语句中,事务的变化被永久地保存到数据库中。 |
ROLLBACK | 它恢复了自上次注释以来数据库的原始状态。 |
SAVEPOINT | 它创建一个SAVEPOINT,以便以后被ROLLBACK命令用来撤销到该点为止的更改。 |
设置交易 | 设置事务属性,如READ WRITE或READ ONLY访问。 |
4.DCL-数据控制语言
数据控制语言(DCL)语句用于通过赋予不同用户访问数据库的权限来执行数据库的安全性。
语句 | 语句描述 |
---|---|
授权(GRANT | 它将赋予用户访问数据的权限。 |
撤销(REVOKE) | 它将从用户那里收回给定的权限。 |
注释 | 它将指定数据库表和列的注释。 |
分析(ANALYZE | 它将收集表、索引、分区、集群等的统计数据。 |
审计 | 它将跟踪特定或所有SQL语句或操作在某些特定模式对象上的发生情况。 |
5.SCL-会话控制语言
会话控制语言(SCL)语句用于管理通过执行DML语句对数据库进行的修改。SCL命令根据数据库的不同而不同。下表列出了Oracle数据库的SCL命令。
声明 | 描述 |
---|---|
ALTER SESSION | 修改当前会话的数据库参数。 |
SET ROLE | 启用或禁用当前会话的角色。 |
编写SQL语句的规则
SQL语法是关于如何编写和格式化SQL语句的一组规则。它与其他编程语言类似。
SQL 语法的一些组成部分包括以下内容。
SQL语句以SQL命令开始,以分号(;)结束,例如:。
SELECT * FROM consumers;
这个SELECT语句提取了一个叫做消费者的表的所有内容。
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;
一个出版商可以用这个例子从一个名为目录的表中选择标题、作者和出版日期列。
2.SQL CREATE
CREATE命令是用来创建一个新的SQL数据库或SQL表。大多数版本的SQL通过创建一个新的目录来创建一个新的数据库,在这个目录中,表和其他数据库对象被存储为文件。
下面的CREATE DATABASE语句创建了一个名为Human_Res的新SQL数据库。
CREATE DATABASE Human_Res;
CREATE TABLE命令是用来在SQL中创建一个表。下面的语句创建了一个名为Workers的表,该表有三列:employee_ID,last_name和first_name,第一列存储整数(int)数据,其他列存储varchar类型的可变字符数据,最大长度为255字符。
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命令是用来对特定表中的行或记录进行修改。例如,下面的语句更新了所有包括姓Swain的记录,把名字改为Sahoo。
UPDATE Workers
SET last_name = 'Sahoo',
WHERE last_name = 'Swain';
SQL语句可以使用循环、变量和其他编程语言组件,根据不同标准更新记录。