
上一篇【数据库原理 实验报告2】创建和管理数据表目录一索引的创建和撤销二.数据更新实验心得SQL语言使用数据定义语言DATA DEFINITION LANGUAGE简称DDL实现其数据定义功能可对数据库、数据库用户、基本表、视图、索引进行定义和撤消。数据更新语句INSERT/ DELETE/ UPDATE对表数据进行操作。【实验目的】掌握SQL Server数据定义语言的使用能独立按要求进行数据库、基本表、进行定义和撤消。掌握数据更新语言INSERT/ DELETE/ UPDATE的使用能独立按要求对数据库进行指定的数据更新操作。一索引的创建和撤销1.1按教材81页例题3.6给S表创建索引截图代码CREATE INDEX SC_INDEX ON S(S#)1.2按教材81页例题3.7给S表撤销索引截图代码DROP INDEX SC_INDEX ON S二.数据更新2.1 使用实验一中创建的数据库验证教材P98第3章第4节例3.25---3.27。3.25:截图代码INSERT INTO S(S#,SNAME,AGE,SEX) VALUES(S36,GU,20,M) INSERT INTO SC(S#,C#) VALUES(S5,C8) INSERT INTO SC VALUES(S4,C4,85), (S3,C6,90), (S7,C2,70) INSERT INTO SC(S#,AVG_SCORE) SELECT S#,AVG(SCORE) FROM SC WHERE S# IN (SELECT S# FROM S WHERE SEXM) GROUP BY S# HAVING AVG(SCORE)80; INSERT INTO SC(S#,C#) RABLE SC4;3.26截图代码DELETE FROM SC WHERE C# IN(SELECT C# FROM C WHERE CNAMEMATHS) DELETE FROM SC WHERE C#C4 AND SCORE(SELECT AVG(SCORE) FROM SC WHERE C#C4);3.27截图代码UPDATE C SET CNAMEDB WHERE C#C5; UPDATE SC SET SCORESCORE*1.1 WHERE S# IN(SELECT S# FROM S WHERE SEXF); UPDATE SC SET SCORESCORE*1.05 WHERE C#C4 AND SCORE(SELECT AVG(SCORE) FROM SC WHERE C#C4); UPDATE C SET ROW(C5,DB,T3) WHERE C#C5;2.2向S表中添加3条学生信息分别是学号为S13, 姓名为高翔性别为男年龄为20 。学号为S14, 姓名为张军性别为男年龄为21 。学号为S15, 姓名为刘云性别为女年龄为20 。截图代码INSERT INTO S (S#,SNAME,SEX,AGE)VALUES (S13, 高翔, 男, 20); INSERT INTO S (S#,SNAME,SEX,AGE) VALUES (S14, 张军, 男, 21); INSERT INTO S (S#,SNAME,SEX,AGE) VALUES (S15, 刘云, 女, 20);2.3新建一个表studentno char(6),name char(10),address char(50),sex char(4),age smallint ,把S表的全部内容插入到student表中截图代码CREATE TABLE student ( no CHAR(6), name CHAR(10), address CHAR(50), sex CHAR(4), age SMALLINT ); INSERT INTO student (no, name, address, sex,age) SELECT S#,Sname,address,Sex,age FROM S;2.4 在S表中将“高翔”同学的年龄加2。截图代码UPDATE S SET ageage2;2.5 在S表中删除年龄为20岁的学生记录。截图代码DELETE FROM S WHERE age20;2.6 修改‘高翔’同学的学号为‘S14’请记录提示信息。截图代码UPDATE S SET S# S14 WHERE Sname高翔;2.7 删除表student的所有数据。截图代码DELETE FROM student;实验心得本次数据库原理课程设计实验主要围绕索引的创建与撤销、数据更新语句的使用展开通过实操练习我进一步掌握了SQL Server数据定义语言和数据更新语言的核心用法也深刻体会到理论与实践结合的重要性同时在实操过程中发现了自身的不足收获颇丰。本次实验的核心内容分为两大部分索引的创建与撤销、数据更新操作。在索引操作部分我按照实验要求参照教材例题完成了S表索引的创建与撤销。创建索引时使用CREATE INDEX语句为S表的S#字段建立索引看似简单的一行代码实则需要准确把握表名、字段名的拼写稍有疏忽就会出现语法错误。而撤销索引时DROP INDEX语句的使用同样需要注意索引名与表名的对应关系确保索引能够被正确删除。通过这部分操作我明白了索引在数据库中的作用——合理的索引能够提高数据查询效率尤其是在数据量较大的表中索引的优势会更加明显同时也理解了索引并非越多越好不当的索引反而会增加数据更新的负担。数据更新操作是本次实验的重点也是实操过程中遇到问题最多的部分。实验中我先后使用INSERT、DELETE、UPDATE三种语句完成了数据的插入、删除和修改涵盖了单条数据操作、多条数据批量操作以及结合子查询的复杂更新操作。在执行INSERT语句插入数据时我最初因忽略字段顺序与值的对应关系导致数据插入失败后来通过核对表结构明确字段类型和顺序顺利完成了数据插入。尤其是批量插入多条SC表数据时学会了使用逗号分隔多个VALUES子句提高了操作效率而通过子查询插入数据的操作让我进一步理解了SELECT语句与INSERT语句的结合使用掌握了根据条件筛选数据并插入目标表的方法。在UPDATE语句的使用中我遇到了两个典型问题一是修改“高翔”同学年龄时因未添加WHERE条件导致S表中所有学生的年龄都增加了2违背了实验要求这让我深刻认识到WHERE子句在更新、删除操作中的重要性稍有不慎就会造成数据误操作甚至导致数据丢失二是修改“高翔”同学学号为“S14”时出现了主键冲突的提示信息这才意识到S#作为主键具有唯一性不能与已存在的学号重复也让我对主键约束的作用有了更直观的理解。这些错误让我明白SQL语句的编写必须严谨每一个语法、每一个条件都要反复核对确保操作的准确性。DELETE语句的操作中删除年龄为20岁的学生记录和删除student表所有数据的操作让我掌握了根据条件删除数据和清空表数据的方法同时也注意到删除数据前一定要确认条件的准确性避免误删重要数据而且清空表数据与删除表本身的区别DELETE语句只是删除表中的数据表结构依然存在这与DROP TABLE语句有本质的不同。此外新建student表并将S表数据插入其中的操作让我学会了CREATE TABLE语句的完整用法以及INSERT与SELECT语句的结合实现了数据的批量迁移。通过本次实验我不仅熟练掌握了索引创建与撤销、数据更新的核心SQL语句更深刻体会到数据库操作的严谨性和规范性。理论学习中我对DDL和DML语句的理解较为抽象而通过亲手实操将课本上的语法知识转化为实际操作能力不仅加深了对知识点的记忆也发现了理论学习中的盲区。同时实验中遇到的错误也让我学会了排查问题、解决问题的方法培养了自己的耐心和细心明白数据库操作容不得半点马虎每一个细节都可能影响实验结果。本次实验也让我认识到自身的不足对复杂子查询的运用还不够熟练在结合子查询进行数据更新时偶尔会出现逻辑错误对索引的作用和使用场景理解还不够深入后续还需要进一步学习索引的优化方法。在今后的学习中我将加强SQL语句的练习多进行实操训练积累经验提高自己的数据库操作能力同时注重理论知识的巩固做到理论与实践相结合为后续更复杂的数据库设计和操作打下坚实的基础。总之本次实验不仅提升了我的实操能力也让我对数据库原理有了更深刻的理解。在今后的学习和实践中我将保持严谨的态度不断积累经验努力提升自己的专业技能将所学知识运用到实际应用中。