SQL语句分为俩类,数据定义语句(DDL)和数据操纵语言(DML)。前者用于创建、修改、或删除一个数据库中的实际定义,后者则用来创建、修改、删除或搜集数据库结构中的信息。换句话说,就是要用DDL创建表、字段和索引,用DML填充、更改和检索表和字段中的信息。
表1 SQL命令
命令 | 分类 | 描述 |
CREATE | DDL | 创建一个表、字段或索引 |
ALTER | DDL | 通过添加一个字段或改变一个字段的定义更改一个表 |
DROP | DDL | 删除一个表或一个索引 |
SELECT | DML | 用指定的参数查询一个数据库 |
INSERT | DML | 一个操作中插入多个记录 |
UPDATE | DML | 用指定的参数在一个范围内改变信息 |
DELETE | DML | 从表中删除记录 |
表2 SQL子句
子句 | 描述 |
FROM | 指定要从中查询数据的表 |
WHERE | 指定要查询的条件 |
GROUP BY | 指定分组的条件 |
HAVING | 指定在一个查询中每一个组的条件 |
ORDER BY | 指定查询的排序 |
表3 SQL运算符
运算符 | 类型 | 当......时条件满足 |
AND | Logical | 俩个表达式都为真 |
OR | Logical | 一个表达式为真 |
NOT | Logical | 表达式为假 |
< | Comparison | 第一个表达式小于第二个表达式 |
<= | Comparison | 第一个表达式小于或等于第二个表达式 |
> | Comparison | 第一个表达式大于第二个表达式 |
>= | Comparison | 第一个表达式大于或等于第二个表达式 |
= | Comparison | 第一个表达式等于第二个表达式 |
<> | Comparison | 第一个表达式不等于第二个表达式 |
BETWEEN | Comparison | 属于一个指定的值集中的值 |
LIKE | Comparison | 与指定的字符匹配的值 |
IN | Comparison | 属于一个数据库中的一个特殊组里的记录 |
表4 SQL的合计函数
函数 | 描述 |
AVG | 返回一个指定字段的平均值 |
COUNT | 返回在一个查询中记录的数目 |
SUM | 返回在一个指定的字段中字段值的和 |
MAX | 返回在一个指定的字段中的最大值 |
MIN | 返回在一个指定的字段中的最小值 |
1、数据定义语言(DDL):DDL语句用来在一个数据库中创建、改变或删除表、字段和索引。
1.1、CREATE命令:用来在指定的数据库中创建表或索引。
CREATE TABLE table_name(field1, field2, field3, ...);
CRAETE INDEX index_name on table_name(field1, field2, field3, ...);
1.2、ALTER命令:向一个表中加入一个新字段、从一个表中删除一个字段、向一个表中加入一个新索引、从一个表中删除一个索引,每条ALTER TABLE语句仅能添加或删除一个字段或索引。
ALTER TABLE table_name();
1.3、DROP命令:用来在指定的数据库中删除表或索引。
DROP table_name();
DROP index_name();
2、数据操纵语言(DML):DML命令创建动作查询和选择查询的一个混合。
2.1、SELECT命令:是一个选择查询而不是一个动作查询的一部分。
SELECT * from film;
表5 SELECT中的谓语
谓语 | 描述 |
ALL | 返回所有的记录,甚至是副本 |
DISTINCT | 只返回在语句中指定的字段里的不同的记录 |
DISTINCTROW | 返回指定的表里所有字段,甚至是那些没有在SELECT语句中列出的字段中的不同的记录 |
TOP | 返回选择的记录集中地前n条或p%条记录 |
2.2、INSERT命令:创建一个追加,是一种动作查询。可以向一个表中加入一行或多行。
INSERT INTO table_name(field1, field2, ...) values(val1, val2, ...);
2.3、UPDATE命令:用来把当前表中的某些信息设置为一个新值。
UPDATE table_name SET value WHERE criteria;
2.4、DELETE命令:用来删除一个指定的表中大量的记录,当然也可以指定选择删除记录的条件。DELETE命令删除的是整个记录,而不是单个字段。
DELETE table.* FROM table_name WHERE .....;