• python mysql创建表


    表设计

    表:student

    字段名 类型 是否为空 主键 描述
    StdID int 学生ID
    StdName varchar(100) 学生姓名
    Gender enum('M','F') 性别
    Age int 年龄

    表:Course

    字段名 类型 是否为空 主键 描述
    CouID int 课程ID
    CName varchar(100) 课程名称
    TID int 老师ID

    表:Score

    字段名 类型 是否为空 主键 描述
    SID int 分数ID
    StdDI int 学生ID
    CouID int 课程ID
    Grade int 分数

    表:teacher

    字段名 类型 是否为空 主键 描述
    TID int 老师ID
    Tname varchar(100) 老师姓名

    创建表

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    # @Time   : 2017/11/22 23:04
    # @Author : lijunjiang
    # @File   : Creater-tables.py
    import MySQLdb
    
    # sql 语句
    
    #创建student表
    Student = '''
        create table Student(
            StdID int primary key not null,
            StdName varchar(100) not null,
            Gender enum('M','F') not null,
            Age int 
        )
    '''
    
    # 创建 Course 表
    Course = '''
        create table Course(
            CouID int primary key not null,
            CName varchar(100) not null,
            TID int not null
        )
    '''
    
    # 创建 Score 表
    Score= '''
        create table Score(
            SID int primary key not null,
            StdID int not null,
            CouID int not null,
            Grade int not null
        )
    '''
    
    # 创建Teacher 表
    Teacher='''
        create table Teacher(
            TID int primary key not null,
            TName varchar(100) not null
        )
    '''
     # 创建TMP 表
    
    TMP='''
        set @i :=0;
        create table TMP as select (@i := @i + 1) as id from information_schema.tables limit 10;
    '''
    
    def connect_mysql():
        db_config = dict(host="11.11.11.11", port=3306, db="python", charset="utf8", user="python", passwd="python")
        try:
            cnx = MySQLdb.connect(**db_config)
        except Exception as err:
            raise err
        return cnx
    
    if __name__ == "__main__":
        sql = "create table test(id int not null);"
        cnx = connect_mysql()  # 连接mysql
        cus = cnx.cursor()     # 创建一个游标对象    try:
        try:
            cus.execute(Student)
            cus.execute(Course)
            cus.execute(Score)
            cus.execute(Teacher)
            cus.execute(TMP)
            cus.close()
            cnx.commit()
        except Exception as err:
            cnx.rollback()
            raise err
        finally:
            cnx.close()
    

    查看

    mysql> use python;
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A
    
    Database changed
    mysql> show tables;
    +------------------+
    | Tables_in_python |
    +------------------+
    | Course           |
    | Score            |
    | Student          |
    | TMP              |
    | Teacher          |
    +------------------+
    5 rows in set (0.00 sec)
    
    mysql> select * from Student;
    Empty set (0.00 sec)
    
    mysql> show columns from Student;
    +---------+---------------+------+-----+---------+-------+
    | Field   | Type          | Null | Key | Default | Extra |
    +---------+---------------+------+-----+---------+-------+
    | StdID   | int(11)       | NO   | PRI | NULL    |       |
    | StdName | varchar(100)  | NO   |     | NULL    |       |
    | Gender  | enum('M','F') | NO   |     | NULL    |       |
    | Age     | int(11)       | YES  |     | NULL    |       |
    +---------+---------------+------+-----+---------+-------+
    4 rows in set (0.00 sec)
    
    mysql> show columns from Course;
    +-------+--------------+------+-----+---------+-------+
    | Field | Type         | Null | Key | Default | Extra |
    +-------+--------------+------+-----+---------+-------+
    | CouID | int(11)      | NO   | PRI | NULL    |       |
    | CName | varchar(100) | NO   |     | NULL    |       |
    | TID   | int(11)      | NO   |     | NULL    |       |
    +-------+--------------+------+-----+---------+-------+
    3 rows in set (0.00 sec)
    
    mysql> show columns from Score;
    +-------+---------+------+-----+---------+-------+
    | Field | Type    | Null | Key | Default | Extra |
    +-------+---------+------+-----+---------+-------+
    | SID   | int(11) | NO   | PRI | NULL    |       |
    | StdID | int(11) | NO   |     | NULL    |       |
    | CouID | int(11) | NO   |     | NULL    |       |
    | Grade | int(11) | NO   |     | NULL    |       |
    +-------+---------+------+-----+---------+-------+
    4 rows in set (0.00 sec)
    
    mysql> show columns from Teacher;
    +-------+--------------+------+-----+---------+-------+
    | Field | Type         | Null | Key | Default | Extra |
    +-------+--------------+------+-----+---------+-------+
    | TID   | int(11)      | NO   | PRI | NULL    |       |
    | TName | varchar(100) | NO   |     | NULL    |       |
    +-------+--------------+------+-----+---------+-------+
    2 rows in set (0.00 sec)
    
    mysql> show columns from TMP;
    +-------+------------+------+-----+---------+-------+
    | Field | Type       | Null | Key | Default | Extra |
    +-------+------------+------+-----+---------+-------+
    | id    | bigint(21) | YES  |     | NULL    |       |
    +-------+------------+------+-----+---------+-------+
    1 row in set (0.00 sec)
    
    mysql> select * from TMP;
    +------+
    | id   |
    +------+
    |    1 |
    |    2 |
    |    3 |
    |    4 |
    |    5 |
    |    6 |
    |    7 |
    |    8 |
    |    9 |
    |   10 |
    +------+
    10 rows in set (0.00 sec)
    
    mysql> 
    
    
  • 相关阅读:
    复习列表
    20201009 day30 复习2:滑动窗口
    20201009 day30 复习1:扫描线
    20201007day29 模拟(九)
    20201006day28 模拟(八)
    20201005day27 模拟(七)
    20201004 day26 模拟(六)
    20201003day25 模拟(五)
    路由重分布(一)
    RIP路由协议(一)
  • 原文地址:https://www.cnblogs.com/lijunjiang2015/p/7881791.html
Copyright © 2020-2023  润新知