那你这个必须通过程序判断 或者存储过程去实现,只用一条SQL是解决不了的。

若是MySQL数据库,做法:IF 去information_schema读取tables 表,判断指定库名的某表是否存在; 存在,则是UNION的SQL语句ELSE 不存在,则是单条表SQL语句END IF
如果在MySQL中创建了表,但是在查询表时找不到,可能有以下几个原因:
1. 表名大小写不匹配:MySQL默认是区分大小写的,所以在查询表时,表名的大小写必须与创建表时一致。例如,如果创建表时使用了大写字母,那么查询时也必须使用相同的大写字母。
2. 数据库选择错误:在MySQL中,表是属于某个数据库的,如果在查询表时没有选择正确的数据库,就无法找到表。可以使用 `USE` 命令切换到正确的数据库,然后再查询表。
3. 表不存在:可能是创建表时出现了错误,导致表没有成功创建。可以使用 `SHOW TABLES` 命令查看当前数据库中的所有表,确认表是否存在。
4. 表名前缀或后缀错误:如果在创建表时使用了表名的前缀或后缀,那么在查询表时也必须包含相同的前缀或后缀。
5. 数据库连接问题:如果是通过远程连接MySQL服务器,可能是连接配置有误或者网络问题导致无法正常连接到MySQL服务器。可以检查连接配置和网络连接是否正常。
如果以上方法都无法解决问题,可以提供更多的详细信息,例如创建表的SQL语句和查询表的SQL语句,以及出现的错误提示信息,这样可以更好地帮助你解决问题。
(1) information_schema:提供了访问数据库元数据的方式。其中保存着关于MySQL服务器所维护的所有其他数据库的信息,如数据库名、表名、列的数据类型、访问权限等。
(2) mysql:这个是MySQL的核心数据库。主要负责存储数据库的用户、权限设置、关键字以及MySQL自己需要使用的控制和管理信息等。
(3) performance_schema:主要用于收集数据库服务器性能参数,如提供进程等待的详细信息,包括锁、互斥变量、文件信息;保存历史的事件汇总信息,为提供MySQL服务器性能做出详细的判断;对于新增和删除监控事件点都非常容易,并可以改变MySQL服务器的监控周期等。
(4) sys:是MySQL5.7新增的系统数据库,其在MySQL5.7中是默认存在的,在MySQL5.6及以上版本可以手动导入。这个库通过视图的形式把information_schema和performance_schema结合起来,查询出更加令人容易理解的数据。
(5)Sakila样本数据库是MySQL官方提供的一个模拟DVD租赁信息管理的数据库,提供了一个标准模式,可作为书中例子,教程、文章、样品,等等,对学习测试来说是个不错的选择