一。查询语句(SELECT)
SELECT语句的基本语法:
SELECT [ALL|DISTINCT] <目标列表达式> [AS 列名][,<目标列表达式> [AS 列名] ...]
FROM <表名> [,<表名>…]
[WHERE <条件表达式> [AND|OR <条件表达式>...]
[GROUP BY 列名]
[HAVING <条件表达式>>]
[ORDER BY 列名 [ASC | DESC>]]
注:以上语句由方括号为可选项,尖括号为必填项。
1).WHERE子句。
WHERE子句用于对数据库查询进行条件设定.
eg:SELECT s.name FROM student s WHERE s.year>=2003;//其表示查询数据库student中year值大于2003的行的name值。
在SELECT中可以使用的运算符有:
(1).>,>,<=,>=,=,<>,!=,!>,!<
(2).AND,OR,NOT
(3).BETWEEN
(4).LIKE 通配符有:%,_,[ ],[^]
(5).IN
(6).ALL,ANY,SOME 其中ANY和SOME运算符相似
(7).EXISTS(用于子查询)
2).ORDER BY
ORDERY BY语句用于对返回的结果集进行排序。其排序的方式总是系统按最小的方式来进行排序。如果我们需要查询的结果按字母,数字等等自然顺序或者逆序来排序,那请用ASC或者DESC关键字。其中ASC关键字用于按升序排列,而DESC关键字用于按降序的方式排序。
3).GROUP BY
GROUP BY语句用于分组查询,其一般与聚合函数一起使用。其将数据分为各个小块,在对各个小块进行一些处理和操作(函数实现)。
eg:SELECT COUNT(*) FruitName AS 水果种类, ProductPlace AS 出产国 FROM test GROUP BY ProductPlace
上面的SELECT语句的意思是:首先将test数据库中的数据按出产国进行分组,在有COUNT(*)对每个分组也就是出产国的水果种类进行计数(水果种类数)。
一些函数:SUM(行名),AVG(行名),MIN(行名),MAX(行名),COUT(*)用于计算函数。。。等等。其中上面这些,在没有使用GROUP BY子句的时候,只有SUM和AVG能使用在SELECT语句中,但不用指明行名。
4).HAVING 子句
HAVING子句和WHERE子句一样同为查询条件。但他们在SELECT语句中执行的优先级不同。
一般SQL Select语句完整的执行顺序:
1、from子句组装来自不同数据源的数据;
2、where子句基于指定的条件对记录行进行筛选;
3、group by子句将数据划分为多个分组;
4、使用聚集函数进行计算;
5、使用having子句筛选分组;
6、计算所有的表达式;
7、使用order by对结果集进行排序。
5).ALL/DISTINCT谓词
ALL/DISTINCT谓词用于对返回的结果集重复行进行处理。在默认情况下为ALL,可省略。当我们需要去除查询结果集中的重复行时,使用谓词DSTINCT。
二。插入语句(INSERT)
插入语句的语法格式:
INSERT [INTO] <table> [column] VALUES [data_values]
INSERT语句中的INTO为可选项,但为了语句的可读性,一般不建议省略。其中的列名也显示提供列名和不显示提供列名两种:当不显示提供列名时,我们插入的值必须与数据库中的列名值相对应,且不允许出现NULL值和默认值;当显示提供列名时,我们可以省略一些列名,但这些列名必须能设为NULL值和系统将其定义为默认值。
插入一个数据块得语法(INSERT INTO ....SELECT..):
INSERT INTO <table> [ <column_list>] <SELECT.....>
三。更新语句(UPDATE)
更新语句的语法格式:
UPDATE <table>
SET <column=value>[<column=value>]
[FROM <sources table(s)>]
[ WHERE <condition>]
eg:UPDATE store SET stores.id='23' WHERE stores.id='12' //将id为12的行的id值该为2.
四。删除语句(DELETE)
删除语句的语法格式:
DELETE <table name> [WHERE <condition>]
eg:delete stores where stores.id='12' //删除id为12的行。