基于SqlServer基本表的插入、修改和删除

下载地址: 文档工程地质

实验二   SQL基本表的插入、修改和删除


一、实验目的及要求:
熟练掌握基本表的插入、删除与修改,为后继学习作准备。
二、实验任务:
1.了解并掌握SQL Server Management Studio(SQL查询分析器及企业管理器)的使用;
2.掌握基本表的插入、删除与修改。
三、操作要点:
1.启动SQL Server Management Studio(SQL查询分析器)
2.掌握插入、删除与修改,命令关键词分别是INSERTDELETEUPDATE 
四、注意事项:
1.注意每次对表的修改,命令执行完后要查看表的变动刷新表。
2.特别注意在执行插入、删除与修改等更新操作时,要保证数据的完整性。
五、实验学时:2学时

六、实验重点及难点
1.T-SQL语句对基本表的定义进行删除与修改,并插入基本表数据。
2.T-SQL语句对数据库操作的灵活控制功能。
七、实验步骤:
1.启动SQL Server Management Studio(SQL查询分析器);
2.选择SQL SERVER后,按确认;
3.选择University数据库;
4.验证如下例题:

在这里插入图片描述

4.1 修改基本表(注:DDL命令)
①向基本表Students中增加“入学时间”属性列,其属性名为Sentrancedate,数据类型为DATETIME型。
进入数据库:
use University                --进入 University数据库
alter table Students
add Sentrancedate DATETIME    --修改Students表,向表中插入列名Sentrancedate(入学时间)

在这里插入图片描述
修改后:
在这里插入图片描述

②将Sage(年龄)的数据类型改为SMALLINT型。
alter table Students --修改表Students
alter column Sage Smallint --修改列名为 Sage的属性 类型为短整型

在这里插入图片描述

修改后:

在这里插入图片描述

③删除Sname(姓名)必须取唯一值的约束。
先查询该表中的所存在的约束:
exec sp_helpconstraint Students --查找该表中的约束名
在这里插入图片描述

通过查询的约束名删除唯一约束:
删除后:
在这里插入图片描述

④将属性列Sentrancedate从Students表中删除。
alter table Students --删除列名为Sentrancedate的列
drop column Sentrancedate --column表示列

在这里插入图片描述

说明:⑴ 请同学们举一反三,通过增加、删除、修改其它字段,以及修改约束条件来了解修改基本表语句的用法,并写出代码。
如果要向表中通过增加、删除、修改其它字段,格式如下:
向表中添加列
ALTER TABLE Students(表名)
ADD(添加) column(列) Sage 后面跟类型

向表中已存在的列修改其类型
ALTER TABLE Students(表名)
ALTER(修改) column(列) Sage 后面跟类型

删除表中的某一列(如果该列存在约束需要先删除约束)
ALTER TABLE Students(表名)
DROP(删除) column(列) Sage

4.2 删除Students表(注:此条为DDL命令)。
注意:此处对比truncate table命令的使用,以及与后面delete命令的差别,写出相应代码。

说明:此表删除后,请立即将其建立起来,并恢复原有数据,以便后面的例子使用。如删除时出现问题,应分析问题原因,并找出解决办法。

用DDL就是用DROP TABLE 表名
此条语句是数据定义语言,会把表的结构删除
因为该表的主键是另外一个表Reports表的外键,所以需要先删除Reports表的外键Sno字段引用
在这里插入图片描述

先删除Reports的外键引用:
在这里插入图片描述

删除后:
在这里插入图片描述

删除外键引用后执行truncate table Students 与drop tableStudents 命令成功

数据操作语言DML:
truncate table Student

Delete from Student
Where 后面跟所要执行的条件

代码如下:
delete from Students
where Sname=‘罗兆’

truncate table Students

数据定义DDL:
代码如下:
drop table Students

truncate table和delete都只是删除表的数据,是DML语言都是数据操纵语言,
但是truncate table语句是一次性删除表中所有行,且被删除的数据不能找回,delete则为一条一条逐行删除,这个操作会放到rollback、segement中,事务提交之后才生效;如果有相应的trigger,执行的时候将被触发(例如级联删除,作业二中也有体现若有删除一个门,则教师表中相应的数据则一起删除),删除后的数据可以通过日志文件进行恢复

