mysql数据管理

3、Mysql数据管理

3.1 外键(了解即可)

删除有外键关系的表时,必须要先删除引用别人的表(从表),再删除被引用的表(主表)

3.2 DML语言(全部记住)

  • 数据库的意思:数据管理,数据存储

DML语言:数据操作语言

  • insert
INSERT INTO `student`(`name`,`pwd`,`sex`)
 VALUES 
 ('张三','12222','男'), ('李四','1sss2','女')

语法:-- insert into 表名([字段1,字段2,字段3])values(‘值1’,‘值2’,‘值3’)
注意事项:
- 字段与字段之间与英文逗号隔开
- 字段是可以省略的,但是后面的值必须要一一对应的
- 可以同时插入多条数据,values后面的值放在可以放在多个()中,每个()用逗号隔开(),(),(),。。。

  • update
-- 修改
-- update 修改谁(条件) set 原来的值= 新值
-- 不指定条件的情况下,会改动所有的表
UPDATE `student` SET `name`='狂神'  WHERE `id` = 1;

语法: update 表名 set 【coloum_name = value(此处可以写很多条件,用逗号隔开)】 where 【条件】
注意:
- coloum_name 是数据的列,尽量带上``
-条件,是筛选的条件,如果没有指定,会修改所有的列
- value,是一个具体的值,也可以是个变量
- 多个设置的属性之间用逗号隔开

UPDATE `student` SET `name`='liutao' ,
`birthdat` =CURRENT_TIME
WHERE `id` = 10;
  • delete
-- 删除数据(避免这样写,会全部删除)
DELETE FROM `student`
-- 删除指定数据
DELETE FROM `student` WHERE `id` =1
-- TRUNCATE命令
-- 作用:完全清空一个数据库表,表的结构和索引约束不会变
TRUNCATE TABLE `student`
  • DELETE和 TRUNCATE区别
    • 不同:
      • TRUNCATE 重新设置自增列,计数器归零
      • TRUNCATE 不会影响事务
DELETE FROM  `test` -- 不会影响自增 
TRUNCATE `test`  -- 重置自增

image.png
image.png

了解即可 : Delete删除的问题,重启数据库,现象
innodb: 自增列从1开始(存在内存中的,断电即失)
myisam: 继续从上一个自增量开始的(存在文件中的,不会丢失)

  • 方式一:创建子表同时创建外键
CREATE TABLE `student` (
  `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 	`student`
-- ALTER TABLE 表 ADD CONSTRAINT 约束名  FOREIGN KEY (作为外键的列) REFERENCES 那个表 (哪个字段);	
ADD  CONSTRAINT `FK_gradeid` FOREIGN KEY (`gradeid`)

以上的操作都是物理外键,数据库级别的外键,不建议,避免数据库过多造成困扰。

最佳实践

  • 数据库就是单纯的外键,只能用来存数据,只有行(数据)和列(字段)
  • 程序实现外键
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值