MySQL-Python 学习(三)-创建表格

这一章节我们来建立一个简单的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表格,它有三个属性,分别是idfirst_namelast_name,并将id设置为主键。

然后我们创建connector连接对象和连接的cursor,并使用数据库test

conn = mysql.connector.connect(user = 'root', password = 'root123')
cursor = conn.cursor()
conn.database = DB_NAME

conn的创建用到了userpassword两个参数,在初始化连接对象时当然不仅仅只有这两个参数,其他的参数可以参考官网

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循环执行字典中的每一组数据,使用cursorexecute()函数执行SQL语句,并通过tryexcept来捕捉异常,如果执行过程中有异常,会被输出。


以下是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()

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值