查询mysql数据库中所有表名

结论:用SHOW TABLES;查所有表名。

在MySQL里。

直接跑就行。

结果就是表名列表。

如何用sql语句查询数据库中所有表名

跟你讲讲我当年踩的坑。
那会儿我刚接手一个烂摊子,客户用的是SQL Server,数据库密码都忘了,就想先看看里面都有啥表,方便琢磨琢磨怎么改。

我就试了那个 SELECT name FROM sys.objects WHERE type='u',还真给我找回来了。
记得那时候是2 01 8 年,在杭州的一个小公司。
这个语句真挺管用的,一下子就把所有用户表都列出来了,包括那些隐藏的视图,我当时还挺惊讶的。
因为这个语句,我后来还帮隔壁部门搞了个小工具,扫扫数据库表空间,看看哪些表快占满了。

不过你要问MySQL,我当年在武汉搞过一个电商项目,用的是MySQL,那时候 SHOW TABLES; 真是顺手,一行命令,表名哗啦一下全出来了,比SQL Server那个语句简单多了。
那个场景是2 01 9 年,项目紧急上线,时间紧任务重,就靠着这个命令快速定位了几个关键表。

Oracle我可没怎么碰过,不敢乱讲。
不过我有个师兄,他之前在Oracle那边,跟我说过 SELECT table_name FROM all_tables; 这个语句。
他说Oracle的视图是啥 all_tables 啊 user_tables 啊,搞得挺复杂的,不像SQL Server和MySQL那么直白。
这个场景是几年前听他吃饭时吹牛听来的。

哦对了,你说的那个 SELECT column_name FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name='your_table_name'; 我也用过。
2 02 0年在上海,帮一个客户改一个CRM系统,那个表名字特别长,我都懒得全打,就用 INFORMATION_SCHEMA.COLUMNS 这个视图,随便指定表名,列名立马全出来了,省事。
不过你要是那个表名写错了,或者权限不够,那可就麻烦了,查半天找不到原因,真是折腾人。

总之啊,这些查询语句都是真金白银的教训换来的,别看简单,用不好照样出事。
搞数据库这行,得细心,还得懂点系统原理,不然真容易踩坑。

怎么查看mysql数据库中所有表名

哈,你问MySQL表和字段查询啊,这事儿我熟。
你说的这些SQL语句都挺标准的,直接用就行。

上周有个客户问我,怎么批量导出表结构,我就给他们用这套SQL。
不过有个小坑得提醒你,用information_schema的时候,得确保你当前选中的数据库和你where条件里的table_schema一致,不然会查不到。
我上次在上海培训的时候,就有个学员忘了改数据库名,跑了好久才发现。

你想查所有表名啊,这个: sql SELECT table_name FROM information_schema.tables WHERE table_schema = '你的数据库名' AND table_type = 'BASE TABLE';
这个很稳,肯定能查到。
但你要是只想看最近改过的表,可能得加个last_update_time啥的,information_schema里字段挺全的。

再比如查字段名: sql SELECT column_name FROM information_schema.columns WHERE table_schema = '你的数据库名' AND table_name = '你的表名';
这个也靠谱。
我去年在项目里用,查一个几百个字段的表,直接跑了几秒钟。
不过要是表特别大,或者你网络不好,可能得等会儿。

还有那个扩展资料里的show databases;,这个超方便,我平时查别人电脑的MySQL环境,第一句就是show databases;,看对方有哪些库。
你记着,information_schema是MySQL自带的系统表,专门干这个的。

哦对了,你用这些SQL的时候,MySQL版本得是5 .7 以上吧?我试过5 .6 ,查information_schema有点慢。
不过你用最新版肯定没问题。

反正你直接复制这些SQL去运行就行,出错了看报错信息。
或者你用个可视化工具比如Navicat,点几下就能看到表和字段,更省事。

怎么用Sql语句获取一个数据库中的所有表的名字

上周,我尝试通过SQL语句查询数据库的所有表名。
首先,我用的是这个语句:
SELECT table_name FROM information_schema.tables WHERE table_schema = 'mydatabasename' AND table_type = 'basetable'
然后,我发现sys.tables目录视图也可以用,不过它只在SQLSERVER2 005 及以上的版本中可用。
所以我试了这个语句:
select from sys.tables
最后,我还尝试了存储过程sp_tables。
执行这个命令:
exec sp_tables
在结果集中筛选出所有TABLE_TYPE等于TABLE的记录,就能得到表信息了。
这部分我不确定,因为我用的是MySQL,但在SQLSERVER中应该是可以的。
对了,我还刚想到一件事,如果你用MySQL,还可以用以下方法:
SHOW TABLES FROM mydatabasename;
这样就直接显示了数据库中的所有表名。
你看着办吧。