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);
注意:

字段和字段之间用英文逗号隔开
可以同时插入多条数据,values后面的值用逗号隔开
②修改

– 有条件的修改字段对应的内容
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 自增不影响。 【储存在文件中,不会丢失】

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值