在本次数据库操作练习中,涉及到多个关键知识点。首先,删除学生表中名为“李勇”的所有数据是通过以下SQL语句实现的:
```sql
delete from sc
where sno in
( select sno
from student
where sname = '李勇')
```
这一操作会确保只删除与“李勇”关联的学号(sno),因为后续的条件限制了删除的是成绩记录(sc表)。同时,要确保操作前数据库中没有重名的李勇,否则可能会误删其他人的数据。
接着,将李勇在DB课程的成绩改为90分,使用了UPDATE语句:
```sql
update sc
set grade = 90
where sno in
( select sno
from student
where sname = '李勇')
and cno in
( select cno
from course
where cname = 'DB')
```
这里的关键是检查学号和课程号的对应关系,确保操作的准确性。
然而,问题在于如果数据库中存在两个不同的“李勇”,且他们同时选修了相同的DB课程,上述操作可能不会区分他们,导致成绩更改不准确。此外,没有明确提及如何确保“DB”课程名称在数据库中是唯一的,如果有多个课程名称相同,也会引起混淆。
关于数据库的基础设置,提到了SQL Server的相关部分,包括安装、启动和身份验证。SQL Server 2005支持两种身份验证方式:Windows身份验证和SQL Server身份验证,分别用于不同场景。系统数据库如master、tmpdb、model和msdb各有其功能,如master记录系统信息,model用于创建用户数据库模板等。
在实际操作数据库时,例如创建数据库`testdata`和`testlog`,使用CREATE DATABASE命令,并指定了逻辑名、物理文件名和日志文件,以及大小和增长策略。创建数据库时需要确保逻辑名的唯一性,同时理解数据文件(mdf)和日志文件(ldf)的区别。
在数据库维护方面,有对数据文件大小的修改和数据库名称的更改,如`alterdatabase`和`exec sp_renamedb`存储过程的使用。这些操作体现了对数据库结构的管理和优化。
总结起来,这部分内容涵盖了SQL查询语言的基本操作,如删除和更新记录,以及数据库的管理,包括数据库的创建、命名规则、大小调整和重命名等。同时,也强调了在处理涉及多个表和可能存在重复记录的情况下,需要谨慎操作以避免数据冲突。