第一关 MySQL数据库连接
任务描述
Python
可以通过MySQLdb
库连接MySQL
数据库,但Python3
之后不再支持MySQLdb
库,需要通过pymysql
库连接。pymysql
通过connect
方法连接数据库,如:
conn = pymysql.connect(host='localhost', user='root',passwd='123456',charset='utf8')
相关知识
connect
方法的参数含义如下:
host:数据库主机名,默认是用本地主机
user:数据库登陆名,默认是当前用户
passwd:数据库登陆的密码,默认为空
charset:连接时的编码格式,要求与数据库的编码一致
在安装MySQL
数据库环境时,会选择默认编码格式,建议选择utf8
格式;若登录名或密码错误时,返回如下错误:
pymysql.err.OperationalError: (1045, "Access denied for user 'a'@'localhost' (using password: YES)")
编程要求
本关的编程任务是在Begin-End
区域补全src/step1/connect.py
文件的代码内容,实现如下功能:
- 连接平台中的数据库
平台中已配置好MySQL
数据库,用户名默认为‘root’,密码为‘123123’
本文涉及的src/step1/connect.py
文件的代码框架如下:
# coding=utf-8
# 请在下面添加连接数据库的代码,完成相应功能
###### Begin ######
####### End #######
print('连接成功')
测试说明
本关的测试文件是 src/step1/connect.py
,测试过程如下:1.
读者将 src/step1/connect.py
中的代码补充完毕,然后点击评测,平台自动编译并运行;2.
若输出‘连接成功’,则表示测试通过,否则测试失败。
测试输入:
预期输出:连接成功
# coding=utf-8
import pymysql
def connect():
# 请在下面添加连接数据库的代码,完成相应功能
# ###### Begin ######
conn = pymysql.connect(host='localhost',user='root',passwd='123123',charset='utf8')
####### End #######
####### 请不要修改以下代码 #######
return conn.get_host_info()
第二关 数据库与数据表创建
任务描述
在MySQL
中创建属于自己的数据库,根据需求在库中创建相应的表,将数据存入表中,方便对数据的管理与查询。如汽车零售商将汽车信息存入数据库中方便管理,可创建数据库:
cursor.execute('create database carinfo')
与汽车相关的信息可能包括汽车购入信息和汽车出售信息,可以分别在carinfo
库中建立对应的表:
cursor.execute('create table ininfo (indata data,inNum int, brand varchar(255))')
cursor.execute('create table outinfo (outdata data,outNum int, brand varchar(255))')
本关任务是,创建enroll
数据库,并在enroll
创建nudt
表。
相关知识
Python
提供操作MySQL
数据库的一系列语句。本关的目的是让读者学会如何利用Python
语句创建数据库和数据表。
获取游标
前面已经介绍过如何获取数据库连接对象,但是不能在这个对象上直接对数据库进行操作, 还需要获取对应的操作游标才能进行数据库的操作:
cursor = conn.cursor()
游标是一种数据访问对象,可用于创建数据库和数据表,也可用于在表中迭代一组行或者向表中插入新行。
确定使用的数据库
MySQL
中可能同时存在多个数据库,为了对指定的数据库进行操作,可使用:
dbName = 你的数据库名称
conn.select_db(dbName)
当然,如果在创建数据库连接对象时指定了连接的数据库时,就不需要再指定数据库对象:
dbName = 你的数据库名称
conn = pymysql.connect(host='localhost', user='root',passwd='123456',charset='utf8',db=dbName)
数据表的创建
MySQL<