教程学习地点:http://www.w3school.com.cn/sql/

SQL是一种标准,一种技术方案,使得数据的存储,添加,查询等操作与使用者分离开,从而使用者不需要关注实现细节而可以广泛地在各种版本的RDBMS中使用(类似于封装).

RDBMS是指关系型数据库管理系统(relation data base managing system).RDBMS中的数据存储在被称为表(tables)的数据库对象中.表是相关的数据项的集合,它由列和行组成.

一个数据库通常包含一个或者多个表,每个表由一个名字标识,表包含带有数据的记录(行).

下面的例子是一个名为 "Persons" 的表:

IdLastNameFirstNameAddressCity
1AdamsJohnOxford StreetLondon
2BushGeorgeFifth AvenueNew York
3CarterThomasChangan StreetBeijing

需要注意的是:SQL对大小写不敏感.


SQL可以分为两个部分,一是数据操作语言(DML),另一个是数据定义语言(DDL)

DML:    查询和更新工作构成了DML的主要部分

  • SELECT               --从数据库表中获取数据

  • UPDATE             --更新数据库表中的数据

  • DELETE              --从数据库表中删除数据

  • INSERT INTO    --向数据库表中插入数据

DLL:    数据定义语言(DDL)是我们有能力创建或删除表格.我们也可以定义索引(键),规定表之间的链接,以及施加表之间的约束.

  • CREATE DATABASE    --创建新数据库

  • ALTER DATABASE       --修改数据库

  • CREATE TABLE            --创建新数据表

  • ALTER TABLE              --修改数据表

  • DROP TABLE              --删除数据表

  • CREATE INDEX           --创建数据索引(键)

  • DROP INDEX              --删除数据索引(键)


SELECT     以及 SELECT *语句

   SELECT语句用于从表中选取数据.结果被存储在一个结果表中(称为结果集).

  •     SELECT 列名称 FROM 表名称

  •     SELECT * FROM 表名称

  •     SELECT 列1,列2 FROM 表名称

DISTINCT

    关键词DISTINCT用于返回唯一不同的值.

  •     SELECT DISTINCT 列名称 FROM 表名称

WHERE 子句

如需有条件地从表中选取数据,可将WHERE子句添加到SELECT语句.

  •     SELECT 列名称 FROM 表名称 WHERE 列 运算符 值

    运算符包含下列:    =    <>    >    <    >=    <=    BETWEEN    LIKE

    示例: SELECT * FROM Persons WHERE City='BeiJing'

注意:使用单引号来环绕文本值,如果是数值,不需要使用引号.

AND 和 OR 运算符

AND 和 OR 运算符用于基于一个以上的条件对记录进行过滤.

  • SELECT * FROM Persons WHERE FirstName='Thomas' AND LastName='Carter'

  • SELECT * FROM Persons WHERE FirstName='Thomas' OR LastName='Carter'

我们也可以把 AND 和 OR 结合起来(使用圆括号来组成复杂的表达式):

  • SELECT * FROM Persons WHERE (FirstName='Thomas' OR FirstName='William') AND LastName='Carter'

ORDER BY 语句

    ORDER BY 语句用于根据指定的列对结果集进行排序.

    ORDER BY 语句默认按升序对记录进行排序.

    如果希望按照降序对记录进行排序,可以使用DESC 关键词.

  • SELECT Company, OrderNumber FROM Orders ORDER BY Company

  • SELECT Company, OrderNumber FROM Orders ORDER BY Company, OrderNumber

  • SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC

  • SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber DESC

INSERT INTO 语句

    INSERT INTO语句用于向表中插入新的行.

        INSERT INTO 表名称 VALUES (值1,值2,....)

        INSERT INTO 表名称 (列1,列2,...) VALUES (值1,值2,...)

  • INSERT INTO Persons VALUES  ('Gates', 'Bill', 'xuanwumen 10', 'BeiJing')

  • INSERT INTO Persons (LastName, Address) VALUES ('Wilson', 'Champs-Elysees') 

UPDATE 语句

    UPDATE 语句用于修改表中的数据.

        UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

  • UPDATE Persons SET FirstName = 'Fred' WHERE LastName = 'Wilson'

  • UPDATE Persons SET Address = ' Zhongshan 23 ', City = 'NanJing' WHERE LastName = 'Wilson'

DELETE 语句

    DELETE 语句用于删除表中的行.

        DELETE FROM 表名称 WHERE 列名称 = 值

  • DELETE FROM Persons WHERE LastName = 'Wilson'

  • DELETE FROM Persons

  • DELETE * FROM Persons