当前位置: 首页 > 科技观察

MySQL经常使用查询Columns和Views

时间:2023-03-12 20:17:18 科技观察

分享下工作中常见的mysql脚本,这次分享的内容如下:ColumnsViews一、Columns1.列出MySQL数据库中的表格selecttab.table_schemaasdatabase_schema,tab.table_nameastable_name,col.ordinal_positionascolumn_id,col.column_nameascolumn_name,col.data_typeasdata_type,casewhencol.numeric_precisionisnotnullthencol.numeric_precisionelsecol.character_maximum_length以max_length结束,当col.datetime_precision不为null时,col.datetime_precision当col.numeric_scale不为null时,col.numeric_scaleelse0以'precision'结束,来自information_schema.tablesastabinnerjoininformation_schema.columns作为col.table_schema=tab.table_schema和col.table_name=tab.table_namewheretab.table_type='BASETABLE'andtab.table_schemanotin('information_schema','mysql','performance_schema','sys')--取消当前数据库下面的注释行只有--andtab.table_schema=database()--取消注释下面的行并提供特定的数据库名称--andtab.table_schema='your_database_name'orderbytab.table_name,col.ordinal_position;注意:要查看特定数据库中的列,请取消注释上述子句之一说明:schema_name-数据库名table_name-表名column_id-表列id,每张表从1开始中的所有列selectordinal_positionascolumn_id,column_nameascolumn_name,data_typeasdata_type,casewhennumeric_precisionisnotnullthennumeric_precisionelsecharacter_maximum_lengthendasmax_length,casewhendatetime_precisionisnotnullthendatetime_precisionwhennumeric_scaleisnotnullthennumeric_scaleelse0endasdata_precision,is_nullable,column_defaultfrominformation_schema.columnswheretable_name='tablename'--将表名放在这里--andtable_schema='schemaname'--将schemaname放在这里按ordinal_position排序;说明:column_id-列在表中的位置,从1开始column_name-列在表中的名称data_type-列数据类型max_length-数据类型最大长度data_precision-数据类型精度,否则NOcolumn_default-列3的默认表达式。Column获取包含的所有MySQL数据库详细信息的表列(PK、UK、FK、默认、计算等)描述:database_name-数据库(模式)名称table_name-表名column_name-列名data_type-数据列的类型包含精度-数字类型精度或日期时间刻度fortypenumeric_scale-数字数据类型的标度char_length-最大字符长度column_default-列的默认值PK-指示列是否为主键FK-指示列是否为外键UQ-指示列是否必须具有唯一性valuesinthetableis_nullable-表示该列是否可以为空4.列出MySQL数据库中所有计算(生成)的列>0和table_schema不在('information_schema','sys','performance_schema','mysql')orderbytable_schema,table_name,column_name;说明:database_name-包含表的数据库(schema)的名称table_name-表的名称column_name-列的名称data_type-列的名称数据类型generation_expression-计算公式2,Views1.ListviewsinMySQLdatabaseselecttable_schemaasdatabase_name,table_nameasview_namefrominformation_schema.viewswheretable_schemanotin('sys','information_schema','mysql','performance_schema')--andtable_schema='database_name'--把你的数据库名称按table_schema、table_name排序;说明:database_name-包含视图的数据库(schema)的名称view_name-视图的名称2.列出MySQL中的视图及其定义选择vw.table_schemaasdatabase_name,vw.table_nameasview_name,vw.view_definitionasdefinition,tb.table_commentasdescriptionfrominformation_schema.viewsasvwinnerjoininformation_schema.tablesastbontb.table_name=vw.table_name--wherevw.table_schema='yourdatabasename'orderbydatabase_name,view_name;注意:如果您需要特定数据库(模式)的信息,请取消注释table_schema行并提供您的数据库名称说明:schema_name-视图的数据库(schema)名称view_name-视图的名称definition-视图的定义scriptdescription-视图的描述3.列出MySQL数据库中视图中的所有列selectcol。table_schema作为database_name,col.table_name作为view_name,col.ordinal_position,col.column_name,col.data_type,当col.character_maximum_length不为空时,col.character_maximum_length否则col.numeric_precision结束为max_length,col.is_nullable来自information_schema.columnsvliejoins。查看coliejoininformation_=col.table_schemaandvie.table_name=col.table_namewherecol.table_schemanotin('sys','information_schema','mysql','performance_schema')--andvie.table_schema='database_name'--将您的数据库名称按col.table_schema、col.table_name、col.ordinal_position排序;说明:database_name-数据库(模式)名view_name-视图名column_name-列名data_type-列数据类型max_length-列长度:forword对于字符串列,最大字符长度;对于数字列,数字精度是_nullable——一个标志,表示该列是否允许空值4。列出MySQL数据库中视图使用的表。查询在8.0.13MySQL版本下执行。从information_schema.view_table_usagevtujoininformation_schema中选择vtu.view_schema作为database_name,vtu.view_name作为view_name,vtu.table_schema作为referenced_database_name,vtu.table_name作为referenced_object_name,tab.table_type作为object_type。=tab.table_namewhereview_schemanotin('sys','information_schema','mysql','performance_schema')--andtab.table_schema='database_name'--把你的数据库名按vtu.view_schema,vtu.view_name排序;说明:database_name-视图数据库(schema)名view_name-视图名referenced_database_name-视图引用表数据库名referenced_object_name-视图引用表名object_type-引用对象类型:BASETABLE;看法