W3school SQL教程
W3Cschool SQL教程
W3Cschool SQL微课

  1. 列出数据库
SHOW DATABASES
  1. 显示数据库中所有表
SHOW TABLES
  1. 显示表中列的信息
SHOW COLUMNS FORM 表名
  • SHOW COLUMNS 显示每个表列的以下值:
  • Field:列名称
  • Type:列数据类型
  • Key:指示列是否被索引
  • Default:分配给列的默认值
  • Extra:可能包含任何有关给定列的附加信息
  1. 语法规则
  2. 不区分大小写
  3. 忽略空格和换行
  4. *代表所有
  5. 用分号结束每个 SQL 语句,以表示语句是完整的并且可以被解释
  6. WHERE 语句
    WHERE 子句用于提取那些满足指定标准的记录
SELECT 列名
FROM 表名
WHERE 条件;
  1. 创建表
CREATE TABLE 表名称(列名称1 数据类型,列名称2 数据类型,列名称3 数据类型,……);
  1. 删除表
DROP TABLE 表名;
  1. 重命名表
RENAME TABLE 旧表名 TO 新表名;
  1. 增加列
ALTER TABLE 表名
ADD 列名 数据类型;
  1. 删除列
ALTER TABLE 表名
DROP COLUMN 列名;
  1. 重命名列
ALTER TABLE 表名
CHANGE 旧列名 新列名 数据类型 约束;
  1. 列修改类型或约束
ALTER TABLE 表名
MODIFY 列名 数据类型 约束;
  1. 增加
INSERT INTO 表名 (列名1, 列名2,列名3……)
VALUES (值1,值2,值3……);

当使用 SQL INSERT 语句将记录插入表时,必须为没有默认值或不支持 NULL 的每个列提供一个值。

  1. 删除
DELETE FROM 表名
WHERE 条件;
  1. 更新(修改)
UPDATE 表名 SET 列名1=新值1,列名2=新值2
WHERE 条件;

WHERE 子句规定哪条记录或者哪些记录需要更新。如果你省略了 WHERE 子句,所有的记录都将被更新!

  1. 查询
SELECT 列名(s)
FROM 表名
WHERE 条件;
  1. DISTINCT 关键字
    用于返回唯一不同的值
    与SELECT结合可去重
SELECT DISTINCT 列名(s)
FROM 表名;
  1. LIMIT 关键字
SELECT 列名(s)
FROM 表名
LIMIT 记录数;
  1. Order By 关键词
    用于对结果集进行排序
SELECT * FROM 表名
ORDER BY 列名(s);
  • DESC关键字按降序排列结果
  • ASC 关键字按升序排列结果
  1. 完全限定名称
SELECT 表名.列名
FROM 表名;
  1. 逻辑运算符组合条件
运算符 描述
AND 如果两个表达式结果都为 true,则为 true
OR 如果任一表达式结果为 true,则为 true
IN 如果操作数等于表达式列表之一,则为 true
NOT 如果表达式结果为 true,则返回 false;否则如果表达式的结果为 false,则返回 true
  1. CONCAT() 函数
    用于连接两个或多个文本值,并返回连接字符串。(自定义列)
SELECT CONCAT(列名1, ', ' , 列名2) AS 新列名
FROM 表名;
  1. 算术运算符
    加法(+),减法(-),乘法(*)和除法(/)
  2. UPPER() 函数将指定字符串中的所有字母转换为大写
SELECT 列名1, UPPER(列名2) AS 列名2
FROM 表名;
  1. LOWER() 函数将字符串转换为小写
  2. SQRT() 函数返回参数中给定值的平方根
SELECT 列名, SQRT(列名)
FROM 表名;
  1. AVG() 函数返回数值列的平均值
SELECT AVG(列名)
FROM 表名;
  1. SUM() 函数返回数值列的总数
SELECT SUM(列名)
FROM 表名;
  1. MIN() 函数返回指定列的最小值
SELECT MIN(列名) AS 列名
FROM 表名;

