python 中如何创建MySQL数据库

2025-10-25 13:50:11

1、在使用“pymysql”模块前需要了解创建MySQL数据库的有关命令语句;

创建数据库的命令是:

CREATE DATABASES [ IF NOT EXISTS] 库名 [DEFAULT] CHARACTER SET [=] 字符集编码;

注:中括号[ ] 内的字可以省略,库名后的编码格式,默认是utf8mb4, 这在初始化文件(my.ini)中已经设置。如果不想改变,库名后面的完全可以省去。

所以可简单的使用:CREATE DATABASES 库名;

python 中如何创建MySQL数据库

2、获取错误信息:

① 如果创建新库的名字已经存在就会报错 error,可用 show errors 命令来获取错误的内容,如错误代码信息等,对使用python很有用。

② 其它不符合规范命名会报错,都可以用 show error 命令来获取错误信息。

python 中如何创建MySQL数据库

1、导入pymysql 模块;

定义一个展示数据库的函数。

import pymysql

def show_databases()

 

   conn = pymysql.connect(host='localhost',

 

                          user='root',

 

                          password='000')

 

   cursor = conn.cursor()

 

   cursor.execute('show databases;') 

 

   result = cursor.fetchall()

 

   cursor.close()

 

   conn.close() 

 

   print(result)

 

show_databases()

这里仅是为了说明过程,所以此函数没有设置返回值,而是直接打印。

如下图例,运行函数,输出了当前所有的数据库。

python 中如何创建MySQL数据库

2、输出的数据库中有4个是MySQL创建的数据库,可以把它过滤掉,打印root用户创建的数据库,方法如下:

① 定义一个全局列表,将MySQL创建的数据库装进去,

system_db = ['information_schema''mysql', 'performance_schema', 'sys']

②在show_databases() 函数内使用for循环及判断语句将其过滤掉。

for i in range(len(result)):

 

   if result[i][0] not in system_db:

 

       print(f'数据库名称: {result[i][0]}')

这样就仅打印了root用户建立的数据库;

python 中如何创建MySQL数据库

3、定义一个函数create_database()用于创建数据库。

 

① 思路是:使用函数的递归,因为用input()函数输入数据库名称时有可能手误,或语法错误,或重复,都会报错,需要重新运行函数输入,为了避免错误,可使用try语句排除异常,然后在函数内部调用自身,进行下次输入,所以就用到递归函数的方法。

②递归的出口是,当输入0 是退出递归。

def create_database():

 

   print('-' * 50)

 

   print('当前数据库:')

 

   show_databases()

 

   print('-' * 50)

 

   name = input('输入要创建的数据库名称,或输入 0 退出!:')

 

   if name == '0':

 

       show_databases()

 

       return

 

   print('创建数据库')

 

   create_database()

如下图,测试递归无误。

python 中如何创建MySQL数据库

4、把创建数据库的代码插入其中:

conn = pymysql.connect(host='localhost', user='root', password='000')

 

cursor = conn.cursor()

 

cursor.execute('create database  %s' % name)

运行函数,输入新数据库,成功建立,输入0退出。

python 中如何创建MySQL数据库

5、然而这并不完美,因为输入的数据库名称重复,或语法错误,就会报错。

例如:下图当输入重复的数据库名称时,抛出了错误代码为1007的异常。

当输入的数据库名称不符合语法规范时,抛出了错误代码为1064的异常。

错误的类型可以查看说明,和测试出来。

那么自然就想到了使用try语句来解决这个问题。

python 中如何创建MySQL数据库

python 中如何创建MySQL数据库

6、用try语句解决错误。

try:

 

   cursor.execute('create database  %s' % name)

 

except Exception:

 

   cursor.execute('show errors')

 

   error = cursor.fetchone()

 

   print(error)

 

   create_database()

 

else:

 

   print('新数据库【%s】创建成功!' % name)

 

   create_database()

如果捕获到异常,可以调用自身,继续输入。直到输入0退出。

如果输入正确,执行else语句块,直到输入0退出。

python 中如何创建MySQL数据库

7、也可以根据获取的错误信息,进行判断用中文显示。

因为输入数据库名称错误,无非是重复(代码1007),或语法错误(代码1064),所以可以用简短的语句来打印。

改写如下:

try:

 

   cursor.execute('create database  %s' % name)

 

except Exception:

 

   cursor.execute('show errors')

 

   error = cursor.fetchone()

 

   if error[1] == 1007:

 

       print('此数据库已经存在!')

 

       create_database()

 

   elif error[1] == 1064:

 

       print('命名数据库语法错误!')

 

       create_database()

 

   else:

 

       print('输入异常!')

 

       create_database()

 

else:

 

   print('新数据库【%s】创建成功!' % name)

 

   create_database()

python 中如何创建MySQL数据库

1、为了测试效果,将这段代码编译为可执行文件。

① 确保安装了pyinstaller 模块(使用:pip install pyinstaller,非常easy);

②为了不和别的文件混淆,可以将这个文件新建一个文件夹放进去。

③打开cmd终端。cd到这个文件所在的文件夹。输入pyinstaller 文件名.py

例如:我将这文件重命名为ac.py。粘贴到E盘下的ac空文件夹中,进行编译。

编译的命令是 pyinstaller ac.py

python 中如何创建MySQL数据库

2、编译完成生成如下文件:

python 中如何创建MySQL数据库

3、在E:\ac\dist\ac目录下。运行 ac.exe文件。

python 中如何创建MySQL数据库

4、启动脚本,输入名称,完成新建数据库。全部步骤完成。

如果能加上更的功能,如删除书库,表的增删改查等功能那就更方便了。

python 中如何创建MySQL数据库

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