MySql数据管理

本文详细介绍了MySQL中如何通过创建表时添加约束和后期添加外键来实现表间关联,以及DML语言的基本操作,包括INSERT、UPDATE和DELETE。讨论了DELETE与TRUNCATE的区别,并强调了它们对自增列的影响。
摘要由CSDN通过智能技术生成

MySql数据管理

1、外键(了解)

方式一:在创建表的时候,增加约束(复杂,麻烦)

CREATE TABLE IF NOT EXISTS `grade` (
		`gradeid` INT(10) NOT NULL AUTO_INCREMENT COMMENT '年级id',
		`gradename` VARCHAR(50) NOT NULL COMMENT '年级名称',
		 PRIMARY KEY(`gradeid`)
)ENGINE=INNODB DEFAULT CHARSET=utf8


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 '密码',
		`birthday` DATETIME DEFAULT NULL COMMENT '出生日期',
		`gradeid` INT(10) NOT 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 IF NOT EXISTS `grade` (
		`gradeid` INT(10) NOT NULL AUTO_INCREMENT COMMENT '年级id',
		`gradename` VARCHAR(50) NOT NULL COMMENT '年级名称',
		 PRIMARY KEY(`gradeid`)
)ENGINE=INNODB DEFAULT CHARSET=utf8

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 '密码',
		`birthday` DATETIME DEFAULT NULL COMMENT '出生日期',
		`gradeid` INT(10) NOT NULL COMMENT '学生的年级',
		 PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8

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

2、DML语言(记住)

数据操作语言:INSERT UPDATE DELETE

CREATE TABLE IF NOT EXISTS `grade` (
		`gradeid` INT(10) NOT NULL AUTO_INCREMENT COMMENT '年级id',
		`gradename` VARCHAR(50) NOT NULL COMMENT '年级名称',
		 PRIMARY KEY(`gradeid`)
)ENGINE=INNODB DEFAULT CHARSET=utf8

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 '密码',
		`birthday` DATETIME DEFAULT NULL COMMENT '出生日期',
		`gradeid` INT(10) NOT NULL COMMENT '学生的年级',
		 PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8

添加

--插入值
INSERT INTO `grade`(`gradename`) VALUE('大四')
INSERT INTO `student`(`name`,`pwd`,`gradeid`) VALUES('张三','aaaaaa',3)
INSERT INTO `student` VALUES(4,'李四','aaaaaa','2000-01-02',3)

修改

--修改值
UPDATE `student` SET `name`='光头强', `pwd`='123456' WHERE id=1;
UPDATE `student` SET `birthday`=CURRENT_TIME WHERE `name`='李四' AND `gradeid`=3;sql

删除

--删除表
DELETE FROM `student`
--删除指定数据
DELETE FROM `student` WHERE id=1;
--清空表
TRUNCATE `student`
delete与truncate的区别

相同点:都能删除数据,不会删除表的结构

不同点:truncate 重新设置自增列,计数器会归零;不会影响事务

​ delete 不会影响自增,计数器继续迭加

delete删除之后,重启数据库

InnoDB:自增列会从1开始(存在内存中,断电即失)

MyISAM:继续从上一个自增量开始(存在文件中,不会丢失)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值