加入收藏 | 设为首页 | 会员中心 | 我要投稿 威海站长网 (https://www.0631zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL数据库表的数据插入、修改、删除操作实验

发布时间:2022-10-22 17:02:15 所属栏目:MySql教程 来源:互联网
导读: 实验2:MySQL数据库表的数据插入、修改、删除操作实验 一、实验目的
1.掌握MySQL数据库表的数据插入、修改、删除操作SQL语法格式
2.掌握数据表的数据的录入、增加和删除的方法
二、验证性

实验2:MySQL数据库表的数据插入、修改、删除操作实验 一、实验目的

1.掌握MySQL数据库表的数据插入、修改、删除操作SQL语法格式

2.掌握数据表的数据的录入、增加和删除的方法

二、验证性实验

学校教师管理数据库中的teacherInfo表,其表的定义如下表所示,请完成如下操作:

在这里插入图片描述

create database sttafinfo;
 use sttafinfo;
CREATE TABLE  teacherInfo (
num INT(10)NOT NULL  UNIQUE  ,
Name VARCHAR(20)NOT NULL,
Sex VARCHAR(4)NOT NULL,
Birthday DATETIME,
Address VARCHAR(50)
)

在这里插入图片描述

剩下的上截图:

(1)向teacherInfo表中插入记录。写出INSERT语句的代码如下:

(1)向teacherInfo表中插入记录。写出INSERT语句的代码如下:

INSERT INTO teacherInfo VALUES(1001,'张龙','男','1984-11-08','北京市昌平区');
INSERT INTO teacherInfo VALUES(1002,'李梅','女','1970-01-21','北京市海淀区');
INSERT INTO teacherInfo VALUES(1003,'王一丰','男','1976-10-30','北京市昌平区');
INSERT INTO teacherInfo VALUES(1004,'赵六','男','1980-06-05','北京市顺义区');

在这里插入图片描述

(2)更新教工号为1003的记录,将生日(birthday)改为“1982-11-08”。

UPDATE语句的代码如下:

UPDATE teacherInfo SET birthday='1982-11-08' WHERE num=1003;

在这里插入图片描述

(3)将性别(sex)为“男”的记录的家庭住址(address)都变为“北京市朝阳区”。UPDATE语句的代码如下:

UPDATE teacherInfo SET address='北京市朝阳区' WHERE sex='男';

在这里插入图片描述

(4)删除教工号(num)为1002的记录删除。DELETE语句的代码如下:

DELETE FROM teacherInfo WHERE num=1002;

在这里插入图片描述

某超市的食品管理的数据库的Food表,Food表的定义如表所示,请完成插入数据、更新数据和删除数据。

create database foodinfo;
 use foodinfo;
CREATE TABLE  Food (
foodid INT(4) NOT NULL  UNIQUE   PRIMARY KEY AUTO_INCREMENT,
Name VARCHAR(20)NOT NULL,
Company VARCHAR(20) NOT NULL,
Price FLOAT NOT NULL,
Product_time YEAR,
Validity_time INT(4),
address VARCHAR(50)
);

在这里插入图片描述

三、设计性试验

某超市的食品管理的数据库的Food表,Food表的定义如表所示,请完成插入数据、更新数据和删除数据。

在这里插入图片描述

按照下列要求进行操作:

(1)采用3种方式,将表的记录插入到Food表中。

方法一:不指定具体的字段,插入数据: ‘QQ饼干’,‘QQ饼干厂’,2.5,‘2008’,3,‘北京’。

INSERT INTO Food VALUES(foodid,'QQ饼干','QQ饼干厂',2.5,'2008',3,'北京');

在这里插入图片描述

方法二:依次指定food表的字段,插入数据: ‘MN牛奶’,‘MN牛奶厂’,3.5,‘2009’,1,‘河北’)。

INSERT INTO Food VALUES(1,'MN牛奶','MN牛奶厂',3.5,'2009',1,'河北');

在这里插入图片描述

方法三:同时插入多条记录,插入数据:

‘EE果冻’,‘EE果冻厂’,1.5,‘2007’,2,‘北京’,

‘FF咖啡’,‘FF咖啡厂’,20,‘2002’,5,‘天津’,

(‘GG奶糖’,‘GG奶糖’,14,‘2003’,3,‘广东’;

INSERT INTO Food(foodid,Name,Company,Price,Product_time,Validity_time,address) 
VALUES
(3,'EE果冻','EE果冻厂',1.5,'2007',2,'北京'),
(4,'FF咖啡','FF咖啡厂',20,'2002',5,'天津'),
(5,'GG奶糖','GG奶糖厂',14,'2003',3,'广东');

在这里插入图片描述

分别写出相应语句。

(2)将“MN牛奶厂”的厂址(address)改为“内蒙古”,并且将价格改为3.2。

UPDATE Food SET address='内蒙古',Price=3.2 WHERE Company='MN牛奶厂';

在这里插入图片描述

(3)将厂址在北京的公司的保质期(validity_time)都改为5年。

UPDATE Food SET Validity_time=5 WHERE address='北京';

在这里插入图片描述

(4)删除过期食品的记录。若当前时间-生产年份(produce_time)>保质期(validity_time),则视为过期食品。

DELETE FROM Food WHERE Validity_time<(2012-Product_time);

在这里插入图片描述

(5)删除厂址为“北京”的食品的记录。

DELETE FROM Food WHERE address='北京';

在这里插入图片描述

四、观察与思考

1.对于删除的数据,如何实现”逻辑删除“(即数据库中的数据不删除,给用户的感觉是删除了)??

答:逻辑删除就是对要被删除的数据打上一个删除标记,通常使用一个is_deleted字段标示行记录是不是被删除(或者使用一个status字段代表所谓的“删除”状态),在逻辑上是数据是被删除的,但数据本身是依然存在的,逻辑删除恢复的话只要修改is_deleted等类似的状态标示字段就可以了,但是表的数据量肯定会比物理删除增加了,并且查询时经常要考虑到is_deleted字段,对索引都会有影响。

2.DROP命令和DELETE命令的本质区别是什么?

答:

1)、触发条件不同

DELETE命令是数据库操作语言(DML),这个操作会放到rollbacksegement中,在事务提交后生效,执行时触发相应的trigger。

DROP命令是数据库定义语言(DDL)数据库插入操作,操作立即生效,原数据不放到rollbacksegment中,不能回滚,操作不触发trigger。

2)、用法不同

DELETE命令只删除内容、释放空间但不删除定义,而DROP命令即可以对行数据进行删除,也可以对整表数据进行删除。

DROP命令是删除内容和定义,并释放空间。执行DROP命令,将使此表的结构一起删除。

3)、执行速度不同

DROP命令的执行速度大于DELETE命令。

DELETE命令的执行速度小于DROP命令。

3.利用INSERT、UPDATE和DELETE命令可以同时对多个表进行操作吗?

答:不可以,不然怎么会有多表连接操作。

(编辑:威海站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!