MySQL数据库与SQL语言的规范

在这里插入图片描述

文章中所有操作均是在 MySQL 5.7 版本下进行的

SQL语言

结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。

结构化查询语言(SQL 语言)是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。

关于 SQL 语言的历史起源,有兴趣的朋友可以搜一搜网络。

SQL语言的功能

SQL 语言具有数据定义、数据操纵和数据控制:

  1. SQL数据定义功能:能够定义数据库的三级模式结构,即外模式、全局模式和内模式结构。在 SQL 中,外模式又叫做视图(View),全局模式简称模式(Schema),内模式由系统根据数据库模式自动实现,一般无需用户过问。
  2. SQL 数据操纵功能:包括对基本表和视图的数据插入、删除和修改,特别是具有很强的数据查询功能。
  3. SQL 的数据控制功能:主要是对用户的访问权限加以控制,以保证系统的安全性。

SQL语言的语句结构

SQL 语言包含6个部分:

  1. 数据查询语言(DQL),也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。保留字 SELECT 是 DQL(也是所有 SQL)用得最多的动词,其他 DQL 常用的保留字有 WHERE,ORDER BY,GROUP BY和HAVING等等。这些 DQL 保留字常与其它类型的 SQL 语句一起使用。
  2. 数据操作语言(DML),其语句包括动词 INSERT、UPDATE 和 DELETE。它们分别用于添加、修改和删除。
  3. 事务控制语言(TCL),它的语句能确保被 DML 语句影响的表的所有行及时得以更新。包括 COMMIT(提交)命令、SAVEPOINT(保存点)命令、ROLLBACK(回滚)命令。
  4. 数据控制语言(DCL),它的语句通过 GRANT 或 REVOKE 实现权限控制,确定单个用户和用户组对数据库对象的访问。某些 RDBMS 可用 GRANT 或 REVOKE 控制对表单个列的访问。
  5. 数据定义语言(DDL),其语句包括动词 CREATE、ALTER 和 DROP。在数据库中创建新表或修改、删除表(CREAT TABLE 或 DROP TABLE)、为表加入索引等。
  6. 指针控制语言(CCL),像 DECLARE CURSOR,FETCH INTO 和 UPDATE WHERE CURRENT用于对一个或多个表单独行的操作。

SQL语言的编写规范

通用规范

所谓 SQL 语言的通用规范,SQL 语言不区分字母大小写, 单行注释为“-- 注释内容”,多行注释为“/* 注释内容 */”,编写 SQL 语句根据情况进行适量缩进,等等吧。慢慢总结话也是很多的,很多规范都是细节化操作。包括数据库,表,表里的列(字段)命名,其它的命名规范。引号的使用是使用单引号没有双引号,还要避免一些关键字的使用等等。

公司要求的规范

像这部分要求,每个公司都有自己一套的操作规范或者是命名规范。作者理解的如果公司不是很奇葩的情况下,大家的规范基本都应该大同小异,当然会存在不同之处。作者参与过不少的项目和产品,其中也会和别的公司对接的情况,私下的交流(不涉及公司机密前提下)得知基本上大家都是差不多的,也就是所谓的大同小异吧。

MySQL数据库的反引号

反引号在哪?在数字键 1 左边,也就是 Esc 键的下面,是在英文输入法下的输入的。它大部分工作是用来区分关键字或者保留字用的。

比如创建一个表 “create table desc;”,这个命令是报错的,因为使用了“desc”这个关键字。我们应该尽量避免这么做,但是由于特殊原因必须这么定义,那只能通过反引号“create table `desc`”。

再看一个例子,如果有一个表“create table `test`(`desc` varchar(50));”,表结构非常简单。如果 SQL 语句是这样的“select desc from test where …”,这肯定是报错的,应该用如下 SQL 语句“select `desc` from `test` where …”,其它操作语句也是如此。

结语

我们不管在学习什么数据库,比如 MySQL,Oracle,MSSQLServer 等关系型数据库管理系统的时候,我们如何操作这些数据库,首先不同的数据库操作上是存在差异的,但是当我们进入数据库之后都是通过 SQL 语句去操作数据库的。当然会随着技术的深入,各个数据库之间确实存在 SQL 语句的差异,但是这些都是细微的差异。

所以有些朋友会引起概念的混淆,SQL 语言是一种独立的特殊目的的编程语言,它是用来存取数据以及查询、更新和管理数据库的,所以在学习的这些关系型数据库的时候必须要学习 SQL 语言,甚至换了一种数据库之后还要去学习它们之间的细微差异。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WorkLee

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值