• python进阶(九、mysql:修改表结构、多表结构、数据增删改)


    3.mysql数据库
    3.7 修改表结构 alter(很少使用)
    语法:
    1)修改表名
    ALTER TABLE 表名RENAME 新表名;

    2)增加字段
    ALTER TABLE 表名
    ADD 字段名 数据类型 [完整性约束条件…],
    ADD 字段名 数据类型 [完整性约束条件…];
    此处可以增加排序的约束

    3)删除字段
    ALTER TABLE 表名 DROP 字段名;

    4)修改字段
    ALTER TABLE 表名 MODIFY 字段名 数据类型 [完整性约束条件…]; # 不能改名
    ALTER TABLE 表名 CHANGE 旧字段名 新字段名 旧数据类型 [完整性约束条件…];
    ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型 [完整性约束条件…];

    5)修改字段排列顺序/在增加的时候指定字段位置
    ALTER TABLE 表名 ADD 字段名 数据类型 [完整性约束条件…] FIRST;
    ALTER TABLE 表名 ADD 字段名 数据类型 [完整性约束条件…] AFTER 字段名;
    ALTER TABLE 表名 CHANGE 字段名 旧字段名 新字段名 新数据类型 [完整性约束条件…] FIRST;
    ALTER TABLE 表名 MODIFY 字段名 数据类型 [完整性约束条件…] AFTER 字段名;

    6)去除或添加null或unique
    去掉null约束
    alter table t modify name char(10) null;
    添加null约束
    alter table t modify name char(10) not null;
    去掉unique约束
    alter table t drop index id;
    添加unique约束
    alter table t modify id int unique;
    添加联合唯一
    alter table t add unique index(aa,bb);

    7)去除或添加主键
    如果发现主键设置错了,应该是id是主键,但如今表里已经有好多数据了,不能删除表再重建了,仅仅能在这基础上改动表结构。
    先删除主键
    alter table table_test drop primary key;
    然后再增加主键
    alter table table_test add primary key(id);
    注:在增加主键之前,必须先把反复的id删除掉。

    8)去除或添加外键
    为book表添加外键
    alter table book add constraint fk_id foreign key(press_id) references press(id);
    删除外键
    alter table book drop foreign key fk_id;

    3.8 多表结构的创建与分析
    1)多对一:
    多个学生在同一班

    2)多对多
    两张表双向的多对一,即多对多,需要定义一个这两张表的关系表来专门存放二者的关系。
    1个订单包含多个商品,1个商品属于多个订单。

    3)一对一:
    左表的一条记录唯一对应右表的一条记录,反之亦然。这种情况很简单,就是在左表foreign key右表的基础上,将左表的外键字段设置成unique即可
    学生的学号和身份证号码是一一对应。

    4)作业:

    student_id int,
    course_id int,
    foreign key(student_id) references student(sid),
    foreign key(course_id) references course(cid)

    3.9 数据的增删改
    3.9.1. 新增数据insert into
    1)插入完整数据(顺序插入)
    INSERT INTO 表名 VALUES (值1,值2,值3…值n);

    2)指定字段插入数据
    INSERT INTO 表名(字段1,字段2,字段3…) VALUES (值1,值2,值3…);

    3)插入多条记录
    INSERT INTO 表名 VALUES
    (值1,值2,值3…值n),
    (值1,值2,值3…值n),
    (值1,值2,值3…值n);

    4)插入查询结果(了解)
    INSERT INTO 表1(字段1,字段2,字段3…字段n)
    SELECT字段1,字段2,字段3…字段n FROM 表2
    WHERE …;
    将表2的查询结果写入表1,表1的字段名和表2可以不同,但要一一对应。不写where语句,可以复制表2所有数据的对应字段

    3.9.2. 删除数据delete/truncate
    1)按条件删除
    DELETE FROM 表名 WHERE 条件;

    2)清空表(慎用)
    DELETE FROM 表名; 清空表,但不会清空自增字段的offset(偏移量)值
    show create table 表名; 可以查到offset值

    3)清空表和offset值(慎用)
    truncate table 表名; 清空表和offset值

    3.9.3. 修改数据update
    UPDATE 表名 SET
    字段1=值1,
    字段2=值2
    WHERE 条件;

  • 相关阅读:
    Intellij IDEA 构建Spring Web项目 — 用户登录功能
    Intellij IDEA 快速创建Spring Web 项目
    Intellij Idea 创建Web项目入门(一)
    JavaScript for in的缺陷
    JavaScript判断对象是否含有某个属性
    【一小时入门】webpack 入门指南
    webpack实例与前端性能优化
    JavaScript splice() 方法
    JavaScript拆分字符串并将分割的数据放到数组中
    JavaScript中数组map()方法
  • 原文地址:https://www.cnblogs.com/bdzxh/p/14088689.html
Copyright © 2020-2023  润新知