4.3 向表中添加元组
①将一个学生元组(S01,李大平,男,20,机械)添加到基本表Students中,观察执行结果。如不能成功,分析原因,并找出解决办法。
代码如下:

insert into Students values(‘S01’,‘李太平’,‘男’,20,‘机械’);
SELECT * FROM Students

在这里插入图片描述

②现有课程C08,名称为“大学物理”,学分为4,没有先行课,请向Courses表插入相应元组。
代码如下:
insert into Courses values(‘C08’,‘大学物理’,NULL,4)
SELECT * FROM Courses

在这里插入图片描述

③现有学号S04,课程号为C07,成绩未出,请将其添加到基本表Reports中。
在这里插入图片描述

4.4 数据修改
①将学号为S04且课程号为C07的成绩改为80分。
在这里插入图片描述

②所有男生年龄加一岁。
修改前:
在这里插入图片描述

修改后:
在这里插入图片描述

③将范林军的学号改成S01。如修改不成功,分析原因。
因为在Studens表中Sno为主键且,表中已经有Sno为S01的元祖所以必定不成功违反主键约束
4.5 数据删除
①在Students表中,将学号为S02的元组删除。如删除不成功,分析原因,并找出解决办法。
删除肯定不成功,因为Report表中主键引为Students中外键,要想删除成功S02,首先要确定Report中没有S02学生的记录
一、可以通过删除Students表中的外键约束,再进行删除
alter table Students
drop CONSTRAINT 外键约束名

再通过delete from Students --delete
where Sno=‘S02’

二、可以通过创建表结构是通过设置外键约束时候添加级联更新和级联删除
alter table Reports
add constraint F1_01 foreign key(Sno)references Students
on delete cascade
在这里插入图片描述

三、可以通过先把Reports表中所有S02数据删除后再进行删除Students表中的S02学生
在这里插入图片描述

再删除Students表中数据:
在这里插入图片描述

②将Reports表中低于80分的成绩记录删除。

在这里插入图片描述

附加拓展题:七台河市2010年公务员招考面试资格确认名单
在这里插入图片描述

考号 姓名 部门代码 部门名称 职位代码 职位名称 总分
102100816 刘宇光 40039 七台河市中级人民法院 01 计算机管理 122.5
102100906 陈纯悦 40040 七台河市检察院 01 计算机管理 122.5
102100701 钱旭 40039 七台河市中级人民法院 01 计算机管理 119.75
102100516 张新 40040 七台河市检察院 02 财会人员 115.75
102100810 高荣 40039 七台河市中级人民法院 02 财会人员 115.25
102100524 肖德庆 40039 七台河市中级人民法院 02 财会人员 110.5
102101122 米含玉 40040 七台河市检察院 03 聘任制书记员 112.75
102100528 姜海楠 40039 七台河市中级人民法院 03 聘任制书记员 110.25
102100727 周琦 40039 七台河市中级人民法院 03 聘任制书记员 105

1)请根据以上表格,参考教材79-80页的表,将表格拆分成关系表,并建表。
2)请用1)建立的表,使用表连接或嵌套查询,显示表格的全部信息。如果不能全部显示,查找原因。
3)
解:根据表中所给信息综上所述
每个人可以报选2个单位,每个单位可以报选3个工作岗位,共有6中可能,所以
关系模式应该为下图
在这里插入图片描述

只有当考生号和部门代码,职位代码、成绩共同出现时候才能唯一确定该生是否录取,且考生号和部门代码,职位代码,三个属性才能唯一确定该元祖,在成绩表中一同作为主键,和外键,
共拆分为4张表,分别为考生信息表ExamineeInfor_table属性为Eid(主键)、exname
部门表Dept_table 属性为Did(主键)、dept_name
职位表Post_table 属性为 Pid(主键)、post_name
成绩表Score_table 属性为 Did、Did、Pid、Grade
(Did、Did、Pid)为主键,(Did、Did、Pid)为外键,分别参考ExamineeInfor_table、Dept_table、Post_table
在这里插入图片描述
在这里插入图片描述

