zoukankan      html  css  js  c++  java
  • MySQL数据管理

    3.MySQL数据管理

    3.1外键

    方式一:

     create table `grade`(
      `gradeid` int(10) not null auto_increment comment '年纪id',
      `gradename` VARCHAR(50) not null comment '年纪名称',
      PRIMARY key(`gradeid`)
     )ENGINE=innodb default CHARSET=utf8
     ​
     /*
     学生表的gradeid要去引用年级表的gradeid
     定义外键foreign key
     给这个外键添加约束(执行引用) references
     */
     ​
     create table if not exists `student`(
      `id` int(4) not null AUTO_INCREMENT COMMENT '学号',
      `name` VARCHAR(30) not null DEFAULT '匿名' COMMENT '姓名',
      `pwd` varchar(20) not null default '123456' COMMENT '密码',
      `sex` VARCHAR(2) not null DEFAULT '男' COMMENT '性别',
      `birthday` TIMESTAMP DEFAULT null COMMENT '出生日期',
      `gradeid` int(10) not null COMMENT '年级id',
      `address` VARCHAR(100) DEFAULT null COMMENT '地址',
      `email` VARCHAR(50) DEFAULT null COMMENT '邮箱',
      PRIMARY KEY(`id`),
      key `FK_gradeid`(`gradeid`),
      CONSTRAINT `FK_gradeid` FOREIGN key (`gradeid`) REFERENCES `grade`(`gradeid`)
     )ENGINE=INNODB DEFAULT CHARSET=utf8

    删除有外键关系的表的时候,必须先删除从表,后删除主表

    方式二

     create table `grade`(
      `gradeid` int(10) not null auto_increment comment '年纪id',
      `gradename` VARCHAR(50) not null comment '年纪名称',
      PRIMARY key(`gradeid`)
     )ENGINE=innodb default CHARSET=utf8
     ​
     /*
     学生表的gradeid要去引用年级表的gradeid
     定义外键foreign key
     给这个外键添加约束(执行引用) references
     */
     ​
     create table if not exists `student`(
      `id` int(4) not null AUTO_INCREMENT COMMENT '学号',
      `name` VARCHAR(30) not null DEFAULT '匿名' COMMENT '姓名',
      `pwd` varchar(20) not null default '123456' COMMENT '密码',
      `sex` VARCHAR(2) not null DEFAULT '男' COMMENT '性别',
      `birthday` TIMESTAMP DEFAULT null COMMENT '出生日期',
      `gradeid` int(10) not null COMMENT '年级id',
      `address` VARCHAR(100) DEFAULT null COMMENT '地址',
      `email` VARCHAR(50) DEFAULT null COMMENT '邮箱',
      PRIMARY KEY(`id`)
     )ENGINE=INNODB DEFAULT CHARSET=utf8
     ​
     --创建表的时候没有外键关系
     alter table `student`
     add CONSTRAINT `FK_gradeid` FOREIGN key(`gradeid`) REFERENCES `grade`(`gradeid`);
     ​
     /*
     alter table 表名 add constraint 约束名 foreign key(作为外键的列)references 那个表(哪个字段)
     */

     

    3.2DML语言(数据库操作语言)

    *Insert

    *update

    *delete

    3.2.1添加(insert)

     --插入语句
     --insert into 表名([字段1][字段1][字段1]...[字段n])values(`值1`),(`值2`),(`值3`)...(`值n`)
     insert into `grade`(`gradename`)VALUES('大三') --数据和字段一一对应

    注意事项:

    1、所有的符号为英文符号

    2、字段可以省略,但是后面插入的值要一一对应

    3、可以同时插入多条数据

    3.2.2修改(update)

     /*
     update 修改条件 set原来的值 = 新值
     修改多个属性,逗号隔开
     */
     --修改语句
     --update 表名 set 属性=替换属性值 where (条件)主键 = 主键值;
     update `student` set `name`='Rose' where id = 1;
     ​

    条件:

    where 子句 运算符 id = 某个值,大于某个值,或者在某个区间范围

    操作符含义范围结果
    = 等于 5=6 false
    != 不等于 5!=6 true
    > 大于 5>6 false
    < 小于 5<6 true
    >= 大于等于 5>=5 true
    <= 小于等于 6<=5 false
    between...and... 在什么什么之间 between 2 and 5 在2-5之间查询值
    AND && 5>1 and 1>2 false
    OR || 5>1 or 1>2 true

    注意点:

    -条件,如果没有指定则会修改所有的列

    -value,是一个具体的值,也可以是一个变量

    -英文符号注意

    3.2.3删除(delete)

     /*
     删除数据
     delete from 表名 where 主键 = 主键值;
     */
     delete from `student` where id = 1;

    TRUNCATE命令:

    作用:完全清空一个数据库表,表结构和索引约束不变

     --清空student表
     truncate `student`;

    相同点:都能删除数据,都不会删除表结构

    不同点:

    -TRUNCATE 重新设置 自增列 计数器回归零

    -TRUNCATE 不会影响事务

     ​
     --TRUNCATE he delete 的区别
     create table `test`(
      `id` int(4) not null auto_increment,
      `coll` varchar(10) not null,
      primary key(`id`)
     )ENGINE = INNODB DEFAULT CHARSET = utf8
     ​
     insert into `test`(`coll`)values('1'),('2'),('3')
     ​
     delete from `test`
     ​
     truncate table `test`
     ​
  • 相关阅读:
    Python3 面向对象小练习
    Python3 面向对象进阶1
    Python3 类的继承小练习
    Python3 类的继承
    Python3 数据结构之词频统计(英文)
    Python3 类与对象之王者荣耀对战小游戏
    Python3 类与对象
    SQL优化单表案例
    SQL性能分析
    索引简介
  • 原文地址:https://www.cnblogs.com/joey-413/p/13289859.html
Copyright © 2011-2022 走看看