目录
3. 将第二门课的名字更新为 java基础,课时为60 ,班级编号是2
5. 将 S1004,课程编号为3 的成绩更新为60,考试时间更新为 2015-10-10
根据上一篇MySQL的建表练习中的练习三,所建的四张表(grade表,student表,subjects表,result表),我们添加测试数据完成已下操作:
1. 将地址是西安市的更新为西安科技二路
2. 将S1001的email修改为空的字符串
3. 将第二门课的名字更新为 java基础,课时为60 ,班级编号是2
4. 将S1001,课程编号为 2 的成绩提高5分
5. 将 S1004,课程编号为3 的成绩更新为60,考试时间更新为 2015-10-10
6. 经核实 S1004 课程编号为2 的缺考
7. 将计算机网络课程删除掉
上一篇文章链接:
根据题目我们需要对数据表进行插入、修改、删除操作,那我我们来看看这些操作的语法。
插入单条数据:
- -- 方法1
- insert into 表名 values(value1, value2, ..., valuen);
- -- 方法2
- insert into 表名(col1, col2, ..., coln) values(value1, value2, ..., valuen);
注意:若不指定字段名列表,值列表与插入的表中的列一一对 应【个数对应,类型对应】;若指定字段名列表,值列表与列举出的列保持一致。插入的记录不能违反约束。
插入多条数据:
insert into 表名 values(valuelist1_val1, valuelist1_val2), (valuelist2_val1, valuelist2_val2);
update 表名 set 字段名1=value1, 字段名2=value2 [where 条件];
注意:[]括起来的部分可以指定也可不指定。若不指定,则更新全部;指定则只更新符合条件的数据。
DELETE FROM 表名 [WHERE 条件];
注意:删除同上,若不指定则删除所有行记录;指定则只删除指定行数据。
- use myschool;
-
- -- 添加测试数据
- -- 1.grade表
- select * from grade; -- 查看表中数据
- desc grade; -- 查看表结构
- insert into grade values(2, '二年级'), (3, '三年级');
- -- 2.student表
- select * from student;
- desc student;
- insert into student values('s1002', '123456', '张三', '男', 1, '18791112222', '西安市', '2000-01-02', 'zs@163.com'),
- ('s1003', '123456', '李四', '女', 2, '13511112222', '西安市', '2000-01-02', 'ls@163.com'),
- ('s1004', '123456', '王麻子', '男', 2, '18912342222', '西安市', '2000-01-02', 'wmz@163.com');
-
- select * from subjects;
- desc subjects;
- insert into subjects values(2, 'JavaWeb后端开发', 50, 1);
- insert into subjects values(3, '计算机网络', 50, 2);
-
- select * from result;
- desc result;
- insert into result values(2, 's1002', 1, 65, '2022-10-20'),
- (3, 's1001', 2, 90, '2022-10-21'),
- (4, 's1002', 2, 80, '2022-10-21'),
- (5, 's1003', 3, 92, '2022-10-22'),
- (6, 's1004', 3, 0, '2022-10-22');
各个表测试数据如下
grade表:

student表:

subjects表:

result表:

update student set Address='西安科技二路' where Address='西安市';

update student set Email='' where StudentNo='s1001';

update subjects set SubjectName='java基础', ClassHour=60, GradeId=2 where SubjectId=2;

update result set StudentResult=StudentResult+5 where StudentNo='s1001' and SubjectId=2;

update result set StudentResult=60, ExamDate='2015-10-10' where StudentNo='s1004' and SubjectId=3;

这里测试数据我们少考虑了这一条,我们先插入一条数据。
- insert into result values(7, 's1004', 2, 0, '2022-10-20');
- update result set StudentResult=null where StudentNo='s1004' and SubjectId=2;

这里因为要删除的数据是一个父表 Subjects 的一行记录,其还有子表 Result。直接删除会报如下错误:Cannot delete or update a parent row
所以应该先删除子表中关于计算机网络课程的记录,才能删除父表中记录。
- delete from result where SubjectId=(SELECT SubjectId FROM subjects WHERE SubjectName='计算机网络');
- delete from subjects where SubjectName='计算机网络';
