关闭

Python基础学习-MySQL与Python结合

697人阅读 评论(0) 收藏 举报
分类:

一、MySQL

1、下载安装MySQL 5.0

2、mysql操作

  •     cmd->
  • mysql -h 主机名 -u 用户名 -p

    • -h : 该命令用于指定客户端所要登录的MySQL主机名, 登录当前机器该参数可以省略;
    • -u : 所要登录的用户名;
    • -p : 告诉服务器将会使用一个密码来登录, 如果所要登录的用户名密码为空, 可以忽略此选项。
  •     MySQL command line client

           

3、具体SQL语言操作

21分钟 MySQL 入门教程


二、mysql-connector-python

由于MySQL服务器以独立的进程运行,并通过网络对外服务,所以,需要支持Python的MySQL驱动来连接到MySQL服务器。
  • 官网下载 只有2.7、3.2、3.3版本的
  • PyMySQL    在github上找了个支持3.4的版本
pymysql操作步骤:
   
序号 描述
1 去github上下载pymysql的安装包 pymysql
2 解压到某个盘符下
3 打开cmd窗口(win环境下),进入pymysql的根目录下执行命令,python setup.py install
4 在程序里,导入pymysql
5 开始连接数据库
点击: 如何安装第三方库?

数据库操作的API文档连接: http://legacy.python.org/dev/peps/pep-0249/

代码如下:

__author__ = 'qindongliang'
#导入pymysql的包
import pymysql
try:
#获取一个数据库连接,注意如果是UTF-8类型的,需要制定数据库
  conn=pymysql.connect(host='localhost',user='root',passwd='qin',db='person',port=3306,charset='utf8')
  cur=conn.cursor()#获取一个游标
  cur.execute('select * from person')
  data=cur.fetchall()
  for d in data :
    #注意int类型需要使用str函数转义
   print("ID: "+str(d[0])+'  名字: '+d[1]+"  性别: "+d[2])

  cur.close()#关闭游标
  conn.close()#释放数据库资源
except  Exception :print("发生异常")

结果如下:

D:\python\python.exe D:/pythonide/pythonprojectworkspace/python/mysql.py
ID: 1  名字: 秦天  性别: 男
ID: 2  名字: 王晶  性别: 女

Process finished with exit code 0
示例来自:如何使用Python3.4连接MySQL

import pymysql

conn=pymysql.connect(host='localhost',user='root',passwd='****',db='learnpy')
cur=conn.cursor()
sqll_ct='create table students(' \
       'id int unsigned not null auto_increment primary key,' \
       'name char(32) not null,' \
       'sex char(4) not null,' \
       'age tinyint unsigned not null);'
cur.execute(sqll_ct)
print("create table done!")
sqll_ins=['insert into students values(NULL,"guodegang","M",38);', \
           'insert into students values(NULL,"yuqian","M",47);', \
           'insert into students values(NULL,"yangmi","F",27);', \
           'insert into students values(NULL,"angelababy ","F",26);', \
           'insert into students values(NULL,"wangjukai","M",17);', \
           'insert into students values(NULL,"yiyangqianxi","M",16);', \
           'insert into students values(NULL,"wangyuan","M",16);', \
           'insert into students values(NULL,"liuyifei","F",18);']
for lang in sqll_ins:
  cur.execute(lang)

print("insert info done!")
sqll_s='select * from students where sex="M" order by age'
cur.execute(sqll_s)
print("select info done!")
data=cur.fetchall()
for x in data:
    print("ID: %s   Name: %s   Age:%d"%(str(x[0]),x[1],x[3]))

cur.close()
conn.close()





另之前一直name那块不能输入为中文,后来改了几个地方才好:
1、数据库的基字符集:改为utf8或gbk
2、数据库连接时候加上“
charset='utf8'

效果如下:


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:28852次
    • 积分:621
    • 等级:
    • 排名:千里之外
    • 原创:32篇
    • 转载:10篇
    • 译文:0篇
    • 评论:2条
    最新评论