10分钟教你Python+MySQL数据库操作 (3)

10分钟教你Python+MySQL数据库操作

STEP4:但是,当我们再次执行语句的时候,由于已经创建了"customers"这个表,所以再次执行会报错,这个时候就需要加一个判断,判断这个表是否已经存在于test_s这个数据库中

ProgrammingError: Table \'customers\' alreadyy exists

STEP5****:我们可以用"SHOW TABLES"语句来查看数据表是否已经存在,如果存在就print"table already exists",如果不存在,就print"table does not exist"。

def tableExists(mycursor, name):     stmt = "SHOW TABLES LIKE \'" +name+ "\'"     mycursor.execute(stmt)     return mycursor.fetchone() mycursor = con.cursor() if tableExists(mycursor , \'customers\'):     print("table already exists") else:     print("table not exists")

STEP6:上面的语句只是为了帮助我们判断是否有同名表,当我们要新建一个表时,我们可以在这个判断的基础上,在创建新表前删掉数据库内的同名表,再建新表。删除我们用的是"DROP TABLE",新建表是"CERATE TABLE"

import mysql.connector   #连接数据库   config = {       \'user\' : \'blank\',             \'password\' :\'fuying123888\',       \'host\' : \'127.0.0.1\',        \'port\':\'3306\',                \'database\' : \'test_s\'   }   con = mysql.connector.connect(**config)   # 检查一个表是否存在   def tableExists(mycursor, name):       stmt = "SHOW TABLES LIKE \'"+name+"\'"       mycursor.execute(stmt)       return mycursor.fetchone()      # 删除一个表(无论它是否已经存在)   def dropTable(mycursor, name):       stmt = "DROP TABLE IF EXISTS "+name       mycursor.execute(stmt)   # buffered=True 不设的话,查询结果没有读完会报错   # raise errors.InternalError("Unread result found")   mycursor = con.cursor(buffered=True)   # 删除临时表   tableName = \'customers\'   dropTable(mycursor, tableName)   # 创建一个表        mycursor.execute("CREATE TABLE customers(id INT AUTO_INCREMENT PRIMARY KEY,\                                name VARCHAR(255), address VARCHAR(255), \                                  sex VARCHAR(225), age INT(10), sl INT(10))") 3.4 增、改、删、查 3.4.1 增

在cutomers表中插入数据用的是"INSERT INTO"语句。

除了用一条条用execute( )插入之外,我们还可以用executemany()的方式批量插入,也就是val中包含的是一个元组列表,包含我们想要插入的数据。

需要注意的事是:如果数据表格有更新,那么必须用到commit()语句,否则在workbench是看不到插入的数据的。

# 往表里插入一些记录   sql="INSERT INTO customers(name,address,sex,age,sl) VALUES(%s, %s,%s,%s,%s)" val = ("John", "Highway 21","M",23,5000)   mycursor.execute(sql, val)   val = ("Jenny", "Highway 29","F",30,12500)   mycursor.execute(sql, val)   val=[("Tom","ABC 35","M",35,14000),        ("Tom1","Highway 29","M",28,6700),        ("Lily","Road 11","F",30,8000),        ("Martin","Road 24","M",35,14000),        ("Sally","Fast 56","M",32,15000)]   mycursor.executemany(sql, val)   con.commit()  

执行以上代码后,回到workbench,,我们可以看到最终的结果为:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgjppy.html