4 数据库基础二

自关联
  • 自己与自己连接
外键(foreign key)
  • show engines 查看数据库引擎
  • myisam引擎 不支持外键
  • default-storage-engine = innodb 设置默认引擎为innodb
    (通过修改MySQL文件中的my文件可以使得不用每次都设置默认引擎,需要重启MySQL)
  • 外键目的:多表关联的时候保持数据的完整性一致性
  • 外键所在的是从表,主键所在的是主表
  • 创建方式
    • 创建表时 constraint fk_cid foreign key(cid) references 主表名(主键);
    • 修改表字段时添加主键 alter table tbname add fk_cid foreign key(cid) references 主表名(主键);
  • 删除外键
    • aftet table tbname drop foreign key fk_cid(外键约束名);
    • cascade 级联删除
    • no action 不做任何操作
    • restrict 默认互相约束
MySQL与python交互
  • 准备数据
    • 把goods表分组后的数据插入到别的表
    • 步骤
      • 创建表goods_cates
      • 给分类表添加分类名称 name
      • 给商品表类别字段cate_name进行分组
      • 查询出来的结果插入到分类表的分类名称中
        (insert into good_cates (name) select cate_name from good_cates group by cate_name; )
      • 将goods表里的cate_name 换成对应的id
      • update good g inner join goods_cates c on g.cate_name=c.name set g.cate_name= c.id;
        (通过表连接+数据修改一起使用)
  • python充当客户端的角色
  • 连接步骤
    • 1.导入库
    • 2.conn=pymysql.connect(host=“127.0.0.1”,port=3306,user=“root”,passwd=“数据库密码”,db=“mysql”,charset=“utf8”)
      (连接数据库)
    • 3.cs=conn.cursor()
      (获取游标对象)
    • 4.游标对象执行sql语句cs.excute(sql语句) 有返回值且为受影响的行数
      • cs.fecthone()
        (读取一行)
      • cs.fetchmany(s)
        (读取多行,s是size,默认为1,返回为元组)
      • cs.fatchall()
        (读取全部,按当前游标位置开始读取)
    • 5.cs.close()
      (关闭游标 )
    • 6.coon.close()
      (关闭连接)
    • 7.关闭连接后 依然可以获取数据是因为有缓存 在游标对象里
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值