单例模式 reactjs azure debugging button jdbc eking文件 网络营销视频 flink教程视频 git视频 jquery解析json数据 软件测试实战项目 mysql设置自增初始值 kubernetes视频教程 python正则表达式语法 数据结构java版 java编译环境 如何查看java版本 java集合遍历 java原始数据类型 java中instanceof java怎么输出数组 java日期格式 linuxtail命令 真实女友补丁 视频加字幕软件哪个好 spss22安装教程 ps怎么画漫画 联盟练级路线 啊哈c语言 视频下载高手 安卓ui框架 su怎么添加材质 total同级生2下载 凯立德地图下载 标记宏 血岩碎片有什么用 正则表达式语法大全 中国移动光猫设置方法 小程序授权登录
当前位置: 首页 > 学习教程  > 编程语言

mysql建库建表--学生管理系统,Python操作数据库

2020/11/4 14:07:41 文章标签:

核心任务 操作mysql(图形界面) 建库建表熟悉:CURD语句python操作Mysql [重点]连接Mysql建库建表 连接服务器中mysql! 信息: IP: 39.98.39.173 用户名: root 密码: root1.图形界面工具:navicat 2.建库 3.建表 分析 学生表students 学生对象包含属性(id,姓名,性…

核心任务

 操作mysql(图形界面) 建库建表
 熟悉:CURD语句
 python操作Mysql [重点]

连接Mysql建库建表

连接服务器中mysql!
信息: IP: 39.98.39.173 用户名: root 密码: root

1.图形界面工具:navicat
在这里插入图片描述

2.建库
在这里插入图片描述

3.建表

分析

学生表students
学生对象包含属性(id,姓名,性别,年龄,生日,手机号,地址…) #根据业务需求随意扩展!
对应列!

在这里插入图片描述

Python操作数据库

注意:python或任何编程语言php.java…net等,不能直接连接数据库!
需要安装对应的数据库驱动(第三方模块) [比如: 不同品牌手机连接到电脑,需要安装驱动包,才传输数据]
连接不同数据库,需要下载不同的驱动包!

在这里插入图片描述

python操作数据库流程

下载mysql驱动模块(pymysql)

引入模块

建连接(建立和数据库连接)

执行sql语句

  非查询:增加,删,修改
  查询:select

处理结果

释放资源

关连接
关游标!

驱动介绍
python操作mysql驱动/第三方模块: MySQLdb PyMysql

pymysql: 支持2.x 支持3.x
mysqldb: 只支持3.x
#安装模块
pip install pymysql

增删改

SQL

 增加
insert into 表名(列1,列2,....) values(值1,值2,...) 
#删除
delete from 表名 ; # 删除表中所有数据! 
delete from 表名 where 条件;


 修改
update 表名 set 列1=值1,列2=值2,....; #不加条件,修改所有列!~ update 表名 set 列1=值1,列2=值2,....where 条件;



select * from students where sex ='男';
insert into students(name,sex,age,birthday,phone,addr) 
values('刘帅','女',20,now(),'17600950805','山西') ; 
update students set sex='男' where name ='刘帅'
delete from students where name ='刘晒'

在这里插入图片描述

python实现非查询

非查询:步骤一样的!

区别: sql语句不同, 参数个数不同!

def my_execute(sql,params): 
	'''非查询通用功能! sql语句, 参数列表''' 
	# 2.连接
	conn = pymysql.connect(host='39.98.39.173',port=13306,user='root',passwd='root',db='1909C2',c harset='utf8') 
	print(conn) 
	# 3. 获取游标 
	cur = conn.cursor() 
	# 4. 执行
	sql num = cur.execute(sql,params) 
	#print(f'影响行数:{num}') 
	conn.commit() # 必须手动提交到数据库! 
	# 5. 释放资源 
	cur.close() 
	conn.close() 
	# 返回影响行数! 
	return num 
if __name__ == '__main__': 
# 通用 
	sql ='insert into students(name,sex,age,birthday,phone,addr) values(%s,%s,%s,%s,%s,%s)' 
	params=('王五','女',39,'2020-11-03','17600950805','山西') 
	if my_execute(sql,params)>0: 
		print('数据库操作成功!') 
	else:
		print('数据库操作失败!')

参数如何传递

sql ='insert into students(name,sex,age,birthday,phone,addr) 
values(%s,%s,%s,%s,%s,%s)' 
# 格式:一行数据就是一个元组! 
params=('王五','女',39,'2020-11-03','17600950805','山西') 
num = cur.execute(sql,params)

批量执行非查询

sql ='insert into students(name,sex,age,birthday,phone,addr) 
values(%s,%s,%s,%s,%s,%s)' 
# 格式:一行数据就是一个元组! 
params=[('王五1','女',39,'2020-11-03','17600950805','山西'),('王五2','女',39,'2020-11- 03','17600950805','山西')] 
num = cur.executemany(sql,params) # 结果大于1的

核心对象

连接对象: conn= pymysql.connect(host=‘IP地址’,port=13306,user=‘用户名’,passwd=‘密 码’,db=‘数据库名’,charset='utf)

conn.close() #关闭

cur= conn.cursor() 创建游标

游标 Cursor 操作数据库依靠游标

num = cur.execute(sql,参数) 执行非查询,返回影响的行数!

num=cur.executemangy(sql,[(),(),…]) 批量执行非查询,返回影响行数!

cur.close()

cur.fetchone() 抓取1条,返回元组或None

cur.fetchall() 抓取所有

cur.fetchmany(大小) 指定抓取大小

cur.next() 游标下移

查询

import pymysql 
def get_one(): 
	# 1. 连接 
	conn = pymysql.connect(host='39.98.39.173', port=13306, user='root', passwd='root', db='1909C2', charset='utf8') 
	# 2. 打开游标 
	cur = conn.cursor() 
	# 3. 执行 
	sql ='select * from students where sex = %s' 
	cur.execute(sql,('女')) 
	#result = cur.fetchone() # 返回一个元组() 默认找第1个! 
	result = cur.fetchall() # 返回多个元祖 ((),(),(),...) 
	print(result)
	for stu in result: 
		print(f'id:{stu[0]},名字:{stu[1]}') 
	# 4.关闭资源 
	cur.close() 
	conn.close() 
if __name__ == '__main__': 
	get_one()

任务

增加
删改
查所有
根据名字查
在这里插入图片描述


本文链接: http://www.dtmao.cc/news_show_350081.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?