- Mac下使用mysqlworkbench操纵数据库
- python3.x 使用pymysql操作mysql,python2.x使用mysqldb操作mysql
import pymysql
数据库连接对象connection
介绍一下connection的参数:
1. host mysql服务器地址
2. port 数字类型 端口
3. user 用户名
4. passwd 密码
5. db 数据库名称
6. charset 连接编码,需要显式指明编码方式
实例:
mport pymysql
conn = pymysql.Connect(host='localhost',port=3306,user='root',passwd='bamajie521mysql',db='python',charset='utf8') # 创建对象
cursor = conn.cursor() # 使用该链接创建+返回游标
print(conn)
print(cursor)
cursor.close()
conn.close()
输出:
<pymysql.connections.Connection object at 0x104dc63c8>
<pymysql.cursors.Cursor object at 0x10533a160>
数据库游标对象cursor
实例:
conn = pymysql.Connect(host='localhost',port=3306,user='root',passwd='bamajie521mysql',db='python',charset='utf8') # 创建对象
cursor = conn.cursor()
sql = "select * from douban_moive250"
cursor.execute(sql) #执行一个数据库查询和命令
print("cursor.excute:",cursor.rowcount) # 最近一次execute返回数据的行数或影响行数
cursor.close()
conn.close()
输出:
cursor.excute: 0 #此时表中无数据
更新数据库insert/update/delete
注意:不同于select操作,这三个操作修改了数据库内容,所以需要commit(),否则数据库没有做相应的更改,但是也不会报错
注意:
- ‘NoneType’ object has no attribute ‘encoding’ ,之前指明的charset必须是”UTF8”,不是”utf-8”/”UTF-8”
- MySQL语句后面必须有’;’,否则不会报错,也难以发现
- 数据库insert/update/delete操作需要commit()
- 在构造命令的时候,注意用 ” 包裹起来,因为SQL语句字符串需要 ’ 包裹。所以,” 比较简单的避免歧义。