欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

4 数据库基础二

程序员文章站 2022-03-28 08:47:16
自关联自己与自己连接外键(foreign key)show engines 查看数据库引擎myisam引擎 不支持外键default-storage-engine = innodb 设置默认引擎为innodb(通过修改MySQL文件中的my文件可以使得不用每次都设置默认引擎,需要重启MySQL)外键目的:多表关联的时候保持数据的完整性一致性外键所在的是从表,主键所在的是主表创建方式创建表时 constraint fk_cid foreign key cid references...

自关联

  • 自己与自己连接

外键(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.关闭连接后 依然可以获取数据是因为有缓存 在游标对象里

本文地址:https://blog.csdn.net/weixin_45934564/article/details/107587912