结构化查询语言简称SQL,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。

SQL语句结构(结构化查询语言包含六个部分):

1、数据查询语言(简称DQL):其语句,也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序中给出。保留字SELECT是DQL(也是所有SQL)中用的最多的动词,其他DQL常用的保留字有WHERE、ORDER BY、GROUP BY和HAVING。这些DQL保留字常和其他的SQL语句一起使用。

2、数据操作语言(简称DML):其语句包括动词INSERT、UPDATE和DELETE。他们分别用于添加、修改和删除表中的行。也称为动作查询语言。

3、事物处理语言(简称TPL):它的语句能确保被DML语句影响的表的所有行及时得以更新。TPL的语句包括BEGIN TRANSACTION、COMMIT和ROLLBACK。

4、数据控制语言(简称DCL):它的语句通过GRANT或REVOKE获得许可,确定单个用户和用户组对数据库对象的访问。某些RDBMS可用GRANK或REVOKE控制对表单个列的访问。

5、数据定义语言(简称DDL):其语句包括动词CREAT和DROP。在数据库中创建表或者删除表(CREAT TABLE或DROP TABLE);为表加入索引等。DDL包括许多与人数据库目录中获得数据有关的保留关键字。它也是动作查询的一部分。

6、指针控制语言(简称CCL):它的语句,像DECLARE CURSOR,FETCH INTO和UPDATE CURRENT用于对一个表或者多个表单独行的操作。

SQL语法规则:

1、SQL语句总是以关键字开始;

2、SQL语句以分号结尾;

3、SQL不区分大小写,意味着update与UPDATE相同。

数据库表:

数据库表通常包含一个或多个表。每个表都用一个名称表示(例如“Customers”或“Orders”)。该表中带有数据行的记录。

以著名的Northwind示例数据库中的“Customers”表为例:

CustomerID CustomerName ContactName Address City PostalCode Country
1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4 Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden

上表中包含5条记录(每一条对应一个客户)和七个列(CustomerID、CustomerName、ConactName、Address、City、PostalCode、Country)

SQL语句:

一些重要的SQL命令:

SELECT :从数据库中提取数据;

UPDATE :更新数据库中的数据;

DELETE:从数据库中删除数据;

INSERT INTO:向数据库中插入新数据;

CREAT DATABASE:创建新数据库;

ALTER DATABASE:修改数据库;

CREAT TABLE:创建新表;

ALTER TABLE:变更(改变)数据库表;

DROP TABLE:删除表;

CREATE INDEX:创建索引;

DROP INDEX:删除索引;

用法举例:

 SELECT语句:

SELECT column_name(s) FROM table_name

从table_name表中选择column_name(s)列;

SELECT语句和WHERE子句:

SELECT [*] FROM [Table_name] WHERE [condition1]

选择Table_name中满足条件condition1的所有语句;

SELECT语句与WHERE和/或子句:

SELECT [*] FROM [table_name] WHERE [condition1] [AND\OR] [condition2]...

选择table_name中所有满足条件condition1和/或condition2的所有语句;

SELECT语句与ORDER BY:

SELECT column_name

FROM table_name

ORDER BY column1_name ASC OR DESC

选择table_name表,根据column1_name列升序或降序对column_name进行排列;

ASC:升序;DESC:降序;默认按照升序排列

INSERT INTO 语句:

INSERT INTO table_name (column1,column2....)

VALUES (value1,value2...)

向表table_name中为column1,column2列插入新记录,值为value1,value2;

表单没有指定要插入数据列的名称时,只提供要插入的值;

UPDATE语句:

UPDATE table_name

SET column=value,column1=value1...

WHERE someColumn = someValue

选择table_name表中的someColumn等于someValue的地方的行,设置该column列值为value,column1列值为value1;

DELETE语句:

DELETE FROM table_name

WHERE someColumn = someValue

删除table_name表中,列someColumn的值为someValue的记录(即表中的行);

SELECT DISTINCT语句:

SELECT DISTINCT column1,column2...

FROM table_name

选择table_name中的列column1,column2中的不同的值,去除掉其中重复的值;

 NOT语法:

SELECT column1,column2

FROM table_name

WHERE NOT condition;

选择table_name表中不符合condition条件的column1,column2,,,列;

注意事项:

使用IS NULL和IS NOT NULL判断 表中是数值是否为空,而不使用数值运算符判断;

SQL中UPDATE语句不使用WHERE语句时,即忽略WHERE语句,所有记录都会更新;

SQL DELETE语句中,省略了WHERE语句,所有记录都会被删除;