来源于百度百科http://baike.baidu.com/view/34.htm?fromId=265226

结构化查询语言(Structured Query Language)最早是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEM R开发的一种查询语言,它的前身是SQUARE语言。SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言得到了广泛的应用。如今无论是像OracleSybase、DB2、Informix、SQL Server这些大型的数据库管理系统,还是像Visual Foxpro、PowerBuilder这些PC上常用的数据库开发系统,都支持SQL语言作为查询语言。

SQL语言包含3个部分:
数据定义语言Data Definition Language(DDL),用来建立数据库、数据对象和定义其列。定义:definition/ 例如:CREATE、DROP、ALTER等语句。
数据操作语言Data Manipulation Language(DML),用来插入、修改、删除、查询,可以修改数据库中的数据。操作:make/ 例如:INSERT(插入)、UPDATE(修改)、DELETE(删除)语句、SELECT(查询)
数据控制语言Data Controlling Language(DCL),用来控制数据库组件的存取允许、存取权限等。控制:control/ 例如:GRANT、REVOKE、COMMIT、ROLLBACK等语句。
SQL语言包括三种主要程序设计语言类别的语句:数据定义语言(DDL),数据操作语言(DML)及数据控制语言(DCL)。
DDL
数据库模式定义语言DDL (Data Definition Language)用于定义和管理对象,例如数据库、数据表以及视图。DDL 语句通常包括每个对象的CREATE、ALTER 以及 DROP 命令。举例来说,CREATE TABLE、ALTER TABLE 以及 DROP TABLE 这些语句便可以用来建立新数据表、修改其属性(如新增或删除资料行)、删除数据表等,下面我们会一一介绍。
CREATE TABLE 语句
使用 DDL 在 MyDB 资料库建立一个名为 Customer_Data 的范例数据表(注:以下语句都必须在Sql Server数据库中执行),本章后面的例子我们会使用到这个数据表。如前所述,CREATE TABLE 语句可以用来建立数据表。这个范例数据表被定义成四个数据行,如下所示:
Use MyDB
CREATE TABLE Customer_Data
(customer_id smallint,
first_name char(20),
last_name char(20),
phone char(10))
GO
这个语句能产生 Customer_Data 数据表,这个数据表会一直是空的直到数据被填入数据表内。
ALTER TABLE 语句
ALTER TABLE 语句用来修改数据表的定义与属性。在下面的例子中,我们利用 ALTER TABLE 在已经存在的 Customer_Data 数据表中新增 middle_initial 数据行。
ALTER TABLE Customer_Data
ADD middle_initial char(1)
GO
DROP TABLE 语句 
DROP TABLE 语句用来删除数据表定义以及所有的数据、索引、触发程序、条件约束以及数据表的权限。要删除我们的 Customer_Data 数据表,可利用下列命令:
DROP TABLE Customer_Data
GO

DML

DML(Data Manipulation Language) 数据操纵语言 DML 利用 INSERT、SELECT、UPDATE 及 DELETE 等语句来操作数据库对象所包含的数据。

INSERT 语句

INSERT 语句用来在数据表或视图中插入一行数据。例如,如果要在Customer_Data 数据表中新增一个客户,可使用类似以下的 INSERT 语句:
INSERT INTO Customer_Data
(customer_id,first_name,last_name,phone)
VALUES (777,'Frankie','Stein','4895873900')
请注意 SQL 语句中第二行的数据列名称列表,列表上数据行名称的次序决定了数据数值将被放在哪个数据列。举例来说,第一个数据数值将被放在列表列出的第一个数据列customer_id、第二个数据数值放在第二个数据列 ,依此类推。由于我们在建立数据表时,定义数据行填入数值的次序与现在相同,因此我们不必特意指定列名称。我们可以用以下的 INSERT 语句代替:
INSERT INTO Customer_Data
VALUES (777,'Frankie','Stein','4895873900')
注意
如果使用这种形式的 INSERT 语句,但被插入的数值次序上与建立数据表不同时,数值将被放入错误的数据列。如果数据的类型与定义不符,则会收到一个错误讯息。

UPDATE 语句

UPDATE 语句用来更新或修改一行或多行中的值。例如,一位名称为 Frankie Stein 的客户想要在记录中改变他的姓氏为 Franklin,可使用以下 UPDATE 陈述式:
UPDATE Customer_Data
SET first_name = ‘Franklin’
WHERE last_name = ‘Stein’ and customer_id= 777
我们在 WHERE 子句中加入 customer_id 的项目来确定其他名称不为 Stein 的客户不会被影响——---只有customer_id为777的客户,姓氏会有所改变。
--------------------------------------------------------------------------------
说明
当您使用 UPDATE 语句时,要确定在 WHERE 子句提供充分的筛选条件,如此才不会不经意地改变了一些不该改变的数据。
--------------------------------------------------------------------------------

DELETE 语句

DELETE 语句用来删除数据表中一行或多行的数据,您也可以删除资料表中的所有数据行。要从 Customer_Data 数据表中删除所有的行,您可以利用下列语句:
DELETE FROM Customer_Data
DELETE Customer_Data
数据表名称前的 FROM 关键字在 DELETE 语句中是选择性的。除此之外,这两个语句完全相同。
要从 Customer_Data 数据表中删除 customer_id 数据行的值小于100的行,可利用下语句:
DELETE FROM Customer_Data
WHERE customer_id < 100
现在我们已经快速浏览了 SQL 提供的 DDL 与 DML 语句,接著,下面将介绍 DCL。

DCL

DCL,即Data Control Language,数据控制语言
DCL用于控制对数据库对象操作的权限,它使用GRANTREVOKE语句对用户或用户组授予或回收数据库对象的权限
--------------------------------------------------------------------------------

SELECT 语句

SELECT 语句用来检索数据表中的数据,而哪些数据被检索由列出的数据行与语句中的 WHERE 子句决定。例如,要从之前建立的 Customer_Data数据表中检索 customer_id 以及 first_name 数据行的数据,并且只想取出每行中 first_name 数据值为 Frankie 的数据,那麼可以利用以下的 SELECT 语句:
SELECT customer_id,first_name FROM Customer_Data
WHERE first_name = ‘Frankie’
如果有一行符合 SELECT 语句中的标准,则结果将显示如下:
customer_id first_name
------------- ------------
777 Frankie