--------------------------------------------------------------------------------------
# 采用pyssql:
conn = pymssql.connect(host='localhost', user='user', password='passwd', database='dbname')
# 采用pydobc:
conn = pyodbc.connect("DRIVER={SQL Server}; SERVER=127.0.0.1; DATABASE=dbname; UID=user; PWD=passwd")
cur = conn.cursor()
cur.execute("select QQNum from Group1 where QunNum = 100010")
rows = cur.fetchall() # 返回的是列表
import cmd
from QQDBTools import *
class QQDB(cmd.Cmd):
def __init__(self):
cmd.Cmd.__init__(self)
self.prompt = 'QQDB >>> '
print "\n\t\t\t欢迎使用QQ群数据库浏览工具\n"
def help_getqq(self):
print "如果只显示请输入: getqq 10010101"
print "如果想保存请输入: getqq 10010101 w"
def do_getqq(self, arg):
getQQInfo(arg)
def help_getqun(self):
print "如果只显示请输入: getqun 100010"
print "如果想保存请输入:getqun 100010 w"
def do_getqun(self, arg):
getQunData(arg)
def default(self, line): # 输入无法识别执行该函数
print "无法识别"
def emptyline(self): # 输入为空执行该函数
pass
def help_quit(self):
print "退出程序"
def do_quit(self, line):
sys.exit()
if __name__ == '__main__':
qqdb = QQDB()
qqdb.cmdloop()
这牛8的QQ号不是本人的,随便找了一个
use master select * from syscharsets # 查询数据库支持的字符集,及windows支持的字符集
sp_helpsort # 查询数据库当前排序规则,前半部分即为当前字符集,为Chinese-PRC
select collationproperty('chinese_prc_stroke_ci_ai_ks_ws', 'codepage') # 查询编码格式
# 结果为cp936,此为微软的表示方式,与国标GBK近乎相同
pymssql.connect()时,可指定字符集,charset="utf8"。而且只能是utf8这样写,若写作utf-8竟然出错~~~
# coding: utf8 # 并将文件保存为utf8格式
pymssql.connect(..., charset='utf8') # 使用utf8连接数据库
reload(sys)
sys.setdefaultencoding('utf8') # 将python系统内部编码格式置为utf8
可以执行,但将查询返回结果print或f.write时,中文字符乱码。
if exists (select name from sysindexes where name=IndexName) # 如果已经存在索引
drop index TableName.IndexName # 删除该索引
create nonclustered index IndexName # 建立非聚集索引 # 另有聚集索引 适用场景不同
on TableName(ColumnName) # 在某个表的某列上
with fillfactor=90 # 填充因子,表示占用空间百分比
# 因为不会对该数据库再增添新数据,所以不必留有太多剩余空间
实在不知道如何解决乱码问题时,尝试将varchar改为nvarchar,即用unicode存储。试验时不会出现中文乱码了。
可打算将所有数据库更改时,发现太慢,数据库有向200G进军的趋势,并且一个数据库日志LDF就45G多……alter table TableName
alter column ColumnName nvarchar(20)
'\r'表示回车,即回到行首,'\n'表示换行到下一行。不能用print()因为print表示打印一行。详见 猛点
--------------------------------------------------------------------------------
简陋代码 莫笑
http://download.csdn.net/detail/efeics/6695873