这一章节我们来建立一个简单的user表。
首先,创建create_table.py文件。
上一章已经了解了如何连接数据库,这里我们就在test
数据库下创建一个user
表格,先设定数据库和要创建表格的属性:
DB_NAME = 'test'
TABLES = {}
TABLES['user'] = (
"CREATE TABLE `user` ("
"`id` int(11) NOT NULL AUTO_INCREMENT,"
"`first_name` varchar(14) NOT NULL,"
"`last_name` varchar(16) NOT NULL,"
"PRIMARY KEY (`id`)"
") ENGINE = InnoDB"
)
我们设置了一个user表格,它有三个属性,分别是id
,first_name
,last_name
,并将id
设置为主键。
然后我们创建connector连接对象和连接的cursor,并使用数据库test
:
conn = mysql.connector.connect(user = 'root', password = 'root123')
cursor = conn.cursor()
conn.database = DB_NAME
conn
的创建用到了user
和password
两个参数,在初始化连接对象时当然不仅仅只有这两个参数,其他的参数可以参考官网。
conn.database = DB_NAME
这一行指定使用数据库test
,接下来cursor
的相关操作都是作用于test
数据库。
好了,接下来就要执行SQL语句创建表格了:
for name, ddl in TABLES.iteritems():
try:
print("Creating table {}: ".format(name), end='')
cursor.execute(ddl)
except mysql.connector.Error as err:
if err.errno == errorcode.ER_TABLE_EXISTS_ERROR:
print("already exists.")
else:
print(err.msg)
else:
print("OK")
上面的TABLES是一个字典,所以通过for循环执行字典中的每一组数据,使用cursor
的execute()
函数执行SQL语句,并通过try
和except
来捕捉异常,如果执行过程中有异常,会被输出。
以下是create_table.py中全部的代码,通过python create_table.py命令就可以执行了。
from __future__ import print_function
import mysql.connector
from mysql.connector import errorcode
DB_NAME = 'test'
TABLES = {}
TABLES['user'] = (
"CREATE TABLE `user` ("
"`id` int(11) NOT NULL AUTO_INCREMENT,"
"`first_name` varchar(14) NOT NULL,"
"`last_name` varchar(16) NOT NULL,"
"PRIMARY KEY (`id`)"
") ENGINE = InnoDB"
)
conn = mysql.connector.connect(user = 'root', password = 'root123')
cursor = conn.cursor()
conn.database = DB_NAME
for name, ddl in TABLES.iteritems():
try:
print("Creating table {}: ".format(name), end='')
cursor.execute(ddl)
except mysql.connector.Error as err:
if err.errno == errorcode.ER_TABLE_EXISTS_ERROR:
print("already exists.")
else:
print(err.msg)
else:
print("OK")
cursor.close()
conn.close()