一、概述今天分享几个关于MySQL数据类型的查询,如下:查找MySQL数据库中最常用的数据类型查找MySQL数据库中所有数值列查找MySQLdatabase查找MySQL数据库中的所有字符串(字符)列查找MySQL数据库中的所有日期和时间列查找MySQL数据库中的所有枚举列查找MySQL数据库中的所有空间数据列查找MySQL数据库中的所有JSON数据列查找大对象(LOB)数据类型列在MySQL数据库中查找具有大对象(LOB)数据类型列的表2.相关SQL1。查找MySQL数据库中最常用的数据类型selectdata_type,count(*)ascolumns,cast(100*count(*)/sum_all.columnsasdecimal(36,2))aspercent_columns,count(distinctconcat(col.table_schema,'.',col.table_name))astables,cast(100*count(distinctconcat(col.table_schema,'.',col.table_name))/sum_all.tablesasdecimal(36,2))aspercent_tablesfrominformation_schema.columnscoljoin(selectcount(distinctconcat(c.table_schema,'.',c.table_name))astables,count(*)ascolumnsfrominformation_schema.columnscjoininformation_schema.tablestonc.table_schema=t.表模式和c.table_name=t.table_namewheret.table_schemanotin('information_schema','mysql','performance_schema','sys')andt.table_type='BASETABLE')sum_allontruejoininformation_schema.tablestaboncol.table_schema=tab.table_schemaandcol.table_name=tab.table_namewheretab.table_schemanotin('information_schema','mysql','performance_schema','sys')andtab.table_type='BASETABLE'groupbydata_type,sum_all.columns,sum_all.tablesorderbycolumnsdesc;说明:data_type-没有长度或精度的内置或用户数据类型,例如int、varchar或datetimecolumns-数据库(架构)中具有此数据类型的列数percent_columns-具有此数据行类型列的百分比总计为100%tables-数据库(模式)中具有此数据类型的表数percent_tables-具有此数据类型列的表的百分比。2.查找MySQL数据库中的所有数据列selectcol.table_schemaasdatabase_name,col.table_name,col.ordinal_positionascol_id,col.column_name,col.data_type,col.numeric_precision,col.numeric_scalefrominformation_schema.columnscoljoininformation_schema.tablestab在tab.table_schema=col.table_schemaandtab.table_name=col.table_nameandtab.table_type='BASETABLE'wherecol.data_typein('tinyint','smallint','mediumint','int','bigint','decimal','bit','float','double')andcol.table_schemanotin('information_schema','sys','performance_schema','mysql')--andcol.table_schema='database_name'--把你的数据库名按col.table_schema,col.table_name,col.ordinal_position排序;说明:database_name-数据库的名称(模式)table_name-表的名称column_id-列在表中的位置column_name-列名data_type-数据类型numeric_precision-列的精度numeric_scale-列的小数位数2.查找MySQL数据库中所有字符串(字符)列selectcol。table_schema作为database_name,col.table_name,col.ordinal_position作为column_id,col.column_name,col.data_type,col.character_maximum_length作为maximum_length,col.character_set_name来自information_schema.columnscoljoininformation_schema.tablestabontab.table_schema=col.table_schemaandtab.table_name=.table_type='BASETABLE'wherecol.data_typein('char','varchar','binary','varbinary','blob','tinyblob','mediumblob','longblob','text','tinytext','mediumtext','longtext''enum','set')andcol.table_schemanotin('information_schema','sys','performance_schema','mysql')--andcol.table_schema='database_name'--把你的数据库名按col.table_schema,col.table_name,col.ordinal_position排序;说明:database_name-数据库的名称(模式)table_name-表的名称column_id-表中列位置的名称column_name-列的名称data_type-数据类型maximum_length-最大字符长度character_set_name-字符集名称4.查找MySQL数据库中的所有日期和时间列selectcol.table_schemaasdatabase_name,col.table_name,col.ordinal_positionascolumn_id,col.column_name,col.data_type,col.datetime_precisionfrominformation_schema.columnscoljoininformation_schema.tablestabontab.table_schema=col.table_schemaandtab.table_name=col.table_nameandtab.table_type='BASETABLE'wherecol.data_typein('date','time','datetime','year','timestamp')andcol.table_schema不在('information_schema','sys','performance_schema','mysql')--andcol.table_schema='database_name'--把你的数据库名放在这里按col.table_schema,col.table_name,col.ordinal_position排序;说明:database_name-数据库的名称(模式)table_name-表的名称column_id-列在表中的位置column_name-列名data_type-数据类型datetime_precision-小数秒的精度5.查找所有枚举列在MySQL数据库selectcol.table_schemaasdatabase_name,col.table_name,col.ordinal_positionascolumn_id,col.column_name,col.data_type,trim(leading'enum'fromcol.column_type)asenum_valuesfrominformation_schema.columnscoljoininformation_schema.tablestab.table_schema=col.table_schemaandtab.table_name=col.table_nameandtab.table_type='BASETABLE'wherecol.data_typein('enum')和col.table_schemanotin('information_schema','sys','performance_schema','mysql')--andcol.table_schema='database_name'--把你的数据库enamehereorderbycol.table_schema,col.table_name,col.ordinal_position;说明:database_name-数据库的名称(schema)table_name-表的名称column_id-列在表中的位置column_name-列的名称data_type-数据类型enum_values-statement可能的枚举值6.查找MySQL数据库中的所有空间数据列selectcol.table_schemaasdatabase_name,col.table_name,col.ordinal_positionascolumn_id,col.column_name,col.data_type,col.is_nullablefrominformation_schema.columnscoljoininformation_schema。col.table_schema=tab.table_schema和col.table_name=tab.table_nameandtable_type='BASETABLE'上的表格选项卡,其中col.data_typein('geometry','point','linestring','polygon','multipoint','multilinestring','multipolygon','geometrycollection')andcol.table_schemanotin('information_schema','sys','performance_schema','mysql')--andtable_schema='database_name'--把你的数据库senamehereorderbycol.table_schema,col.table_name;说明:(1)database_name-数据库的名称(schema)(2)table_name-表名(3)column_id-列在表中的位置(4)column_name-列名(5)data_type-空间数据类型:GEOMETRYPOINTLINESTRINGPOLYGONMULTIPOINTMULTIPOLYGONGEOMETRYCOLLECTION(6)is_nullable——表示该列是否可以包含空值7.查找MySQL数据库中的所有JSON数据列selectcol.table_schemaasdatabase_name,col.table_name,col.ordinal_positioncolumn_id,col.column_name,col.data_typefrominformation_schema.columnscoljoininformation_schema.tablestabontab.table_schema=col.table_schemaandtab.table_name=col.table_nameandtab.table_type='BASETABLE'wherecol.data_typein('json')andcol.table_schemanotin('information_schema','sys','performance_schema','mysql')--和col.table_schema='database_name'--把你的数据库名放在这里按col.table排序_schema,col.table_name,col.ordinal_position;说明:database_name-数据库的名称(schema)table_name-表的名称column_id-列在表中的位置column_name-列的名称data_type-数据类型8.查找MySQL数据库中的大对象(LOB)数据类型列selecttab.table_schemaasdatabase_name,tab.table_name,col.column_name,col.data_typefrominformation_schema.tablesastabinnerjoininformation_schema.columnsascoloncol.table_schema=tab.table_schemaandcol.table_name=tab.table_namewheretab.table_schema='yourdatabasename'andtab.table_type='BASETABLE'andcol.data_typein('blob','mediumblob','longblob','text','mediumtext','longtext')按tab.table_name、col.column_name排序;解释:schema_name-数据库(schema)的名称table_name-表的名称column_name-列的名称data_type-数据类型9.在MySQL数据库表中查找具有大对象(LOB)数据类型的列选择tab.table_name,count(*)作为information_schema.tables中的列作为选项卡innerjoininformation_schema.columnsascoloncol.table_schema=tab.table_schemaandcol.table_name=tab.table_nameandcol.data_typein('blob','mediumblob','longblob','text','mediumtext','longtext')wheretab.table_schema='你的数据库名称'andtab.table_type='BASETABLE'groupbytab.table_nameorderbytab.table_name;说明:table_name-表的名称columns-表中的LOB列表
