暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

结构查询语言之SQL语法

        当前主流的关系数据库系统都是采用的SQL作为查询语言,但都只实现了SQL标准的一个子集,并且对SQL标准有所扩展。

  SQL是一种基于关系代数和关系演算的非过程化语言,它指定用户学习哪些操作,而不指定如何去操作数据,具有非过程化、简单易学、易迁移、高度统一等特点。

(1) 非过程化:在使用SQL的过程中,用户并不需要理解SQL的具体操作方法,只需要通过SQL描述想要获得的结果集合的条件,至于数据库系统如何取得结果,则由数据库查询优化系统负责生成具体的执行计划去完成。

(2)简单易学:SQL的设计非常精简,只需要有限的命令就可以完成复杂的查询操作,而且其语法接近自然语言,易于理解。

(3)易迁移:主流的关系数据库系统都支持以SQL为标准的查询操作,虽然不同的数据库管理系统对SQL的标准有所扩展但是从一个数据库管理系统迁移到另一个数据库管理系统的难度并不高。

(4) 高度统一:SQL具有高度的统一性,依照标准有统一的语法结构、统一的风格,使得对数据库的操作也具有完备性。

从SQL功能的角度出发,它可以划分为如下4种语言子集:

(1) DDL(Data Definition Language,数据定义语言):定义、修改、删除数据库模式,通常包括CREATE TABLE、ALTER TABLE、DROP TABLE等操作。

(2)DQL(Data Query Language,数据查询语言):查询数据。DQL指的是以SELECT命令开始的SQL语句,对数据表中的数据进行投影、选择、连接等操作。

(3)DML(Data Manipulation Language,数据操作语言):插入、删除、更新数据,主要包括INSERT、DELETE、UPDATE等操作。

(4)DCL(Data Control Language,数据控制语言):控制用户对数据的访问权限,主要包括GRANT、REVOKE等操作。

数据类型:

和所有的计算机语言一样,SQL也有自己的数据类型,创建基本表(关系)的时候,需要指定基本表每一列的数据类型(属性),一个基本表就是一个实体。

表模式定义:

在关系数据库中,每个关系是一个数据实体,在SQL中可以通过CREATE TABLE命令来创建一个基本表来代表一个“关系”。

    CREATE TABLE 表名(
    列名 列数据类型,
    列名 列数据类型,
    ………
    );

    数据完整性检查:

           关系模型的数据完整性主要是为了保证数据不被破坏,可以分为域完整性、实体完整性、参照完整性和用户定义完整性,其中用户定义完整性是指用户在具体应用环境下对数据库提出的约束要求。

           在创建基本表同时,可以指定表中数据完整性约束,例如创建一个表,设置主键和外键值;指定表中某一列的数据不能相同且值不能为NULL;设置某列数据的默认值;某一列数据长度必须大于或小于某个值等等。当你写入的数据不符合基本表的约束时,就会报错。

    插入、删除、更新数据:

           基本表创建后是一个空的集合,这时就可以对基本表做DML操作,如插入、删除以及更新基本表中的数据。

    简单查询:

           最基本的SQL查询语句通常由SELECT、FROM、WHERE构成,其中包含了关系代数中的投影(Projection)、选择(Selection)和连接(Join)。其中连接(Join)可以由一个基本表构成,也可以是多个基本表的连接结果,选择(Selection)操作是一组针对连接操作产生的结果的表达式,这些表达式值为BOOL类型,他们对连接产生的结果做过滤,过滤之后的元组会组成新的中间关系,最后由投影(Projection)操作输出。

    连接操作:

           如果FROM关键字后有超过2个及以上的表参与连接操作,则该查询称为连接查询,也可以叫做多表查询。

           连接查询是SQL中最基本的操作,它的本质是多个表之间做笛卡尔积,借由这个思想又衍生出了自然连接、θ连接等。



    我声明一下,我现在写的这些,我只是写了知识点,没有做实验贴截图进来,大家可能认为我是嘴炮子,但是这些知识点其实不难,我以前做过相关实验,我这次学习就没写,如果您是没有接触过数据库的读者,建议网上找点相关文章或者B站找点相关视频做一些实验,这样可以更好的理解文章意思。如果是大佬看到了,我有哪里写得不好,欢迎关注公众号点击加我微信,扫描二维码加我微信提供您宝贵的意见。

    文章转载自春哥的嵌入式小世界,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

    评论