通过连接查询把不同表中的字段显示出来:

在这里插入图片描述

  • 10
    点赞
  • 92
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
### 回答1: Python是一种功能强大且易于学习和使用的编程语言,它可以被用于开发各种各样的应用程序,其中包括桌面应用程序。桌面图书管理系统就是一种典型的桌面应用程序。通过使用Python和SQL Server,我们可以轻松开发一个高效的桌面图书管理系统。 基于Python实现的桌面图书管理系统需要使用PyQt库或Tkinter库等GUI工具包来开发图形用户界面。同时需要使用SQL Server作为数据库,用于存储有关图书的信息。 图书管理系统需要实现的一些基本功能包括图书的添加、删除修改和查询等功能。这些功能通过与SQL Server数据库的交互来实现。开发人员可以使用Python中的ODBC模块或pymssql库等数据库API来连接SQL Server,执行SQL操作实现对数据库中数据的增删改查。 在开发基于Python的桌面图书管理系统时,应尽可能简化用户界面和数据库交互过程,以提高整个系统的易用性和性能。同时,还应该实现用户权限管理、数据备份和恢复等功能,以保证系统的可用性和数据安全性。 总之,基于Python实现的桌面图书管理系统sqlserver能够快速开发高效的图书管理系统,丰富的Python库和SQL Server数据库的支持可以帮助开发人员轻松实现各种功能和优化设计方案。 ### 回答2: 基于Python,我们可以很容易地实现一个桌面图书管理系统,它能够与SQL Server数据库进行交互,实现数据的存储和管理。以下是具体的操作步骤: 1. 安装Python和SQL Server数据库:先安装Python环境和SQL Server数据库,并将Python与数据库进行连接。可以使用pymssql等库。 2. 数据库设计:设计一个book,包含书籍的编号、名称、作者、出版社、价格等信息。可以在SQL Server数据库中创建该格。 3. Python编程:编写Python程序,实现以下功能: - 添加图书:用户输入图书的相关信息,程序将其插入SQL Server数据库的book中。 - 删除图书:用户输入图书的编号,程序将其从SQL Server数据库的book删除。 - 修改图书信息:用户输入要修改图书的编号和要修改的信息,程序将其更新到SQL Server数据库的book中。 - 查询图书信息:用户选择查询条件,程序从SQL Server数据库的book中筛选出符合条件的书籍信息,并输出。 4. 用户界面设计:使用tkinter等库,设计一个GUI界面,方便用户进行输入和查询。 综上所述,基于Python实现的桌面图书管理系统非常方便,可以提高图书管理的效率和准确性。同时,结合SQL Server数据库,用户可以快速地存储和管理大量的书籍数据。 ### 回答3: 基于Python实现的桌面图书管理系统需要连接到SQL Server数据库来实现数据存储和管理。首先,需要安装Python的ODBC模块,以便使用ODBC驱动程序连接到SQL Server数据库。同时,需要使用SQL Server Management Studio创建数据库,并建立包含必要格的数据库架构。 在Python代码中,可以使用pyodbc模块来连接到SQL Server数据库。使用ODBC连接字符串指定数据库服务器和数据库名称,用户名和密码来建立连接。可以使用该连接对象执行SQL查询,并获取数据库中的图书信息。将这些信息存储在内存中,以便用户可以从桌面应用程序中检索,编辑和删除数据。 对于图书信息的管理,可以定义Python类来示图书,并在桌面应用程序中检索和显示数据。可以使用Tkinter模块设计用户界面,并使用这些类来实现添加,编辑和删除操作。 在整个系统中,必须确保安全性和数据一致性。可以使用SQL Server的安全功能来防止未经授权的访问,并执行数据备份以确保在紧急情况下能够进行恢复操作。还可以编写Python代码来确保从桌面应用程序中对数据的操作不会破坏数据库的完整性。 综上所述,基于Python实现的桌面图书管理系统SQL Server需要先建立数据库、连接以及使用pyodbc模块来连接到SQL Server数据库。同时,设置用户界面并使用Python类来管理数据。最后,为确保数据的一致性和完整性,需要考虑安全性和备份操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Code攻城狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值