我见过的绝大多数查询都有数据库名称,后跟表名前一段时间。例如:
SELECT * FROM mydatabase.mytable;
然而,这似乎同样有效:
SELECT * FROM mytable;
是否有理由在每个表名前加上mydatabase.
?
我在PHP中通过PDO使用MySQL。
答案 0 :(得分:3)
是否有理由拥有mydatabase。在每个表名之前
是的,如果您正在执行cross database query
;您实际访问和连接来自不同数据库的表的位置。以下示例db1
和db2
是不同的数据库。
select t1.*,t2.some_column
from db1.table1 t1
inner join db2.table2 t2 on t1.some_id_column = t2.some_id_column;
但是,如果从同一数据库中的表访问并对该数据库运行查询,则无需指定完全限定名称(DB_NAME.SCHEMA_NAME.TABLE_NAME
)
答案 1 :(得分:2)
如果您只打算使用一个数据库,则无需在每个查询中定义它。使用mydatabase.mytable
的唯一原因是您要连接到多个数据库。