-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathpython_mysql.py
More file actions
183 lines (156 loc) · 5.58 KB
/
python_mysql.py
File metadata and controls
183 lines (156 loc) · 5.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import MySQLdb
# 安装MySQLdb,请访问 http://sourceforge.net/projects/mysql-python
# Linux平台可以访问:https://pypi.python.org/pypi/MySQL-python) 分为预编译的二进制文件和源代码安装包
# 数据库连接
# 打开数据库连接
db = MySQLdb.connect("172.16.1.130", "root", "123456", "test")
# 使用cursor()方法获取操作游标
cursor = db.cursor()
# 使用execute方法执行SQL语句
cursor.execute("SELECT VERSION()")
# 使用 fetchone() 方法获取一条数据库。
data = cursor.fetchone()
print "Database version : %s " % data
# 关闭数据库连接
db.close()
# # 创建数据库表
# db = MySQLdb.connect("172.16.1.130", "root", "123456", "test")
# # 使用cursor()方法获取操作游标
# cursor = db.cursor()
# # 如果数据表已经存在使用 execute() 方法删除表。
# cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")
# # 创建数据表SQL语句
# sql = """CREATE TABLE EMPLOYEE (
# FIRST_NAME CHAR(20) NOT NULL,
# LAST_NAME CHAR(20),
# AGE INT,
# SEX CHAR(1),
# INCOME FLOAT )"""
# cursor.execute(sql)
# # 关闭数据库连接
# db.close()
# # 数据库插入操作
# # 打开数据库连接
# db = MySQLdb.connect("172.16.1.130", "root", "123456", "test")
# # 使用cursor()方法获取操作游标
# cursor = db.cursor()
# # SQL 插入语句
# sql = """INSERT INTO EMPLOYEE(FIRST_NAME,
# LAST_NAME, AGE, SEX, INCOME)
# VALUES ('Mac', 'Mohan', 20, 'M', 2000)"""
# # 以上sql语句也可以写成
# # sql = "INSERT INTO EMPLOYEE(FIRST_NAME, \
# # LAST_NAME, AGE, SEX, INCOME) \
# # VALUES ('%s', '%s', '%d', '%c', '%d' )" % \
# # ('Mac', 'Mohan', 20, 'M', 2000)
# try:
# # 执行sql语句
# cursor.execute(sql)
# # 提交到数据库执行
# db.commit()
# except:
# # Rollback in case there is any error
# db.rollback()
# # 关闭数据库连接
# db.close()
# 以下代码使用变量向SQL语句中传递参数:
# ..................................
# user_id = "test123"
# password = "password"
#
# con.execute('insert into Login values("%s", "%s")' % \
# (user_id, password))
# ..................................
# # 数据库查询操作
# # 打开数据库连接
# db = MySQLdb.connect("172.16.1.130", "root", "123456", "test")
#
# # 使用cursor()方法获取操作游标
# cursor = db.cursor()
#
# # SQL 查询语句
# sql = "SELECT * FROM EMPLOYEE \
# WHERE INCOME > '%d'" % (1000)
# try:
# # 执行SQL语句
# cursor.execute(sql)
# # 获取所有记录列表
# results = cursor.fetchall()
# for row in results:
# fname = row[0]
# lname = row[1]
# age = row[2]
# sex = row[3]
# income = row[4]
# # 打印结果
# print "fname=%s,lname=%s,age=%d,sex=%s,income=%d" % \
# (fname, lname, age, sex, income )
# except:
# print "Error: unable to fecth data"
#
# # 关闭数据库连接
# db.close()
# # 数据库更新操作
# # 打开数据库连接
# db = MySQLdb.connect("172.16.1.130", "root", "123456", "test")
#
# # 使用cursor()方法获取操作游标
# cursor = db.cursor()
#
# # SQL 更新语句
# sql = "UPDATE EMPLOYEE SET AGE = AGE + 1 WHERE SEX = '%c'" % ('M')
# try:
# # 执行SQL语句
# cursor.execute(sql)
# # 提交到数据库执行
# db.commit()
# except:
# # 发生错误时回滚
# db.rollback()
#
# # 关闭数据库连接
# db.close()
# # 删除操作
# # 打开数据库连接
# db = MySQLdb.connect("172.16.1.130", "root", "123456", "test")
#
# # 使用cursor()方法获取操作游标
# cursor = db.cursor()
#
# # SQL 删除语句
# sql = "DELETE FROM EMPLOYEE WHERE AGE > '%d'" % (20)
# try:
# # 执行SQL语句
# cursor.execute(sql)
# # 提交修改
# db.commit()
# except:
# # 发生错误时回滚
# db.rollback()
#
# # 关闭连接
# db.close()
# 执行事务
# SQL删除记录语句
# sql = "DELETE FROM EMPLOYEE WHERE AGE > '%d'" % (20)
# try:
# # 执行SQL语句
# cursor.execute(sql)
# # 向数据库提交
# db.commit()
# except:
# # 发生错误时回滚
# db.rollback()
# DB API中定义了的常见错误及异常
# Warning 当有严重警告时触发,例如插入数据是被截断等等。必须是 StandardError 的子类。
# Error 警告以外所有其他错误类。必须是 StandardError 的子类。
# InterfaceError 当有数据库接口模块本身的错误(而不是数据库的错误)发生时触发。 必须是Error的子类。
# DatabaseError 和数据库有关的错误发生时触发。 必须是Error的子类。
# DataError 当有数据处理时的错误发生时触发,例如:除零错误,数据超范围等等。 必须是DatabaseError的子类。
# OperationalError 指非用户控制的,而是操作数据库时发生的错误。例如:连接意外断开、 数据库名未找到、事务处理失败、内存分配错误等等操作数据库是发生的错误。 必须是DatabaseError的子类。
# IntegrityError 完整性相关的错误,例如外键检查失败等。必须是DatabaseError子类。
# InternalError 数据库的内部错误,例如游标(cursor)失效了、事务同步失败等等。 必须是DatabaseError子类。
# ProgrammingError 程序错误,例如数据表(table)没找到或已存在、SQL语句语法错误、 参数数量错误等等。必须是DatabaseError的子类。
# NotSupportedError 不支持错误,指使用了数据库不支持的函数或API等。例如在连接对象上 使用.rollback()函数,然而数据库并不支持事务或者事务已关闭。 必须是DatabaseError的子类。