1、SQL语言的基本概念
SQL指结构化查询语言,全称是 Structured Query Language。使用 SQL 可以访问和处理关系型数据库,它是用于访问和处理数据库的标准的计算机语言。
SQL语句既可以查询数据库中的数据,也可以添加、更新和删除数据库中的数据,还可以对数据库进行管理和维护操作。不同的数据库,都支持SQL,这样,我们通过学习SQL这一种语言,就可以操作各种不同的数据库。
虽然SQL已经被ANSI组织定义为标准,不幸地是,各个不同的数据库对标准的SQL支持不太一致。并且,大部分数据库都在标准的SQL上做了扩展。也就是说,如果只使用标准SQL,理论上所有数据库都可以支持,但如果使用某个特定数据库的扩展SQL,换一个数据库就不能执行了。例如,Oracle把自己扩展的SQL称为PL/SQL
,Microsoft把自己扩展的SQL称为T-SQL
。
现实情况是,如果我们只使用标准SQL的核心功能,那么所有数据库通常都可以执行。不常用的SQL功能,不同的数据库支持的程度都不一样。而各个数据库支持的各自扩展的功能,通常我们把它们称之为“方言”。
SQL 的特点有:
- SQL 面向数据库执行查询
- SQL 可从数据库取回数据
- SQL 可在数据库中插入新的记录
- SQL 可更新数据库中的数据
- SQL 可从数据库删除记录
- SQL 可创建新数据库
- SQL 可在数据库中创建新表
- SQL 可在数据库中创建存储过程
- SQL 可在数据库中创建视图
- SQL 可以设置表、存储过程和视图的权限
1.1、NoSQL的简单介绍
除了关系型数据库外,你可能还听说过NoSQL数据库,也就是非SQL的数据库,包括MongoDB、Cassandra、Dynamo等等,它们都不是关系数据库。有很多人鼓吹现代Web程序已经无需关系数据库了,只需要使用NoSQL就可以。但事实上,SQL数据库从始至终从未被取代过。今天,SQL数据库仍然承担了各种应用程序的核心数据存储,而NoSQL数据库作为SQL数据库的补充,两者不再是二选一的问题,而是主从关系。所以,无论使用哪种编程语言,无论是Web开发、游戏开发还是手机开发,掌握SQL,是所有软件开发人员所必须的。
2、SQL的语法特点
SQL语法的语法特点有:
- SQL 对关键字的大小写不敏感,比如SELECT 与 select 是相同的,一个关键字混合大小写也是可以的,比如 SeLect,关键字建议大写。
- 数据库名,表名,表字段一般来说都是区分大小写的,所以在使用SQL命令操作数据库表和字段时需要输入正确的名称。
- SQL语句可以以单行或者多行书写,以分行结束(某些数据库系统要求在每条 SQL 语句的末端使用分号,比如MySQL)。分号是在数据库系统中分隔每条 SQL 语句的标准方法,这样就可以在对服务器的相同请求中执行一条以上的 SQL 语句。
- SQL的注释:
单行注释: -- 注释内容、# 注释内容 (在MySQL中,-- 后面一定要加一个空格,#后面可加可不加空格。单行注释建议使用 #) SELECT * FROM Websites; -- 这里是注释 SELECT * FROM Websites; # 这里是注释 多行注释: /* 注释内容 注释内容 */
3、SQL语句的分类(DDL、DML、DQL、DCL)
SQL语言定义了以下四种操作数据库的能力,可分为以下四类:
DDL(Data Definition Language,操作数据库和表结构):DDL是用来操作数据库和表的,也就是创建数据库和表、删除数据库和表、修改表结构这些操作。通常,DDL由数据库管理员执行。
DQL(Data Query Language,查询数据):DQL就是用来查询表中的数据的,为用户提供查询数据的能力,这也是通常最频繁的数据库日常操作。
DML(Data Manipulation Language,修改数据):DML就是用来增删改表中的数据的,为用户提供添加、删除、更新数据的能力,这些是应用程序对数据库的日常操作。
DCL(Data Control Language,授权权限):DCL是用来授权的,用来定义数据库的访问权限和安全级别,以及创建用户等。关键字:GRANT、REVOKE等。