SQL基本情况

SQL代表结构化查询语言
SQL发音为“sequel”
SQL是声明性语言
SQL用于访问和操作数据库中的数据
顶级SQL数据库是MS SQL Server,Oracle,DB2和MySQL

SQL命令分类

数据查询语言 (DQL)
 SELECT - 从表中检索数据
数据操纵语言 (DML)
 INSERT - 将数据插入数据库表
 UPDATE - 更新数据库表中的数据
 DELETE - 从表中删除数据
数据定义语言 (DDL)
 CREATE - 创建db对象(表,视图等)
 ALTER - 修改db对象(表,视图等)
 DROP - 删除db对象(表,视图等)
数据控制语言 (DCL)
 GRANT - 分配权限
 REVOKE - 删除权限

数据库定义

 RDBMS (关系数据库管理系统) –
    存储和操作在关系数据库表中排列数据的软件
 Table – 以列和行排列的一组数据。
             列表示存储数据的特性
             行表示实际数据条目

如何从表中检索数据

SELECT <要显示的列>
FROM <表名>
WHERE <检索条件>

示例:
SELECT FirstName, LastName, OrderDate
FROM Orders WHERE OrderDate > '10/10/2010'

如何往表中插入数据

INSERT INTO <表名>
(<列名>) VALUES (<具体值>)

示例:
INSERT INTO Orders
(FirstName, LastName, OrderDate) VALUES
('John', 'Smith', '10/10/2010')

如何更新表中的数据

UPDATE <表名>
SET <列名1> = <值1>, <列名2> = <值2>, …
WHERE <查询条件>

示例:
UPDATE Orders
SET FirstName = 'John', LastName = 'Who' WHERE LastName='Wo'

如何从表中删除数据

DELETE FROM <表名>
WHERE <查询条件>

示例:
DELETE FROM Orders
WHERE OrderDate < '10/10/2010'

如何排序数据

SELECT <要显示的字段>
FROM <表名>
WHERE <检查条件>
ORDER BY <要排序的字段>

示例:
SELECT FirstName, LastName, OrderDate
FROM Orders
WHERE OrderDate > '10/10/2010'
ORDER BY OrderDate

如何从多个表中选择数据

SELECT <字段列表>
FROM <表1> JOIN <表2>
ON <表11>.<字段1> = <表2>.<字段1>

示例:
SELECT Orders.LastName, Countries.CountryName
FROM Orders JOIN Countries ON
Orders.CountryID = Countries.ID

如何分组数据和使用聚合

SELECT <字段>, <聚合函数>(<字段名>)
FROM <Table Name>
WHERE <Search Condition>
GROUP BY <分组的字段>

示例:
SELECT LastName, SUM(OrderValue)
FROM Orders
WHERE OrderDate > '10/10/2010'
GROUP BY LastName

使用UNION

SELECT <Column List> FROM <Table1>
UNION
SELECT <Column List> FROM <Table2>

示例:
SELECT FirstName, LastName FROM Orders2010
UNION
SELECT FirstName, LastName FROM Orders2011

创建表名

CREATE TABLE <表名>
( 字段1 数据类型,
字段2 数据类型,
字段3 数据类型,
…. )

示例:
CREATE TABLE Orders
( FirstName CHAR(100),
LastName CHAR(100),
OrderDate DATE,
OrderValue Currency )