SQL 数据维护语言的设计及应用实验



一、实验目的

    SQL语言的数据操纵功能通过DML(数据维护语言)实现。DML包括数据查询和数据更新两种数据操纵语句。其中,数据查询指对数据库中的数据查询、统计、分组、排序等操作;数据更新指数据的插入、更新和删除等数据维护操作。

    本次实验了解 DML语言的INSERTUPDATEDELETE等数据维护语言,掌握 Oracle SQL Developer中用 DML语言的 INSERTUPDATEDELETE对表进行数据插入、更新和删除。


二、实验要求

1、实验前:预习实验内容,学习相关知识。

2、实验中:按照实验内容要求进行实验,实验时注意每种SQL语句的基本命令及各个关键字的含义,做好实验记录。

3、实验后:分析实验结果,总结实验知识,得出结论,按格式写出实验报告。

4、在整个实验过程中,要独立思考、独立按时完成实验任务,不懂的要虚心向教师或同学请教。

5、要求按指定格式书写实验报告,且报告中应反映出对本次实验的总结,下次实验前交实验报告。

 

三、实验的重点与难点

1、重点:

1)用INSERT语句向表中插入数据。

2)用UPDATE语句更新(修改)表中已有数据。

3)用DELETE语句删除表中数据。

2、难点:

UPDATE语句和DELETE语句的WHERE子句。

 

四、仪器设备及用具

硬件:每位同学分配已连接校园网 PC机一台。

软件:数据库服务器已安装 Oracle 10g数据库平台。

 

五、教学过程

(一)实验预习

1)熟悉SQL中的INSERTUPDATEDELETE语句的格式及所用的关键字含义及用法。

2)掌握INSERT语句的两种不同插入数据方式。

3)掌握UPDATE语句和DELETE的一般用法。

(二)实验原理

     SQL Developer中使用INSERT语句向表中插入数据。使用UPDATE语句更新(修改)表中已有数据。使用DELETE语句删除表中数据。

(三)实验内容

    1.启动Oracle SQL Developer,用INSERT语句对表进行单条数据插入操作,

语法格式如下:

Insert Into <表名> [(<属性列1>[,<属性列2>])] Values (<常量1>[,<常量 2>]);其中,INSERT INTO指明要插入的表以及表中的属性列(字段)VALUES指明要插入相应属性列(字段)的值。

例如:  

Insert  into  test  (name,age,score,address)  values  ('吴 思 远',35,590.00,'重庆邮电大学计算机学院'); INSERT语句对表进行批量数据插入操作,语法格式如下:

Insert Into <表名1> [(<属性列1>[,<属性列2>])] Select [(<属性列1>[,<属性列2>])] From <表名2>;INSERT语句的批量插入,把从其他表中查询出来数据插入到当前表中。

例如:

Insert  into  test  (name,age,score,address)  Selectname,age,score,address from test_temp;

2.Oracle SQL Developer中,用UPDATE语句对表中已有的数据进行修改,

语法格式如下:

Update <表名> Set <属性列><表达式>[,<属性列><表达式>][,n][Where <条件>]其中,表名指定要更新的表,SET指定要更新的属性列(字段)及其相应的值,WHERE指定更新条件。

例如:

Update test set age = 37 where name='吴思远' and address='重庆邮电大学计算机科学与技术学院';

3.Oracle SQL Developer中,用DELETE语句对表中已有的数据进行删除,

语法格式如下:

Delete From <表名> [Where <条件>]其中,FROM指定要删除数据的表,WHERE指定要删除数据的条件。

例如:  

Delete From test Where age>=35;

(四)注意事项

1INSERT语句中,无论是哪一种用法,都应该注意要插入的值与要插入的字段相互对应。

2UPDATE语句中,如果没有指定更新条件WHERE子句,则对表中所有记录进行更新。

3DELETE语句中,如果没有指定删除条件WHERE子句,则对表中所有记录进行删除。使用 DELETE语句删除表中数据时,并不能释放被占用的数据块空间,它只是把那些被删除的数据块标记为 Unused,将来还可以使用回退(Rollback操作。

 

六、实验步骤:

执行以下内容:

1.启动SQL Developer登录到scott账户。

2.首先用Create Table语句建立test表,test表定义如下所示:

 

5.UPDATE语句将test表中年龄小于等于20的数据,将成绩更新为原来的成

绩加 5分。

6.UPDATE语句将test表中居住在南福苑所有学生的年龄减少1岁。

7.DELETE语句将test表中年龄大于等于21并且成绩大于等于500的学生数据删除掉。

8.DELETE语句将test表中成绩小于550并且居住在重邮宿舍的学生数据删

除掉。

以上 SQL语句请保存,以备老师检查和写实验报告之用。

七、实验报告要求

   参见实验报告模版

实验步骤代码:

 /*2.首先用 Create Table 语句建立 test 表,test 表定义如下所示:*/
 create table test(
  name varchar2(20),
  age int,
  score number(10,2),
  address varchar2(60)
 ); 
 
 drop table test;
 select * from test;
 
 /*用insert语句对表test插入数据*/
insert into  test(name,age,score,address)
values('赵一','20','580.00','重邮宿舍 12-3-5');
insert into  test(name,age,score,address)
values('钱二','19','540.00','南福苑 5-2-9');
insert into  test(name,age,score,address)
values('孙三','21','555.50','学生新区 21-5-15');
insert into  test(name,age,score,address)
values('李四','22','505.00','重邮宿舍 8-6-22');
insert into  test(name,age,score,address)
values('周五','20','495.50','学生新区 24-4-8');
insert into  test(name,age,score,address)
values('吴六','19','435.00','南福苑 2-5-12');

/*5.用 UPDATE 语句将 test 表中年龄小于等于 20 的数据,将成绩更新为原来的成绩加 5 分。*/
update test set score=score+5 where age<=20;

/*6.用 UPDATE 语句将 test 表中居住在南福苑所有学生的年龄减少 1 岁。 */
update test set age=age-1 where address like '南福苑%';

/*7.用 DELETE 语句将 test 表中年龄大于等于 21 并且成绩大于等于 500 的学生数据删除掉。 */
delete from test where age>=21 and score>=500;

/*8.用 DELETE 语句将 test 表中成绩小于 550 并且居住在重邮宿舍的学生数据删除掉。*/
delete from test where score<500 and address like '重邮宿舍%';

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值