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'
的结果是相同的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)