支付宝手机网站,麻涌镇做网站,东阳便宜营销型网站建设,深圳罗湖住房和建设局网站官网一、先了解下INFORMATION_SCHEMA 1、在MySQL中#xff0c;把INFORMATION_SCHEMA看作是一个数据库#xff0c;确切说是信息数据库。其中保存着关于MySQL服务器所维护的所有其他数据库的信息。如数据库名#xff0c;数据库的表#xff0c;表栏的数据类型与访问权 限等。在INF…
一、先了解下INFORMATION_SCHEMA 1、在MySQL中把INFORMATION_SCHEMA看作是一个数据库确切说是信息数据库。其中保存着关于MySQL服务器所维护的所有其他数据库的信息。如数据库名数据库的表表栏的数据类型与访问权 限等。在INFORMATION_SCHEMA中有数个只读表。它们实际上是视图而不是基本表因此你将无法看到与之相关的任何文件。
2、TABLES表提供了关于数据库中的表的信息(包括视图)。详细表述了某个表属于哪个schema表类型表引擎创建时间等信息。是show tables from schemaname的结果取之此表。
3、COLUMNS表提供了表中的列信息。详细表述了某张表的所有列以及每个列的信息。是show columns from schemaname.tablename的结果取之此表。
查看ftp数据库内以oemp开头的所有的表名、表数据量、表备注、字段名称、字段类型、默认值、字段备注等如果查整个数据库就把ftp后全删除。 string sql $SELECT TABLE_NAME as TableName, column_name AS DbColumnName,CASE WHEN left(COLUMN_TYPE,LOCATE((,COLUMN_TYPE)-1) THEN COLUMN_TYPE ELSE left(COLUMN_TYPE,LOCATE((,COLUMN_TYPE)-1) END AS DataType,CAST(SUBSTRING(COLUMN_TYPE,LOCATE((,COLUMN_TYPE)1,LOCATE(),COLUMN_TYPE)-LOCATE((,COLUMN_TYPE)-1) AS signed) AS Length,column_default AS DefaultValue,column_comment AS ColumnComment,CASE WHEN COLUMN_KEY PRI THEN true ELSE false END AS IsPrimaryKey,CASE WHEN EXTRAauto_increment THEN true ELSE false END as IsIdentity,CASE WHEN is_nullable YES THEN true ELSE false END AS IsNullableFROM Information_schema.columns where TABLE_NAME{tableName} and TABLE_SCHEMA(select database()) ORDER BY TABLE_NAME; SELECT T1.TABLE_COMMENT 表注释,T1.TABLE_ROWS 表数据量,T2.TABLE_NAME 表名,T2.COLUMN_NAME 字段名, T2.COLUMN_TYPE 数据类型, T2.DATA_TYPE 字段类型, T2.CHARACTER_MAXIMUM_LENGTH 长度, T2.IS_NULLABLE 是否为空, T2.COLUMN_DEFAULT 默认值, T2.COLUMN_COMMENT 字段备注
FROM INFORMATION_SCHEMA.TABLES T1
LEFT JOININFORMATION_SCHEMA.COLUMNS T2
ONT1.TABLE_NAME T2.TABLE_NAME
WHERE T1.TABLE_SCHEMA ftp
AND T1.TABLE_NAME LIKE oemp%
ORDER BY T1.TABLE_NAME; 二、如何获取全部表名
基本的语句为
SELECT table_name FROM information_schema.tables
但是这个并不符合业务需求因为这会返回全部的表名而业务中需要限定是哪个数据库并且不同的业务可能会使用不同的表前缀所以最好可以限定表前缀并且需要展示表的注释不然大家也不清楚表是属于哪个业务的。
所以完整的SQL语句如下 SELECTTABLE_NAME,TABLE_COMMENT
FROMinformation_schema.TABLES
WHERETABLE_SCHEMA TABLE_SCHEMA AND TABLE_NAME LIKE x_% AND TABLE_NAME NOT LIKE xx_exp%
ORDER BYTABLE_NAME需要配置几个参数并且已经按表名进行排序TABLE_COMMENT 为表注释。
TABLE_SCHEMA 数据库名称x_ 表前缀
运行结果如下图 1、查看Mysql 数据库 ori_data下所有表的表名、表注释及其数据量SELECT
TABLE_NAME 表名,TABLE_COMMENT 表注释,TABLE_ROWS 数据量
FROM information_schema.tables
WHERE TABLE_SCHEMA ori_data
ORDER BY TABLE_NAME;SELECT* FROM OPENQUERY (MYSQLTEST ,
SELECTTABLE_NAME as 表名FROMinformation_schema.TABLES
WHERETABLE_SCHEMA msldbalitest AND TABLE_NAME LIKE tp_% AND TABLE_NAME NOT LIKE cms_exp% ORDER BY TABLE_NAME desc) 2. 查询数据库 ‘ori_data’ 下表 ‘accumulation’ 所有字段注释SELECT
COLUMN_NAME 字段名,column_comment 字段注释
FROM INFORMATION_SCHEMA.Columns
WHERE table_nameaccumulation AND table_schemaori_dataselect COLUMN_NAME,DATA_TYPE,COLUMN_COMMENT from information_schema.COLUMNS where table_name 表名 and table_schema 数据库名称;
SELECT* FROM OPENQUERY (MYSQLTEST ,
SELECT
COLUMN_NAME as 字段名,DATA_TYPE,column_comment as 字段注释
FROM INFORMATION_SCHEMA.Columns
WHERE table_namecms_goods AND table_schemamsldbalitest) 3. 查询数据库 ori_data 下所有表的表名、表注释以及对应表字段注释SELECT
a.TABLE_NAME 表名,a.TABLE_COMMENT 表注释,b.COLUMN_NAME 表字段,b.COLUMN_TYPE 字段类型,b.COLUMN_COMMENT 字段注释
FROM information_schema.TABLES a,INFORMATION_SCHEMA.Columns b
WHERE b.TABLE_NAMEa.TABLE_NAME AND a.TABLE_SCHEMAori_dataSELECT* FROM OPENQUERY (MYSQLTEST ,
SELECT
a.TABLE_NAME as 表名,a.TABLE_COMMENT as 表注释,b.COLUMN_NAME as 表字段,b.COLUMN_TYPE as 字段类型,b.COLUMN_COMMENT as 字段注释
FROM information_schema.TABLES a,INFORMATION_SCHEMA.Columns b
WHERE b.TABLE_NAMEa.TABLE_NAME AND a.TABLE_SCHEMAmsldbalitest)
information_schema数据库是MySQL数据库自带的数据库里面存放的MySQL数据库所有的信息包括数据表、数据注释、数据表的索引、数据库的权限等等。 Mysql数据库如何获取某数据库所有表名称不包含表结构Sql如下 SELECT table_name
FROM information_schema.tables
WHERE table_schema xxx AND table_type base tableinformation_schemaMysql自带的数据库存放各类数据库相关信息的信息数据库表多为视图information_schema.tables该数据库下的tables表 table_schematables表下的一个字段数据库名称 table_typetables表下的一个字段表类型base table为基础表注有空格 table_nametables表下的一个字段数据表名称 查看指定表的字段及注释 SELECT* FROM OPENQUERY (MYSQLTEST ,
selecta.ordinal_position,a.COLUMN_name,a.COLUMN_type,a.COLumn_comment,a.is_nullable,a.column_key
frominformation_schema.COLUMNS a
whereTABLE_schema msldbalitestand TABLE_name cms_admin_menu) 查看数据所有表名及注释 SELECT* FROM OPENQUERY (MYSQLTEST ,
selectt.TABLE_NAME,t.TABLE_COMMENT
frominformation_schema.tables t
wheret.TABLE_TYPE BASE TABLEand TABLE_schema msldbalitest) 在mysql中information_schema这个数据库中保存了mysql服务器所有数据库的信息。 包括数据库名数据库的表表字段的数据类型等。 简而言之若想知道mysql中有哪些库哪些表表里面有哪些字段以及他们的注释都可以从information_schema中获取 COLUMNS表 information_schema库中的COLUMNS表存放MySQL所有表的字段详细信息。
常用列 TABLE_SCHEMA数据库名 TABLE_NAME数据表名 COLUMN_NAME数据列名 DATA_TYPE数据类型如varchar COLUMN_TYPE数据列类型含数据长度如varchar(32) COLUMN_COMMENT数据列注释/说明 string sql $SELECT TABLE_NAME as TableName, column_name AS DbColumnName,CASE WHEN left(COLUMN_TYPE,LOCATE((,COLUMN_TYPE)-1) THEN COLUMN_TYPE ELSE left(COLUMN_TYPE,LOCATE((,COLUMN_TYPE)-1) END AS DataType,CAST(SUBSTRING(COLUMN_TYPE,LOCATE((,COLUMN_TYPE)1,LOCATE(),COLUMN_TYPE)-LOCATE((,COLUMN_TYPE)-1) AS signed) AS Length,column_default AS DefaultValue,column_comment AS ColumnComment,CASE WHEN COLUMN_KEY PRI THEN true ELSE false END AS IsPrimaryKey,CASE WHEN EXTRAauto_increment THEN true ELSE false END as IsIdentity,CASE WHEN is_nullable YES THEN true ELSE false END AS IsNullableFROM Information_schema.columns where TABLE_NAME{tableName} and TABLE_SCHEMA(select database()) ORDER BY TABLE_NAME; 使用MySQL创建的表无论是表注释、索引还是字段的类型等等都会存到MySQL自带的库表中可以通过SQL查出来想要的表、字段信息。 了解information_schema库可以在工作中起到意想不到的效果 -- database_name替换为库名查出库中所有表的TABLE_NAME表名、TABLE_COMMENT表注释
SELECT TABLE_NAME,TABLE_COMMENT FROM information_schema.TABLES WHERE table_schemadatabase_name;TABLES表 information_schema库中的TABLES表存放MySQL所有表的表信息。 常用列
TABLE_SCHEMA数据库名TABLE_NAME数据表名TABLE_COMMENT数据表注释/说明 查询某个表的所有字段
select column_name,data_type,column_comment,column_key,extra,character_maximum_length,is_nullable,column_default
from information_schema.columns
where table_schema seata and table_name users ; 组装表的所有列
select GROUP_CONCAT(t.,column_name) total
from information_schema.columns
where table_schema seata and table_name users and column_name not in (id);