简单了解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是撤销授权语句。

posted @ 2017-08-24 16:32  zzfx  阅读(1640)  评论(0编辑  收藏  举报