数据库原理与应用 第 17 章 · 上机一
课程第 17 章上机一 先撞一次装上再来四个参数参数错三次第一句 SQL照课件敲连续练习 版式
第 17 章 使用 Python 连接 MySQL 数据库 · 上机一

装上驱动,连上去,跑通第一句

课件第 27 到 44 页那几件事:装驱动、connect 的四个参数、第一个能跑的例子。
已完成 0 / 6
本 次 上 机 题 目
  1. 01没装驱动,import 就导不进来
  2. 02pip install mysql-connector-python
  3. 03connect() 连上 teaching 库
  4. 041045、1049、2003 各撞一次
  5. 05照课件查一次数据库版本
  6. 06Import 大写,当场语法错
  7. 从头到尾把五步走一遍
01
第 17 章 · 上机一

没装驱动,import 就导不进来

驱动是第三方包,Python 自己不带。

Microsoft Windows [版本 10.0.18363.1256]
(c) 2019 Microsoft Corporation。保留所有权利。
终端停在 Windows 的命令提示符上。敲 python 进 >>>,敲 exit() 退回来,敲 mysql -u root -p123456 teaching 还能用 SQL 验一遍程序刚才干了什么。
mysql>

重 点

ModuleNotFoundError 说的是包没装,不是你名字拼错了。

知道更多

报的是 No module named 'mysql',缺的是最外面那一层。

想一想

这个错该去哪儿解决,代码里还是命令行?

02
第 17 章 · 上机一

pip install mysql-connector-python

装完 pip list 里就多一行,再进解释器就导得进来了。

Microsoft Windows [版本 10.0.18363.1256]
(c) 2019 Microsoft Corporation。保留所有权利。
终端停在 Windows 的命令提示符上。敲 python 进 >>>,敲 exit() 退回来,敲 mysql -u root -p123456 teaching 还能用 SQL 验一遍程序刚才干了什么。
mysql>

重 点

包名带横杠,导入时写点:装 mysql-connector-python,导 mysql.connector。

记牢它一装一导

  1. 装的名字带横杠
  2. 导的名字带点

知道更多

PyCharm 里是 File→Settings→Python Interpreter 点加号,做的是同一件事。

03
第 17 章 · 上机一

connect() 连上 teaching 库

这一句成功了屏幕上什么也不显示,别以为没跑。

Microsoft Windows [版本 10.0.18363.1256]
(c) 2019 Microsoft Corporation。保留所有权利。
终端停在 Windows 的命令提示符上。敲 python 进 >>>,敲 exit() 退回来,敲 mysql -u root -p123456 teaching 还能用 SQL 验一遍程序刚才干了什么。
mysql>

重 点

host、user、passwd、database 四个必给,port 默认 3306 可以不写。

想一想

为什么连上了却什么都不打印?

04
第 17 章 · 上机一

1045、1049、2003 各撞一次

三种错分别卡在口令、库名和网络三个不同的地方。

Microsoft Windows [版本 10.0.18363.1256]
(c) 2019 Microsoft Corporation。保留所有权利。
终端停在 Windows 的命令提示符上。敲 python 进 >>>,敲 exit() 退回来,敲 mysql -u root -p123456 teaching 还能用 SQL 验一遍程序刚才干了什么。
mysql>

分清楚三个错号

错误号卡在哪一关
1045口令或用户
1049库名
2003根本没连上

重 点

2003 是网络层的错,这时候还轮不到验口令。

知道更多

1045 末尾那句 using password: YES 说明口令送过去了,只是不对。

05
第 17 章 · 上机一

照课件查一次数据库版本

游标发出去,fetchone 取回来,取到的是一个元组。

Microsoft Windows [版本 10.0.18363.1256]
(c) 2019 Microsoft Corporation。保留所有权利。
终端停在 Windows 的命令提示符上。敲 python 进 >>>,敲 exit() 退回来,敲 mysql -u root -p123456 teaching 还能用 SQL 验一遍程序刚才干了什么。
mysql>

重 点

execute 只负责发出去,结果还在服务器那边,fetch 才取回来。

打个比方

execute 是点菜,fetch 是端菜,两件事不能省一件。

知道更多

%s 后面接的是元组 data,一个元素的元组正好填一个 %s。

06
第 17 章 · 上机一

Import 大写,当场语法错

课件第 48 页把 import 印成了 Import。

Microsoft Windows [版本 10.0.18363.1256]
(c) 2019 Microsoft Corporation。保留所有权利。
终端停在 Windows 的命令提示符上。敲 python 进 >>>,敲 exit() 退回来,敲 mysql -u root -p123456 teaching 还能用 SQL 验一遍程序刚才干了什么。
mysql>

重 点

Python 的关键字全是小写,大写一个字母就不是关键字了。

知道更多

报的是 SyntaxError,还没开始跑就被拦下了,跟数据库没关系。

想一想

这一行错在编译期还是运行期?

第 17 章 · 上机一

从头到尾把五步走一遍

自己数一遍:导、连、游、执、关,一步不漏。

Microsoft Windows [版本 10.0.18363.1256]
(c) 2019 Microsoft Corporation。保留所有权利。
终端停在 Windows 的命令提示符上。敲 python 进 >>>,敲 exit() 退回来,敲 mysql -u root -p123456 teaching 还能用 SQL 验一遍程序刚才干了什么。
mysql>

重 点

每跑一遍都重新连一条新的,前面关没关都不影响,能反复跑。

记牢它五步

  1. 导、连、游、执、关

想一想

COUNT(*) 只有一行一列,为什么还要写 [0]?

保山学院·人工智能教研室·曹鼎鼎