mysql 实用查询

整理一些本人在开发过程中经常用到的mysql数据库相关查询,分享给大家。其它数据库的相关查询应该一样或类似,本文只针对mysql。

本文为本人原创,转载请注明出处。

1、查询表索引

sql语句
mysql> show index from tableName(执行时替换为具体表名,下同);
mysql> show keys from  tableName ;
结果列说明
· Table
表的名称。
· Non_unique
如果索引不能包括重复词,则为0。如果可以,则为1。
· Key_name
索引的名称。
· Seq_in_index
索引中的列序列号,从1开始。
· Column_name
列名称。
· Collation
列以什么方式存储在索引中。在MySQL中,有值‘A’(升序)或NULL(无分类)。
· Cardinality
可以翻译为“散列程度,它表示某个索引对应的列包含多少个不同的值
· Sub_part
如果列只是被部分地编入索引,则为被编入索引的字符的数目。如果整列被编入索引,则为NULL。
· Packed
指示关键字如何被压缩。如果没有被压缩,则为NULL。
· Null
如果列含有NULL,则含有YES。如果没有,则该列含有NO。
· Index_type
用过的索引方法(BTREE, FULLTEXT, HASH, RTREE)。
· Index_Comment
索引备注
 
2、显示表的创建语句,包括此表使用哪种数据库引擎,以及表分区情况
sql语句
SHOW CREATE TABLE tableName;
 
3、查看表结构(列名、列类型、是否可空、类型、默认值等)
sql语句
SHOW COLUMNS FROM tableName;
DESC  tableName;
describe  tableName;
select * from columns where table_name=' tableName ';
 
4、显示一个连接下的所有数据库名
sql语句
show databases;
 
5、显示一个数据库下面的所有表名
sql语句
show tables FROM database(具体数据库名);
 
6、显示本数据库下所有进程
SHOW PROCESSLIST;
说明,在查出具体进程后,往往会用“kill+查出的进程id”语句来结束僵尸进程
 
7、查看本数据库引擎,可查出默认,支持,不支持的所有引擎
sql语句
show engines;
 
8、group_concat(),说明:该函数返回带有来自一个组的连接的非NULL值的字符串结果。
例:班级表class含cId(班级id)和sName(学生姓名)两列,数据如下:
1 小明
2 小红
3 小东
1 小梅
1 小花
3 小强
要求分班查出每个班的学生,每个班显示一行。
sql语句:select cId,group_concat( sName ) from class group by cId;
结果:
cId    sName
1     小明,小梅,小花
2     小红
3     小东,小强
 

猜你喜欢

转载自kroseing.iteye.com/blog/2317577