• 简单了解SQL(结构化查询语言)


    http://www.cnblogs.com/pinnsvin/p/5528272.html

    结构化查询语言(英语:Structural Query Language,缩写:SQL),是一种特殊目的之编程语言,用于数据库中的标准数据查询语言,IBM公司最早使用在其开发的数据库系统中。1986年10月,美国国家标准学会对SQL进行规范后,以此作为关系式数据库管理系统的标准语言(ANSI X3. 135-1986),1987年得到国际标准组织的支持下成为国际标准。不过各种通行的数据库系统在其实践过程中都对SQL规范作了某些编改和扩充。所以,实际上不同数据库系统之间的SQL不能完全相互通用。[维基百科] 

    SQL是高级的非过程化编程语言,它允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解其具体的数据存放方式。而它的界面,能使具有底层结构完全不同的数据库系统和不同数据库之间,使用相同的SQL作为数据的输入与管理。它以记录项目〔records〕的合集(set)〔项集,record set〕作为操纵对象,所有SQL语句接受项集作为输入,回提交的项集作为输出,这种项集特性允许一条SQL语句的输出作为另一条SQL语句的输入,所以SQL语句可以嵌套,这使它拥有极大的灵活性和强大的功能。在多数情况下,在其他编程语言中需要用一大段程序才可实践的一个单独事件,而其在SQL上只需要一个语句就可以被表达出来。这也意味着用SQL可以写出非常复杂的语句。[维基百科] 

    SQL分类:

    • 数据查询语言(DQL)
    • 数据定义语言(DDL)
    • 数据操纵语言(DML)
    • 数据控制语言(DCL)

    1.数据查询语言(DQL)

    数据查询语言(Data Query Language, DQL)是SQL语言中,负责进行数据查询而不会对数据本身进行修改的语句,这是最基本的SQL语句。 

    语法结构: 

    SELECT [要提取的欄位,或是用"*"代表全部的欄位] 

    FROM [要提取的資料來源物件,包含資料表,檢視表與表格型使用者函數等] -- 可搭配JOIN做關聯式連結。

    WHERE [提取的過濾條件] -- WHERE可有可無。

    GROUP BY [要做彙總的群組欄位] -- GROUP BY在使用彙總指令時必須要有。

    HAVING [要做為條件的彙總欄位] -- 要使用彙總函數作為條件時使用

    ORDER BY [要排序的欄位與方向] -- ORDER BY可有可無,若沒有則是按照查詢引擎的輸出序為主。

    2.数据定义语言(DDL)

    数据定义语言 (Data Definition Language, DDL) 是SQL语言集中,负责数据结构定义与数据库对象定义的语言,由CREATE、ALTER与DROP三个语法所组成,最早是由 Codasyl (Conference on Data Systems Languages) 数据模型开始,现在被纳入 SQL 指令中作为其中一个子集。

    语法结构:

    CREATE

    CREATE可以用来创建用户、数据库,数据表,视图,存储过程,存储函数,触发器,索引等。

    ALTER是负责数据库对象修改的指令。

    DROP是删除数据库对象的指令,只需要指定要删除的数据库对象名即可。

    3.数据操纵语言(DML)

    数据操纵语言(Data Manipulation Language, DML)是SQL语言中,负责对数据库对象运行数据访问工作的指令集,以INSERT、UPDATE、DELETE三种指令为核心,分别代表插入、更新与删除。

    语法结构:

    INSERT 是将数据插入到数据库对象中的指令,可以插入数据的数据库对象有数据表以及可更新查看表两种。

    UPDATE 指令是依给定条件,将匹配条件的数据表中的数据更新为新的数值。

    DELETE 是为数据库对象中删除数据的指令。

    4.数据控制语言(DCL)

    数据控制语言 (Data Control Language) 在SQL语言中,是一种可对数据访问权进行控制的指令,它可以控制特定用户账户对数据表、查看表、预存程序、用户自定义函数等数据库对象的控制权。由 GRANT 和 REVOKE 两个指令组成。

    DCL以控制用户的访问权限为主,GRANT为授权语句,对应的REVOKE是撤销授权语句。

  • 相关阅读:
    Oracle删除约束和主键的语句
    Tomcat启动时SecureRandom超级慢的问题
    MySQL innodb引擎下根据.frm和.ibd文件恢复表结构和数据
    ORA-00604: 递归 SQL 级别 1 出现错误 ORA-01653: 表 SYS.AUD$ 无法通过 8192 (在表空间 SYSTEM 中) 扩展
    Linux 使用pwgen命令创建随机密码
    nginx 之 proxy_pass详解
    给nginx生成自签名证书
    常见排序算法(java实现)
    浅析变量的作用域和生存周期的差别
    filter过滤器
  • 原文地址:https://www.cnblogs.com/feng9exe/p/7423799.html
Copyright © 2020-2023  润新知