如何用 python 来添加/删除MySQL数据表的列
1、①创建新工程文件;
②在工程文件目录中创建两个py文件,t1.py 和 t2.py。
③导入模块:
----pymysql 模块,在python中操作MySQL语句。
----prettytable 模块,用于制表,并能在命令提示窗中展示;
----colorama 模块,用于改变字体的输出颜色;
---- 将 t1 作为主运行模块,并将 t2 导入 t1。

2、在 t2.py 中:
①定义改变 input 输入字体的颜色的函数,change_input_color(i_str)
这是因为我试过,在它的函数内改变参数字体的颜色或格式化,当编译后,在命令提示窗显示出现乱码。i_str 参数,是字符串,可写说明。
②定义errs(e)函数,改变try 语句捕获异常时输出字体的颜色。 以上两个函数仅为了改变输出字体颜色,可以省略。
③定义一个类 SqlOperater,并定义构造函数,如图所示。

3、在 t1.py 中:
① 实例一个 SqlOperater 对象;此时,用户启动连接,在构造方法中,connect,和 cursor 连接。
② 使用while 语句,进入程序循环,并在输入为0 时,退出关闭connect,和curse,退出循环;
注:如果不用while 循环,当编译后运行脚本,命令提示窗不会暂停等你操作,而是闪一下就退出了。

4、在 SqlOperater 类内,定义方法:make_table_1 ; make_table_2,
利用 prettyTable 模块来显的表格,
①第一格表格仅显示一列(不包括编号列)。编号主要是为了输入编号,直接调用对应的表格内容;
②第二个方法用来显示多列数据的表格。
③参数是由 cursor.fetchall() 生成的列表。

1、在 SqlOperater 类内,定义一个方法 show_tables_other(self, func=None);
用来显示数据库,数据表的表格,并获取数据表的列表;

2、在 t1.py 内的while 循环中添加判断语句:
调用show_tables_other(self, func=None)

3、定义一个为数据表添加列的方法:add_del_field()
① 它是 show_tables_other(self, func=None) 方法的延续。如图;
② 在方法内定义一个内部的方法 alter_field(tbl),
----参数tbl是show_tables_other 方法获取的列表;
③ 使用三个 while 循环嵌套,是为了能每次动作后,刷新操作,继续此动作,并能在判断为 0 时,向上返回。
----最外层的循环,获取数据表名称;
----第二层,用来展示 数据表表格,和数据表结构表格;
----最内层,用来添加或删除列。
④最后调用show_tables_other( alter_field) ,参数是内部方法的名称。

4、在t1.py 中调用 add_del_field();测试添加成功。
如图,添加前,和添加 字段 addr text 后的展示。


1、在命令提示窗内,进入t1.py所在的目录,用 pyinstaller t1.py编译,具体步骤看前面的经验;
执行 t1.exe 如下图;

2、添加单列:
( MySQL的命令是:ALTER TABLE 表名 add 列)
① 输入编号,直到进入你选择的数据库,数据表。选择添加。
② 例如:输入 星期一 text;
③ 默认是添加到列的最右边。

3、添加多列:
( MySQL的命令是:ALTER TABLE 表名 add (列,列......))
用括号括起来,输入多项,用逗号隔开;例如 (星期二 text, 星期三 text,星期四,text)
注意:所有的符号,空格用英文输入。

4、指定列位置添加,使用 first 和 after :
( MySQL的命令是:ALTER TABLE 表名 add 列,after/first 列)
例如: 在name列后添加星期日:星期日 text after name
将 passwor text first 添加到最前面。

5、删除单行操作:( MySQL的命令是:ALTER TABLE 表名 DROP 列)
例如:在删除功能后输入 星期一

6、一次删除多列:( MySQL的命令是:ALTER TABLE 表名 DROP 列 DROP 列......)
此脚本删除的第一列前不 加 DROP, 后面都要加;并用逗号隔开。
例如 : 星期日,DROP 星期二,DROP 星期三
