鱼C论坛

 找回密码
 立即注册
查看: 25|回复: 2

mysql问题

[复制链接]
发表于 昨天 17:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
SELECT
    `COLUMN_NAME`                                 
    `COLUMN_COMMENT`                              
    `DATA_TYPE`                                    
CASE
    WHEN `DATA_TYPE` IN ('char', 'varchar') THEN CHARACTER_MAXIMUM_LENGTH
    WHEN `DATA_TYPE` IN ('decimal', 'numeric') THEN NUMERIC_PRECISION
    ELSE NULL
END                                         
CASE
    WHEN `DATA_TYPE` IN ('decimal', 'numeric') THEN NUMERIC_SCALE
    ELSE 0
END                                         
FROM `INFORMATION_SCHEMA`.`COLUMNS`

代码之中
`INFORMATION_SCHEMA`.`COLUMNS`
是sql什么用法啊
我上网搜索不知道在那里学习
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 昨天 17:23 | 显示全部楼层

mysql问题
SELECT
    `COLUMN_NAME`                                 
    `COLUMN_COMMENT`                              
    `DATA_TYPE`                                    
CASE
    WHEN `DATA_TYPE` IN ('char', 'varchar') THEN CHARACTER_MAXIMUM_LENGTH
    WHEN `DATA_TYPE` IN ('decimal', 'numeric') THEN NUMERIC_PRECISION
    ELSE NULL
END                                         
CASE
    WHEN `DATA_TYPE` IN ('decimal', 'numeric') THEN NUMERIC_SCALE
    ELSE 0
END                                         
FROM `INFORMATION_SCHEMA`.`COLUMNS`

代码之中
`INFORMATION_SCHEMA`.`COLUMNS`
是sql什么用法啊
我上网搜索不知道在那里学习


你好!INFORMATION_SCHEMA.COLUMNS 是 MySQL 中的一个系统视图(表),它存储了数据库中所有表的列信息(元数据)。简单来说,通过查询它,你可以获取到某个表有哪些列、每列的数据类型、注释等详细信息。

在你提供的 SQL 语句中,目的是从该视图查询列名、注释、数据类型,并根据数据类型计算长度或精度。不过,你的 SQL 有几处语法错误,我修正如下:


  1. SELECT
  2.     `COLUMN_NAME`,
  3.     `COLUMN_COMMENT`,
  4.     `DATA_TYPE`,
  5.     CASE
  6.         WHEN `DATA_TYPE` IN ('char', 'varchar') THEN CHARACTER_MAXIMUM_LENGTH
  7.         WHEN `DATA_TYPE` IN ('decimal', 'numeric') THEN NUMERIC_PRECISION
  8.         ELSE NULL
  9.     END AS '长度/精度',
  10.     CASE
  11.         WHEN `DATA_TYPE` IN ('decimal', 'numeric') THEN NUMERIC_SCALE
  12.         ELSE 0
  13.     END AS '小数位数'
  14. FROM `INFORMATION_SCHEMA`.`COLUMNS`
  15. WHERE `TABLE_SCHEMA` = '你的数据库名' AND `TABLE_NAME` = '你的表名';
复制代码


主要修正:
  • 添加了逗号分隔各列。
  • 为两个 CASE 表达式添加了别名(AS)。
  • 增加了 WHERE 条件,用于指定数据库和表名,否则会返回所有数据库的所有列,数据量巨大。


关于如何学习 INFORMATION_SCHEMA

  • 官方文档:最权威的学习资料是 MySQL 官方手册。你可以搜索“MySQL INFORMATION_SCHEMA COLUMNS”来找到官方文档页面,其中详细介绍了这个视图包含哪些字段以及含义。
  • 实践查询:直接在 MySQL 中运行 DESC INFORMATION_SCHEMA.COLUMNS;SELECT * FROM INFORMATION_SCHEMA.COLUMNS LIMIT 1; 来查看它的结构。
  • 书籍和教程:许多 SQL 或 MySQL 的书籍和在线教程中,都会有“元数据查询”或“系统表”相关章节,里面会介绍 INFORMATION_SCHEMA
  • 社区和论坛:像 FishC 这样的技术社区,有很多讨论和示例可以参考。


简单来说,INFORMATION_SCHEMA 是 MySQL 提供的一个信息数据库,用于查询数据库、表、列、权限等元数据信息,是进行数据库管理和维护的重要工具。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 昨天 18:33 | 显示全部楼层
  1. INFORMATION_SCHEMA.COLUMNS
复制代码

是数据库自带的系统视图,用来查询表结构本身,而不是业务数据。

相当于用 SQL 读取数据库的“说明书”,例如:

  • 有哪些表
  • 表里有哪些字段
  • 字段类型、长度、精度、注释

这段 SQL 的作用就下面这几个。

根据字段类型:

  • varchar / char → 取字符长度
  • decimal / numeric → 取精度和小数位

本质是字段元数据分析。

怎么学?

直接搜这些关键词:

  • MySQL INFORMATION_SCHEMA
  • INFORMATION_SCHEMA COLUMNS
  • MySQL metadata

官方文档就是最好的教材。

总之就是:

  • INFORMATION_SCHEMA 是数据库提供的“结构数据库”,
  • COLUMNS 是所有表的字段信息集合。

评论区聊聊你的想法



                               
登录/注册后可看大图




如果有收获,别忘了评分


                               
登录/注册后可看大图


                               
登录/注册后可看大图
                                                                    
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-1-10 12:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表