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