DML 和 DDL
可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL)。
SQL (结构化查询语言)是用于执行查询的语法。但是 SQL 语言也包含用于更新、插入和删除记录的语法。
查询和更新指令构成了 SQL 的 DML 部分:
- SELECT - 从数据库表中获取数据
- UPDATE - 更新数据库表中的数据
- DELETE - 从数据库表中删除数据
- INSERT INTO - 向数据库表中插入数据
SQL 的数据定义语言 (DDL) 部分使我们有能力创建或删除表格。我们也可以定义索引(键),规定表之间的链接,以及施加表间的约束。
CREATE DATABASE - 创建新数据库
ALTER DATABASE - 修改数据库
CREATE TABLE - 创建新表
ALTER TABLE - 变更(改变)数据库表
DROP TABLE - 删除表
CREATE INDEX - 创建索引(搜索键)
DROP INDEX - 删除索引
SELECT FROM WHERE 之外
- SELECT DISTINCT 列名称 FROM 表名称。 distinct,去除重复
- AND OR, 链接多个判断
- ORDER BY 排序,DESC表示逆序
- INSERT INTO 表名称 VALUES (值1, 值2,….) 插入;
- UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值, 更新
- DELETE FROM 表名称 WHERE 列名称 = 值,删除
高级教程
取前N个记录:
SELECT * FROM Persons LIMIT 5
column_name LIKE pattern: %作通配符
IN 操作符: WHERE column_name IN (value1,value2,…)
UNION
SELECT column_name(s) FROM table_name1 UNION SELECT column_name(s) FROM table_name2
- AVG(column) 返回某列的平均值,SELECT AVG(column_name) FROM table_name
- COUNT(column) 返回某列的行数(不包括 NULL 值),COUNT(DISTINCT column_name)
- COUNT(*) 返回被选行数
- FIRST(column) 返回在指定的域中第一个记录的值,可配合ORDER BY
- LAST(column) 返回在指定的域中最后一个记录的值,可配合ORDER BY
- MAX(column) 返回某列的最高值
- MIN(column) 返回某列的最低值
- SUM(column) 返回某列的总和
SQL GROUP BY 语法
SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name
SQL HAVING 语法
SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name HAVING aggregate_function(column_name) operator value