练习库

myschool _db_bakup.sql

  • 创建个 school 的数据库,字符集是 UTF8
  • 可以导入该数据库进行执行
  • 可以以文本形式打开该库,复制 SQL 语句进行执行

INNER JOIN

查询两个表中的结果集中的交集

  1. SELECT 字段1, 字段2,... FROM table_1
  2. INNER JOIN table_2
  3. ON table_1.字段x = table_2.字段y

INNER JOIN 中的 INNER 可以省略不写。建议写全

OUTER JOIN

LEFT OUTER JOIN

以左表为基准,右表与左表进行匹配,匹配不上的,返回左表的记录,右表以 NULL 填充

  1. UPDATE 表名 SET 字段 = , [字段2 = 2, ...][WHERE 条件] ;

RIGHT OUTER JOIN

以右表为基准,左表与右表进行匹配,匹配不上的,返回右表的记录,左表以 NULL 填充

WHERE 与 运算符

运算符 描述 场景 结果
= 等于 5 = 6 false
<> 或 != 不等于 5 != 6 true
>、< 大于、小于 5 > 6、5 < 6 false、true
>=、<= 大于等于、小于等于 5 >= 6、5 <= 6 false、true
BETWEEN…AND 在某个范围内 BETWEEN 5 AND 10 -
AND、OR 并且 5 > 1 AND 1 > 2 false
OR 5 > 1 OR 1 > 2 true

TRUNCATE

  1. TRUNCATE [TABLE] 表名 ;
  • 摧毁整个表,再重新建一个新表,新表的结构和原来的表结构是一样的,不记录日志,速度快
  • 重新设置 AUTO_INCREMENT 计数器
  • 不会对事务有影响