3.MySQL数据管理

3.MySQL数据管理

3.1,外键

方式一:创建表的时候,增加约束

-- 年级表 (id\年级名称)
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

-- 学生信息表 (学号,姓名,性别,年级,手机,地址,出生日期,邮箱,身份证号)
-- 定义外键key
-- 给这个外键添加约束
CREATE TABLE `student3` (
  `studentno` INT(4) NOT NULL COMMENT '学号',
  `studentname` VARCHAR(20) NOT NULL DEFAULT '匿名' COMMENT '姓名',
  `sex` TINYINT(1) DEFAULT '1' COMMENT '性别',
  `gradeid` INT(10) DEFAULT NULL COMMENT '年级',
  `phoneNum` VARCHAR(50) NOT NULL COMMENT '手机',
  `address` VARCHAR(255) DEFAULT NULL COMMENT '地址',
  `borndate` DATETIME DEFAULT NULL COMMENT '生日',
  `email` VARCHAR(50) DEFAULT NULL COMMENT '邮箱',
  `idCard` VARCHAR(18) DEFAULT NULL COMMENT '身份证号',
  PRIMARY KEY (`studentno`),
  KEY `FK_gradeid` (`gradeid`),
  CONSTRAINT `FK_gradeid` FOREIGN KEY (`gradeid`) REFERENCES `grade` (`gradeid`)
) ENGINE=INNODB DEFAULT CHARSET=utf8

删除有外键关系的表时,先删除引用别人的表,再删除被引用的表

方式二:创建表成功后,添加外键约束

-- 创建表的时候没有外键关系
ALTER TABLE `student3`
ADD CONSTRAINT `FK_gradeid` FOREIGN KEY(`gradeid`) REFERENCES `grade`(`gradeid`);

以上操作都是物理外键!

最佳实践:

数据库就是单纯的表,只用来存数据,只有行(数据)和列(字段)。
多张表的数据,使用外键。(用程序实现)
3.2,DML语言

①添加

-- 插入语句(添加)
insert into 表名 (字段1,字段2,···,字段n) values (值1,值2,···,值n);
-- 有条件的修改字段对应的内容
update `表名` set 字段名=value where 条件;

-- 修改多个属性,逗号隔开
update `表名` set 字段名=value,字段名=value,···,字段名=value where 条件;

操作符 含义 范围 结果(返回布尔类型结果)
= 等于 5=6 false
<> 或 != 不等于 5<>6 true

大于 5>6 false
< 小于 5<6 true
= 大于等于 5>=6 false
<= 小于等于 5<=6 false
between ··· and ··· 在某个范围内 [ 5 , 6 ] ```
or ··· 或 ··· 5 > 6 or 6 > 5 true
and ··· 和 ··· 5 > 6 or 6 > 5 false
注意:

value可以是一个值,也可以是一个变量
如果没有指定筛选的条件,则修改所有行的该字段内容
③删除

-- delete  删除数据
delete from `表名` where 条件;

-- 删除数据(无条件),对自增无影响
delete from `表名` ;

-- truncate  删除数据
truncate `表名`;

#delete 和 truncate 的区别:
#都能删除数据,都不会删除表的结构;delete不影响自增,truncate后自增清零;
小知识:

用delete删除后,重启数据库的不同引擎的现象:

InnoDB 计数器归零。 【存储在内存当中】

MyISAM 自增不影响。 【储存在文件中,不会丢失】

上一篇:mysql 利用frm文件得到表的建表语句


下一篇:Java项目:基于ssm的汽车配件维修系统(计算机毕业设计)