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`
 ​

MySQL数据管理的更多相关文章

  1. mysql学习【第2篇】:MySQL数据管理

    狂神声明 : 文章均为自己的学习笔记 , 转载一定注明出处 ; 编辑不易 , 防君子不防小人~共勉 ! mysql学习[第2篇]:MySQL数据管理 外键管理 外键概念 如果公共关键字在一个关系中是主 ...

  2. Mysql:MySQL数据管理

    Mysql:MySQL数据管理 外键管理 外键概念 如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键.由此可见,外键表示了两个关系之间的相关联系.以另一个关系的外键作主关 ...

  3. MySQL学习03(MySQL数据管理)

    MySQL数据管理 外键 外键概念 如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键.由此可见,外键表示了两个关系之间的相关联系.以另一个关系的外键作主关键字的表被称为主 ...

  4. (三)MySQL数据管理

    3.1 外键(了解即可) 方式一:在创建表的时候,增加约束(麻烦,比较复杂) CREATE TABLE IF NOT EXISTS `student`( `id` INT(4) NOT NULL AU ...

  5. MySQL(3)— 数据管理

    三.MySQL数据管理(DML) 3-1.外键(了解即可) ALTER TABLE `aa表名` ADD CONSTRAINT `约束名` FOREIGN KEY (字段名) REFERENCES ` ...

  6. MySQL入门看这一篇就够了

    MySQL JavaEE:企业级Java开发 web阶段 分为1.前端(页面,展示数据库中的数据) 2.后台(连接点:链接数据库JDBC.Mybatis,链接前端(控制视图跳转,给前端传递数据)) 3 ...

  7. Mysql数据库值的添加、修改、删除及清空

    3.MySQL数据管理 第一种方式:不太建议,看起来复杂些 -- 学生表的 gradeid 字段,要去引用 年级表的 gradeid -- 定义外键key -- 给这个外键添加约束,(执行引用),RE ...

  8. mysql语法使用详细代码版

    mysql 1.什么是数据库 数据库:(DB,DataBase) 作用:用来存储数据,管理数据.Txt,Excel,word是在数据库出现之前存储数据的. 概念:数据仓库,安装在操作系统上的软件. 数 ...

  9. 狂神说mysql笔记

    1.mysql 基本操作 Windows-->Mysql5.7打开 输入用户名和密码 查看数据库 :show databases:查询所有数据库,记住一定要加分号结尾 这里必须全部为 英文空格 ...

随机推荐

  1. 在Ubuntu上实现人脸识别登录

    安装Howdy: howdy项目地址 sudo add-apt-repository ppa:boltgolt/howdy sudo apt update sudo apt install howdy ...

  2. win10 64位 MySQL 8.0 下载与安装

    免安装版(超级棒的教程): 安装只需 Download .zip压缩文件 卸载只需 Delete 解压文件即可 https://blog.csdn.net/hzxOnlineOk/article/de ...

  3. Netty 源码解析(八): 回到 Channel 的 register 操作

    原创申明:本文由公众号[猿灯塔]原创,转载请说明出处标注 今天是猿灯塔“365篇原创计划”第八篇. 接下来的时间灯塔君持续更新Netty系列一共九篇 Netty 源码解析(一): 开始 Netty 源 ...

  4. 每日一题 - 剑指 Offer 33. 二叉搜索树的后序遍历序列

    题目信息 时间: 2019-06-26 题目链接:Leetcode tag:分治算法 递归 难易程度:中等 题目描述: 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果.如果是则返回 tr ...

  5. 从Linux源码看Socket(TCP)Client端的Connect

    从Linux源码看Socket(TCP)Client端的Connect 前言 笔者一直觉得如果能知道从应用到框架再到操作系统的每一处代码,是一件Exciting的事情. 今天笔者就来从Linux源码的 ...

  6. 解决只能通过localhost访问Elasticsearch的问题

    解决只能通过localhost访问Elasticsearch的问题   在默认情况下Elasticsearch是无法通过外网访问的 需要绑定地址,原因如下:   具体方法为: vim /opt/es/ ...

  7. 【Windows10】如何使用Segoe MDL2 Assets图标

    众所周知,在Windows 10中,微软引入了汉堡菜单,方便Android和ios的开发者移植程序,而不需要单独为Windows设计一套UI.但有人可能发现在symbol icon里根本找不到所谓的汉 ...

  8. BUUCTF-BJD(更新V1.0)

    CTF-Day1 (PS:第一次写博客,就是想记录自己的一一步一步) Misc: 问卷调查 | SOLVED |题最简单的misc-y1ng | SOLVED |Real_EasyBaBa | SOL ...

  9. 理解ASCII,Unicode和UTF-8关系

    前言:之前一直就好奇这个问题,但是一直没解决,今天我总算明白了,感谢大佬们的科普 转自:https://blog.csdn.net/Deft_MKJing/article/details/794604 ...

  10. [SpringBoot]SpringBoot中使用redis事务

    本文基于SpringBoot 2.X 事务在关系型数据库的开发中经常用到,其实非关系型数据库,比如redis也有对事务的支持,本文主要探讨在SpringBoot中如何使用redis事务. 事务的相关介 ...