mysql查询数据库中有没有表

mysql查询数据库中有没有表,第1张

1.

use

数据库

show

tables就能看到这个库中所有的表

或者更直接一点,你到mysql

的data文件夹下看看,有多少个文件夹就有多少个库,看看有多少个不同的文件名,就有多少个表

2.

//看当前使用的是哪个数据库

,如果你还没选择任何数据库,结果是null。mysql>select

database()

+------------+

|

database()

|

+------------+

|

menagerie

|

+------------+

3.

如何查看mysql中有哪些数据库和表

我想要知道自己的mysql中有哪些数据库和表,该如何查看?

2006-6-20

02:22

lcy234

show

databasesuse

databasenameshow

tables

mysql(发音为"my

ess

cue

el",不是"my

sequel")是一种开放源代码的关系型数据库管理系统(rdbms),mysql数据库系统使用最常用的数据库管理语言--结构化查询语言(sql)进行数据库管理。

1.in 后面是记录集,如:

select  *  from  table  where   uname  in(select  uname  from  user)

2.in 后面是字符串,如:

select  *  from  table  where   uname  in('aaa',bbb','ccc','ddd','eee',ffff'')

注意:这里一定要将字符串用单引号'' 标注起来;

3.in 后面是数组,用如下方法,请参考:

//$pieces是含数据的数组

for($i=0$i<count($pieces)$i++){

$uname=$uname."'".$pieces[$i]."',"

}

$the_uname ="uname in(".$uname."'')"

select  *  from  table  where    ".$the_uname." 

备注:这种方法的原理其实很简单,二就是把数组编程上面“第2种情况”的形式。

in 是把外表和内表作hash 连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询。一直以来认为exists比in效率高的说法是不准确的。

如果查询的两个表大小相当,那么用in和exists差别不大。

如果两个表中一个较小,一个是大表,则子查询表大的用exists,子查询表小的用in:

例如:表A(小表),表B(大表)

1:

select * from A where cc in (select cc from B) 效率低,用到了A表上cc列的索引

select * from A where exists(select cc from B where cc=A.cc) 效率高,用到了B表上cc列的索引。

相反的

2:

select * from B where cc in (select cc from A) 效率高,用到了B表上cc列的索引;

select * from B where exists(select cc from A where cc=B.cc) 效率低,用到了A表上cc列的索引。

not in 和not exists如果查询语句使用了not in 那么内外表都进行全表扫描,没有用到索引;而not extsts 的子查询依然能用到表上的索引。所以无论那个表大,用not exists都比not in要快。

in 与 =的区别

select name from student where name in ('zhang','wang','li','zhao')

select name from student where name='zhang' or name='li' or name='wang' or name='zhao'

的结果是相同的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6122095.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-15
下一篇 2023-03-15

发表评论

登录后才能评论

评论列表(0条)

保存