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`
MySQL数据管理的更多相关文章
- mysql学习【第2篇】:MySQL数据管理
狂神声明 : 文章均为自己的学习笔记 , 转载一定注明出处 ; 编辑不易 , 防君子不防小人~共勉 ! mysql学习[第2篇]:MySQL数据管理 外键管理 外键概念 如果公共关键字在一个关系中是主 ...
- Mysql:MySQL数据管理
Mysql:MySQL数据管理 外键管理 外键概念 如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键.由此可见,外键表示了两个关系之间的相关联系.以另一个关系的外键作主关 ...
- MySQL学习03(MySQL数据管理)
MySQL数据管理 外键 外键概念 如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键.由此可见,外键表示了两个关系之间的相关联系.以另一个关系的外键作主关键字的表被称为主 ...
- (三)MySQL数据管理
3.1 外键(了解即可) 方式一:在创建表的时候,增加约束(麻烦,比较复杂) CREATE TABLE IF NOT EXISTS `student`( `id` INT(4) NOT NULL AU ...
- MySQL(3)— 数据管理
三.MySQL数据管理(DML) 3-1.外键(了解即可) ALTER TABLE `aa表名` ADD CONSTRAINT `约束名` FOREIGN KEY (字段名) REFERENCES ` ...
- MySQL入门看这一篇就够了
MySQL JavaEE:企业级Java开发 web阶段 分为1.前端(页面,展示数据库中的数据) 2.后台(连接点:链接数据库JDBC.Mybatis,链接前端(控制视图跳转,给前端传递数据)) 3 ...
- Mysql数据库值的添加、修改、删除及清空
3.MySQL数据管理 第一种方式:不太建议,看起来复杂些 -- 学生表的 gradeid 字段,要去引用 年级表的 gradeid -- 定义外键key -- 给这个外键添加约束,(执行引用),RE ...
- mysql语法使用详细代码版
mysql 1.什么是数据库 数据库:(DB,DataBase) 作用:用来存储数据,管理数据.Txt,Excel,word是在数据库出现之前存储数据的. 概念:数据仓库,安装在操作系统上的软件. 数 ...
- 狂神说mysql笔记
1.mysql 基本操作 Windows-->Mysql5.7打开 输入用户名和密码 查看数据库 :show databases:查询所有数据库,记住一定要加分号结尾 这里必须全部为 英文空格 ...
随机推荐
- Oracle 导入数据库dmp文件
场景:windows2008 R2系统 ,往新安装的oracle11g数据库导入同事给的dmp文件到指定的新建的用户. 1.创建表空间 在导入dmp文件之前,先打开查看dmp文件的表空间名称(tabl ...
- 入门大数据---Flume 简介及基本使用
一.Flume简介 Apache Flume 是一个分布式,高可用的数据收集系统.它可以从不同的数据源收集数据,经过聚合后发送到存储系统中,通常用于日志数据的收集.Flume 分为 NG 和 OG ( ...
- Format中的转换说明符
%a(%A) 浮点数.十六进制数字和p-(P-)记数法(C99)%c 单个字符%d 有符号十进制整数%f 浮点数(包括float和doulbe)%e(%E) 指数形式的浮点数[e-(E-)记数法]%g ...
- Flutter 中那么多组件,难道要都学一遍?
在 Flutter 中一切皆是 组件,仅仅 Widget 的子类和间接子类就有 350 多个,整理的 Flutter组件继承关系图 可以帮助大家更好的理解学习 Flutter,回归正题,如此多的组件到 ...
- 《算法笔记》6.6小节 问题 A: 任务调度
这道题我一开始看到的时候,想到的是拓补排序,可是这么菜又这么懒的我怎么可能用呢,既然出现在优先队列里面,那么久一定和他有关了 可是并没有使用优先队列 思路: 对于这道题,我们肯定是对他们定义优先级,然 ...
- Orleans 框架3.0 官方文档中文版系列一 —— 概述
关于这个翻译文档的一些说明: 之前逛博客园的时候,看见有个园友在自己的博客上介绍Orleans. 觉得Orleans 是个好东西. 当时心想:如果后面有业务需要的时候可以用用Orleans框架. 当真 ...
- (私人收藏)Vue.js手册及教程
(私人收藏)Vue.js手册及教程 https://pan.baidu.com/s/1XG1XdbbdBQm7cyhQKUIrRQ5lrt Vue.js手册及教程 Vue.js 教程 Vue.js 安 ...
- web网页多语言的实现方案_前端实现多语言切换
实现的效果 需要在web中实现多语言的切换,当用户语言切换完成后下次重新打开网页,也是上次设置的语言进行显示. 资源网站搜索大全https://55wd.com 实现步骤 1.在用户点击切换语言后,把 ...
- CSS技术让高度自适应减少很多不必要的检测
高度自适应第一种情况 1.高度不去设置,或者高度设置auto 内容撑开父元素的高度.2.内容撑开父元素的高度 -> 最小高度的设置 min-height3.浮动元素添加高度自适应 -> 添 ...
- web页面弹出遮罩层,通过js或css禁止蒙层底部页面跟随滚动
场景概述 弹窗是一种常见的交互方式,而蒙层是弹窗必不可少的元素,用于隔断页面与弹窗区块,暂时阻断页面的交互.但是,在蒙层元素中滑动的时候,滑到内容的尽头时,再继续滑动,蒙层底部的页面会开始滚动,显然这 ...