python和mysql的交互

数据库设计
1.范式的概念–范式NF 通过研究和对使用问题的总结,对设计数据库提出一些规范
第一范式 不能再拆分 1NF
第二范式 在第一范式基础上另外包含两部分内容 必须有主键 没有包含在主键中的列完全依赖于主键不仅仅依赖于主键的一部分 主键可以由多个字段组成
第三范式 在第二范式的基础上 必须直接依赖于主键 不能传递依赖
–ER模型 实体和关系之间的模型
E表示实体 R表示关系 多对一的情况就应该在多的里面添加一个字段

2.京东_数据库_实例
2. 1 创建一个“京东”数据库
create database jing_dong charset=utf8;
2.2.–使用京东数据库
use jing_dong
--把筛选出来的东西放在那个表里边
--insert into goods_cates (name) select cate_name from goods group by cate_name;
--把一个表拆分为多个表 有时候一个表 修改数据要修改很多地方 但是多个表就不用了
update goods as g inner join goods_cates as c on g.cate_name=c.name set g.cate_name=c.id;
--将一个表的一列和另一个表的一列关联起来
alter table goods add foreign key (cate_id) references goods_cates(id);
-还可以一边插入一边创建数据表
create table goods_brands(id int unsigned primary key auto_increment,name varchar(40) not null) select brand_name as name from goods group by brand_name;

实际工作中很少使用外键约束,极大降低表更新的效率
--取消外键
show create table goods;
--显示这样子的就是约束 把他们删掉
CONSTRAINT goods_ibfk_1 FOREIGN KEY (cate_id) REFERENCES goods_cates (id),
CONSTRAINT goods_ibfk_2 FOREIGN KEY (brand_id) REFERENCES goods_brand (id)
alter table goods drop foreign key goods_ibfk_1;

3.使用python运行数据库
1.导入pymysql
from pymysql import connect
2.创建一个conn对象
conn = connect(host=‘localhost’,port=3306,user=‘root’,password=‘123456’,database=‘jing_dong’,charset=‘utf8’);
#获取cursor对象 游标
cursor = conn.cursor()
3.执行查询 执行命令 获取数据 处理数据
cursor.execute(“select * from goods;”) #获取很多数据
cursor.fetchmany() #取出很多
cursor.fetchone()#取出一个
cursor.fetchall()#取出所有
4.关闭cursor
cursor.close()
5.关闭connection
conn.close()
增加、删除、修改之后
最后要提交
conn.commit()
提交之前后悔了
conn.rollback()

发布了8 篇原创文章 · 获赞 0 · 访问量 45

猜你喜欢

转载自blog.csdn.net/I__INIT/article/details/105113959
今日推荐