所有的 SQL 函数都可以组合在一起来创建单个表达式。

  1. MAX() 函数返回指定列的最大值
  2. 子查询
    当一个查询是另一个查询的条件时,称之为 子查询
    将子查询括在括号中。另外,子查询结尾处没有分号,因为它是单个查询的一部分。
--查询大于平均数的项目
SELECT 列名 FROM 表名
WHERE 列名 > (SELECT AVG(列名) FROM 表名)
ORDER BY 列名 DESC;
  1. LIKE 操作符
    用于在 WHERE 子句中搜索列中的指定模式。
SELECT 列名(s)
FROM 表名
WHERE 列名 LIKE 模式;
通配符 描述
% 替代一个或多个字符
_ 仅替代一个字符
[charlist] 字符列中的任何单一字符
[!charlist] 不在字符列中的任何单一字符

通配符必须与 LIKE 运算符一起使用。

  1. 注释
--单行注释
SELECT 列名 FROM 表名;
/*
多行
注释
*/
  1. 自定义别名
    通过使用 SQL,可以为表名称或列名称指定别名。
SELECT tn1.ID, tn1.Name, tn2.Name, tn2.Amount
FROM table_name1 AS tn1, table_name2 AS tn2
  1. 表连接
    “表连接” 表示组合来自两个或多个表的数据。表连接创建一个临时表,显示连接表中的数据。
SELECT 表1.列1, 表1.列2, 表2.列1, 表2.列2
FROM 表1, 表2
WHERE 表1.ID=表2.表1_ID
ORDER BY 表1.ID;
  1. 连接类型
  • 内连接(INNER JOIN)
  • 左连接(LEFT JOIN)
  • 右连接 (RIGHT JOIN)
  • 全连接(FULL JOIN)
SELECT 列名(s)
FROM 表名1 INNER JOIN 表名2
ON 表名1.列名=表名2.列名;
  1. ON 关键字用于指定内部连接条件。
  2. INNER JOIN 与 JOIN 是相同的。
  3. 在某些数据库中,LEFT JOIN 称为 LEFT OUTER JOIN。
  4. 在某些数据库中,RIGHT JOIN 称为 RIGHT OUTER JOIN。
  5. 在某些数据库中, FULL JOIN 称为 FULL OUTER JOIN。
  1. UNION 操作符
  • UNION 将多个数据集合并到单个数据集中,并删除任何现有的重复项。
  • UNION ALL 将多个数据集合并到一个数据集中,但不会删除重复的行。
SELECT 列名(s) FROM 表名1
UNION
SELECT 列名(s) FROM 表名1;

如果你的列在所有查询中不完全匹配,您可以使用NULL(或任何其他)值。

  1. SQL 约束
  • NOT NULL - 指示某列不能存储 NULL 值。
  • UNIQUE - 保证某列的每行必须有唯一的值。
  • PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。
  • FOREIGN KEY - 保证一个表中的数据匹配另一个表中的值的参照完整性。
  • CHECK - 保证列中的值符合指定的条件。
  • DEFAULT - 规定没有给列赋值时的默认值。
name varchar(100) NOT NULL;
列名 数据类型 约束;

可以在创建表时规定约束(通过 CREATE TABLE 语句),或者在表创建之后也可以(通过 ALTER TABLE 语句)。

  1. AUTO_INCREMENT 自动递增
    AUTO_INCREMENT 会在新记录插入表中时生成一个唯一的数字。
CREATE TABLE 表名 (
主键列id int NOT NULL AUTO_INCREMENT,
列名1 数据类型 约束,
列名2 数据类型 约束,
PRIMARY KEY (主键列id)
  1. VIEW 视图
    视图是基于 SQL 语句的结果集的可视化的表。
--创建视图
CREATE VIEW 视图名 AS
SELECT 列名(s)
FROM 表名
WHERE 条件;
--更新视图
CREATE OR REPLACE VIEW 视图名 AS
SELECT 列名(s)
FROM 表名
WHERE 条件;
  • 视图总是显示最新的数据!
  • 创建视图后可以像查询实际表一样查询列表视图

富强、民主、文明、和谐、自由、平等、公正、法治、爱国、敬业、诚信、友善