用python获取mysql中的表行数

#导入MySQLdb模块,这个模块需要自己安装,安装文档请见http://blog.itpub.net/29989552/viewspace-1805409/
import MySQLdb

#打开数据库连接
conn=MySQLdb.connect(host='172.30.249.57',port=3306,user='root',passwd='Welcome1>')

#使用cursor()方法获取游标
cursor1=conn.cursor(cursorclass=MySQLdb.cursors.DictCursor)
cursor2=conn.cursor(cursorclass=MySQLdb.cursors.DictCursor)
begin=True
while begin==True:

#输入要查询的哪个数据下的表信息
        schema=raw_input('Please enter database name:') 

#执行sql获取数据库库名
        cursor1.execute("select TABLE_SCHEMA from information_schema.tables group by TABLE_SCHEMA")
        rows=cursor1.fetchall()
        schemalist=[]
        for list in rows:
                schemalist.append(list['TABLE_SCHEMA'])

#判断用户是否输入正确的数据库名
        if schema in schemalist:
#执行sql获取数据库下的表信息
                sql="select TABLE_NAME,TABLE_ROWS from information_schema.TABLES  where TABLE_SCHEMA='%s'" % (schema)
                cursor2.execute(sql)
                result=cursor2.fetchall()
                begin=False
#循环输出
                for list2 in result:
                        print list2['TABLE_NAME']+':'+str(list2['TABLE_ROWS'])
        else:
                begin=True
                print '-database name not exist,please enter again-'
cursor1.close()
cursor2.close()
conn.commit()
conn.close()

效果:
[root@~]# python schema.py

Please enter database name:123      
-database name not exist,please enter again-
Please enter database name:test
fd_saleman_info:1612
fd_wx_user_info:1498
id:1
invite_user_detail:43341
july_active_earn_rank:2000

注意:这里的行数是统计信息里的数据,会和实际去用select count(*)查出来的数据有差异

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29989552/viewspace-2129864/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29989552/viewspace-2129864/

你可能感兴趣的:(用python获取mysql中的表行数)