建库与建表(示例数据)

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()