【MySQL】近2万字,138张图解,我终于把mysql总结完整了,建议收藏( 十 )


select job.* from job where type in (select type from job_type);

如果子查询数量唯一的话 , 还可以用 = 来替换 in
select * from job where type = (select type from job_type);

意思是自查询不唯一 , 我们使用 limit 限制一下返回的记录数
select * from job where type = (select type from job_type limit 11);

在某些情况下 , 子查询可以转换为表连接
联合查询我们还经常会遇到这样的场景 , 将两个表的数据单独查询出来之后 , 将结果合并到一起进行显示 , 这个时候就需要 UNION 和 UNION ALL 这两个关键字来实现这样的功能 , UNION 和 UNION ALL 的主要区别是 UNION ALL 是把结果集直接合并在一起 , 而 UNION 是将 UNION ALL 后的结果进行一次 DISTINCT 去除掉重复数据 。
比如
select type from job union all select type from job_type;

它的结果如下
上述结果是查询 job 表中的 type 字段和 job_type 表中的 type 字段 , 并把它们进行汇总 , 可以看出 UNION ALL 只是把所有的结果都列出来了
使用 UNION 的 SQL 语句如下
select type from job union select type from job_type;

可以看出 UNION 是对 UNION ALL 使用了 distinct 去重处理 。
DCL 语句DCL 语句主要是管理数据库权限的时候使用 , 这类操作一般是 DBA 使用的 , 开发人员不会使用 DCL 语句 。
关于帮助文档的使用我们一般使用 MySQL 遇到不会的或者有疑问的东西经常要去查阅网上资料 , 甚至可能需要去查 MySQL 官发文档 , 这样会耗费大量的时间和精力 。
下面教你一下在 MySQL 命令行就能直接查询资料的语句
按照层次查询可以使用 ? contents 来查询所有可供查询的分类 , 如下所示
? contents;

我们输入
? Account Management

可以查询具体关于权限管理的命令
比如我们想了解一下数据类型
? Data Types

然后我们想了解一下 VARCHAR 的基本定义 , 可以直接使用
? VARCHAR

可以看到有关于 VARCHAR 数据类型的详细信息 , 然后在最下面还有 MySQL 的官方文档 , 方便我们快速查阅 。
快速查阅在实际应用过程中 , 如果要快速查询某个语法时 , 可以使用关键字进行快速查询 , 比如我们使用
? show

能够快速列出一些命令
比如我们想要查阅 database 的信息 , 使用
SHOW CREATE DATABASE cxuandb;

MySQL 数据类型MySQL 提供很多种数据类型来对不同的常量、变量进行区分 , MySQL 中的数据类型主要是 「数值类型、日期和时间类型、字符串类型」 选择合适的数据类型进行数据的存储非常重要 , 在实际开发过程中 , 选择合适的数据类型也能够提高 SQL 性能 , 所以有必要认识一下这些数据类型 。
数值类型MySQL 支持所有标准的 SQL 数据类型 , 这些数据类型包括严格数据类型的严格数值类型 , 这些数据类型有

  • INTEGER
  • SMALLINT
  • DECIMAL
  • NUMERIC 。
近似数值数据类型 并不用严格按照指定的数据类型进行存储 , 这些有
  • FLOAT
  • REAL
  • DOUBLE PRECISION
还有经过扩展之后的数据类型 , 它们是
  • TINYINT
  • MEDIUMINT
  • BIGINT
  • BIT
其中 INT 是 INTEGER 的缩写 , DEC 是 DECIMAL 的缩写 。


推荐阅读