Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 冲浪宝典 > 网络资源 > 一个小巧的MySQL Shell
【标  题】:一个小巧的MySQL Shell
【关键字】:SQL,Shell,My,MySQL,MySQL
【来  源】:网络

一个小巧的MySQL Shell

Your Ad Here #!/usr/bin/python
# -*- coding: cp936 -*-

#################################
# Written by caocao #
# caocao@eastday.com #
# http://nethermit.yeah.net #
#################################

import sys, string, os
from types import *
import MySQLdb

print "Written by caocao"
print "caocao@eastday.com"
print "http://nethermit.yeah.net"
print

def iif(expression, whenTrue, whenFalse):
if expression:
return whenTrue
else:
return whenFalse

class mysqlTest:
def __init__(self, host="localhost", user="root", passwd="", db=""):
self.connection=None
self.host=host
self.user=user
self.passwd=passwd
self.db=db
self.result=None

print "-"*40
print "MySQL Shell v 1.0"
print "Usage: python mysql.shell.py [host] [user] [passwd(% is empty)] [db]"
print "Connect..."
try:
self.connection=MySQLdb.connect(host=self.host, user=self.user, passwd=self.passwd, db=self.db)
except:
print "Can't connect to mysql server.\nPlease make sure your username or password is right."
sys.exit(1)
print "-"*40
print self.printComment("connection", "get_server_info")
print self.printComment("connection", "get_host_info")
print self.printComment("connection", "get_proto_info")
print self.printComment("connection", "info")
print self.printComment("connection", "character_set_name")
print self.printComment("connection", "thread_id")
print self.printComment("connection", "stat")

def __del__(self):
if self.connection!=None:
self.connection.close()
print "-"*40
print "Quit..."

def printComment(self, instance, function):
return "%s = %s" % (string.rjust(function, 18), eval("self."+instance+"."+function+"()"))

def printAll(self):
output, row="", self.result.fetch_row(0)
for i in range(self.result.num_fields()):
output+=repr(self.result.describe()[i][0])+"\n"
for i in range(self.result.num_rows()):
for j in range(self.result.num_fields()):
output+=iif(type(row[i][j]) is StringType, row[i][j], repr(row[i][j]))+"\n"
return output

def runSQL(self, queryString="show databases"):
print "-"*40
try:
self.connection.query(queryString)
except:
print "Can't run sql."
else:
self.result=self.connection.store_result()
print self.printComment("connection", "field_count")
print self.printComment("connection", "affected_rows")
print self.printComment("connection", "insert_id")
print self.printComment("result", "num_fields")
print self.printComment("result", "num_rows")
print self.printComment("result", "field_flags")
print "-"*40
print self.printAll()

if __name__=="__main__":
argArray=sys.argv
del argArray[0]
test=eval(("mysqlTest(\"%s\")" % "\",\"".join(argArray)).replace("%", ""))
while True:
try:
command=string.strip(raw_input("PS mysql>"), " ")
commandLow=string.lower(command)
except EOFError:
break
else:
if commandLow=="exit" or commandLow=="quit":
break
elif commandLow=="":
continue
else:
test.runSQL(command)

最有效率的“多字段模糊匹配关键字查询”的解决办法:【上一篇】
启动WinMySQLAdmin出现-MyODBC- Not Found的问题:【下一篇】
【相关文章】
  • SQL中自己创建函数,分割字符串
  • 创建MYSQL实体化视图的几个注意点
  • MYSQL常用命令
  • 让MySQL与OpenOffice共舞
  • 用sqlplus只输出数据到文本文件的实例
  • SQL数据排序
  • 几个测试SQL,测试SQL处理字符串
  • 使用Jmeter对Mysql进行压力测试无法执行多条sql语句问题
  • MYSQL初学者使用指南与介绍
  • MYSQL数据库入门
  • 【随机文章】
  • 用PHP生成和处理电子表格文件(PEAR)
  • title : 文件系统(上)
  • 字符串反转
  • Linux中用CVSNT进行目录、文件的权限设置
  • 愿做一只海鸥
  • ORACLE中如何停止正在执行的任务(JOB)
  • Picasa Web Albums
  • WPF学习笔记(2)--样式(Style)
  • Oracle Database 9.2 Concepts Guide学习笔记1219
  • 一个真实的FreeBSD进程的地址空间的探察分析
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.