建库与建表(示例数据)
57.4 建库与建表(示例数据)
后续 Insert/Select 示例都基于 students 表,含姓名、分数、班级等字段。
ENGINE=InnoDB 支持事务;AUTO_INCREMENT 自增主键。
建库、建表、插入示例数据
import pymysql
conn = pymysql.connect(host='127.0.0.1', user='root', password='root', charset='utf8mb4')
try:
with conn.cursor() as cur:
cur.execute('CREATE DATABASE IF NOT EXISTS py_demo DEFAULT CHARSET utf8mb4')
cur.execute('USE py_demo')
cur.execute('''
CREATE TABLE IF NOT EXISTS students (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
score INT DEFAULT 0,
class_name VARCHAR(20),
email VARCHAR(100),
remark TEXT
) ENGINE=InnoDB
''')
cur.execute('DELETE FROM students') # 清空便于重复练习
cur.executemany(
'INSERT INTO students(name,score,class_name,email,remark) VALUES (%s,%s,%s,%s,%s)',
[
('小明', 95, '一班', 'xm@test.com', '班长'),
('小红', 88, '一班', 'xh@test.com', None),
('小刚', 72, '二班', None, '需补考'),
('小丽', 91, '二班', 'xl@test.com', '数学课代表'),
('小华', 60, '三班', 'xh2@test.com', '刚及格'),
]
)
conn.commit()
print('students 表及 5 条示例数据就绪')
finally:
conn.close()