MySQL数据库表的数据插⼊、修改、删除操作实验实验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年。
mysql下载add produce
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命令可以同时对多个表进⾏操作吗?
答:不可以,不然怎么会有多表连接操作。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。