第2关:python数据库编程之创建数据表

发布时间:2024年01月17日

任务描述

本关任务:使用 pymysql 在名为 mydb 的数据库下,创建一张用户表(users

相关知识

如何使用?pymysql?连接指定数据库并且创建数据表?

以下是一个样例代码:

  1. #!/usr/bin/python
  2. # -*- coding: UTF-8 -*-
  3. import pymysql
  4. # 创建数据库连接
  5. conn = pymysql.connect(
  6. # mysql服务器主机地址
  7. host='127.0.0.1',
  8. # mysql服务器连接端口
  9. port=3306,
  10. # 用户名
  11. user='user',
  12. # 数据库名
  13. db='db_name',
  14. # 用户密码
  15. passwd='password',
  16. # 编码格式
  17. charset='utf8'
  18. )
  19. # 使用cursor()函数创建一个游标对象
  20. cursor = conn.cursor()
  21. # 使用execute()函数执行一条sql语句,创建一个名为`area`的数据表,表中包含area_id以及area_name两个属性,并且指定数据库引擎为MyISAM
  22. cursor.execute('''CREATE TABLE area
  23. (
  24. area_id INT(16) AUTO_INCREMENT
  25. PRIMARY KEY,
  26. area_name VARCHAR(64) NOT NULL
  27. )
  28. ENGINE = MyISAM''')
  29. # 关闭游标
  30. cursor.close()
  31. # 关闭数据库连接
  32. conn.close()

    补充:上例中指定了area_id的数据类型为 int(16),并且设置为自增主键(只有整形数据才能使用 AUTO_INCREMENT 来设置自增标识),area_name使用 varchar(64) 来储存相关信息,并且使用 not null 代表插入此数据表中的数据不能为空(null)并不是不能为""(空字符串),ENGINE 代表数据库引擎,在 MySQL 中常用的数据库引擎有如下几种:

    InnoDB:支持事务处理,支持外键,支持崩溃修复能力和并发控制。如果需要对事务的完整性要求比较高(比如银行),要求实现并发控制(比如售票),那选择 InnoDB 有很大的优势。如果需要频繁的更新、删除操作的数据库,也可以选择InnoDB,因为支持事务的提交(commit)和回滚(rollback)。

    MyISAM:插入数据快,空间和内存使用比较低。如果表主要是用于插入新记录和读出记录,那么选择 MyISAM 能实现处理高效率。如果应用的完整性、并发性要求比较低,也可以使用。

    MEMORY:所有的数据都在内存中,数据的处理速度快,但是安全性不高。如果需要很快的读写速度,对数据的安全性要求较低,可以选择 MEMOEY。它对表的大小有要求,不能建立太大的表。所以,这类数据库只使用在相对较小的数据库表。

编程要求

根据提示,在右侧编辑器补充代码,完成以下需求:

在名为 mydb 的数据库创建一张用户表(users),字段如下:

字段名类型描述
idint(11)主键ID
usernamevarchar(255)用户名
sexvarchar(255)性别
ageint(11)年龄

?代码:?

import pymysql

"""
    需求:在名为 mydb 的数据库下,创建一个用户表(users),字段如下:
    id int(11) PRIMARY KEY
    username varchar(255) 
    sex varchar(255)
    age int(11)
"""
if __name__ == '__main__':
    # **********begin********** #
    
    # 获取连接
    conn = pymysql.connect(
        host='127.0.0.1',
        port=3306,
        user='root',
        db='mydb',
        passwd='123123',
        charset='utf8'
    )
    # 获取光标
    cursor = conn.cursor()
    cursor.execute('''
       CREATE TABLE users
    (
    id int(11)  PRIMARY KEY,
    username VARCHAR(255),
    sex VARCHAR(255),
    age int(11))
    ''')

    # 执行SQL
    

    # 关闭资源
    cursor.close()
    conn.close()
    
    # **********end********** #

文章来源:https://blog.csdn.net/m0_55900042/article/details/135626790
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。