版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第四单元管理数据库表中数据任务4.1存储数据任务4.2更新数据任务4.3删除数据4.1.1情景描述4.1.2问题分析4.1.3解决方案4.1.4知识总结4.1.5应用实践任务4.1存储数据学生管理数据库用来存放具体数据的表创建好后,就可以在表中储存数据了。如果一张表建立好后没有任何数据,那它只是一个空的表结构,不能起到任何实际作用。学生管理系统数据库的开发人员,需要把课程有关信息添加到“课程”表中,添加了信息后,才可以根据应用系统的需要对课程信息进行操作。4.1.1情景描述为了完成任务,开发人员需要完成以下任务:1.根据“课程”表的结构,设计表的有关数据,如表4-1所示;2.使用插入数据的命令来完成记录的存储,并在SQLServer2008上执行。4.1.2问题分析课程编号课程名称课程性质学分开课学期课程分类1数据结构专业必修课4第三学期专业拓展2C语言程序设计专业必修课5第一学期专业拓展3公共英语公共必修课4第一学期素质拓展4软件工程专业选修课3第二学期专业拓展5经济学公共选修课2第四学期技能拓展6网页设计专业必修课3第五学期专业拓展1.打开SQLServerManagementStudio,单击“对象资源管理器”中的“数据库”文件夹下的数据库“学生管理”;2.单击工具栏上的“新建查询”命令,打开“查询编辑器”;3.在“查询编辑器”上输入以下代码:4.1.3解决方案INSERTINTO课程
VALUES(1,'数据结构','专业必修课',4,'第三学期','专业拓展')
INSERTINTO课程VALUES(2,'C语言程序设计','专业必修课',5,'第一学期','专业拓展')
INSERTINTO课程VALUES(3,'公共英语','公共必修课',4,'第一学期','素质拓展')
INSERTINTO课程VALUES(4,'软件工程','专业选修课',3,'第二学期','专业拓展')
INSERTINTO课程(课程编号,课程名称,课程性质,课程分类,学分,开课学期)VALUES(5,'经济学','公共选修课','技能拓展',2,'第四学期')
INSERTINTO课程(课程编号,课程分类,课程名称,学分,开课学期,课程性质)VALUES(6,'专业拓展','网页设计',4,'第五学期','专业必修课')4.单击工具栏上的【执行】按钮。使用INSERTINTO…VALUES命令存储数据使用INSERTINTO…SELECT命令把已经存在的表中的数据,存储到另外一个表中使用SELECT…INTO…命令存储数据4.1.4知识总结INSERTINTO表名(列名的列表)VALUES(表达式的列表)使用INSERTINTO…VALUES命令存储数据参数说明如下:表名:用于指定用来存储数据的表的名称。列名的列表:要在其中插入数据的表中的一列或多列的列表,多列之间用逗号分隔。参数如果省略,则表示表中的所有列都要插入数据。表达式的列表:要插入的数据值的列表。注意:(1)对于指定了参数“列名的列表”中的每个列,都必须有一个数据值与之相对应,表达式的顺序和指定的列名的顺序要一致;如果没有指定参数“列名的列表”,表达式的顺序与表中列的顺序一致,必须包含表中每列的值。即表达式列表的数量和表达式值的数据类型以及顺序必须与表中或列名的列表中的一致。(2)表中可以为空的字段在“列名的列表”参数中不必指出,那么在表达式中也可以不用输入对应的值。(3)关键字INTO可以省略。(4)存储的数据不能违反表中已经存在的约束。【例4-1】在“专业”表中添加记录,具体数据如表所示。专业代码专业名称描述状态1软件技术软件开发相关12网络技术通信、网络安全相关13硬件技术单片机、嵌入式相关14信息管理技术
1INSERTINTO专业VALUES(1,'软件技术','软件开发相关','1')
INSERTINTO专业(专业代码,专业名称,描述,状态)VALUES(2,'网络技术','通信、网络安全相关','1')
INSERTINTO专业(专业名称,描述,专业代码,状态)VALUES('硬件技术','单片机、嵌入式相关',3,'1')
INSERTINTO专业(专业名称,专业代码,状态)VALUES('信息管理技术',4,'1')说明:专业代码为“1”的记录的添加省略了“列名的列表”参数,VALUES值的顺序和表中字段的顺序一致;专业代码为“2”和“3”的记录的添加指定了“列名的列表”参数,VALUES值的顺序和指定的“列名的列表”参数的顺序一致;专业代码为“4”的记录的添加,“描述”字段为空,在“列名的列表”参数中不指定“描述”字段,VALUES值中也没有此字段对应的值,VALUES值中的个数、顺序和数据类型与“列名的列表”参数一致。【例4-2】在“班级”表中添加记录,具体数据如表所示。班级代码班级名称专业代码所属年级班主任描述1计算机120112012级李秋软件开发2计算机120222012级罗莉网络安全3计算机130112013级刘亚软件开发4计算机130222013级罗莉网络安全5计算机130332013级刘伟嵌入式6计算机140132014级刘伟嵌入式7计算机140242014级罗莉信息管理INSERTINTO班级VALUES(1,'计算机',1,'2012级','李秋','软件开发')INSERTINTO班级VALUES(2,'计算机',2,'2012级','罗莉','网络安全')
INSERTINTO班级VALUES(3,'计算机',1,'2013级','刘亚','软件开发')
INSERTINTO班级VALUES(3,'计算机',2,'2013级','罗莉','网络安全')
INSERTINTO班级VALUES(5,'计算机',3,'2013级','刘伟','嵌入式')
INSERTINTO班级(班主任,班级代码,班级名称,描述,专业代码,所属年级)VALUES('刘真',6,'计算机','嵌入式',3,'2014级')
INSERTINTO班级(班级代码,班级名称,专业代码,所属年级)VALUES(7,'计算机',4,'2014级')说明:前3条记录和第5条记录省略了表中的字段列表,VALUES值的顺序和表中的顺序、个数、数据类型都一致;第4条记录的“班级代码”字段和第3条记录的重复了,违反了主键约束,所以不能正确存储数据;第6条和第7条记录指明了表中的字段列表,VALUES值的顺序和指定的顺序、个数、数据类型一致。在第7条记录中,表中字段列表中省略了“描述”字段,“班主任”字段,存储的数据这两个字段的值也为空,可以通过更新记录的方式增加这两个字段的值,在后面介绍。【例4-3】在“学生”表中添加记录,具体数据如表所示。学号姓名性别出生日期个人联系电话1王思旭男1993-03-15131023156102陈芳女1994-02-26131023156103赵建男1992-12-0113202315612……………………表格不完整第2条记录和第1条记录的“个人联系电话”字段重复,违反了表中定义的唯一约束,不能正确保存第2条数据;第3条记录的最后一个字段“班级编号”为外键,取值为8,参考引用“班级”表的“班级代码”字段,而“班级”表中没有班级代码为8的记录,所以违反了外键约束,记录也不能正确保存。【例4-4】在“选课”表中添加记录,具体数据如表所示。学号课程编号成绩11901208108395848891459582456544495173625163867270INSERTINTO选课VALUES(1,1,90)INSERTINTO选课VALUES(1,2,DEFAULT)INSERTINTO选课VALUES(8,1,DEFAULT)INSERTINTO选课VALUES(8,3,95)INSERTINTO选课VALUES(8,4,88)INSERTINTO选课VALUES(9,1,45)INSERTINTO选课VALUES(9,5,82)INSERTINTO选课VALUES(4,5,65)INSERTINTO选课VALUES(4,4,49)INSERTINTO选课VALUES(5,1,73)INSERTINTO选课VALUES(6,2,51)INSERTINTO选课VALUES(6,3,86)INSERTINTO选课VALUES(7,2,70)第2条和第3条记录,“成绩”字段取值为“DEFAULT”,存储的是在“选课”表中为“成绩”字段设置的默认值。INSERT表名1SELECT字段列表FROM表名2WHERE条件表达式使用INSERTINTO…SELECT命令把已经存在表中数据存储到另外一个表参数说明如下:表名1:用于指定用来存储数据的表的名称。字段列表:查询结果的字段的列表。表名2:查询数据所在的源表。条件表达式:查询结果限定行的条件。注意:参数“字段列表”的数据类型、顺序、个数要和表名1中的字段的一致。【例4-5】在“学生管理”数据库下创建表“学生备份”,表结构如表所示,把“学生”表中女生的相关信息储存在“学生备份”表中。字段名称数据类型是否允许NULL值约束学号int否主键姓名varchar(50)否
性别char(2)否
出生日期datetime是
个人联系电话char(11)是唯一约束CREATETABLE学生备份(学号intprimarykey,姓名varchar(50)notnull,性别char(2)notnull,出生日期datetime,个人联系电话char(11)unique)INSERT学生备份SELECT学号,姓名,性别,出生日期,个人联系电话FROM学生WHERE性别='女'首先创建学生备份表把女生的相关信息存储在学生备份表SELECT字段列表INTO新表名FROM表名WHERE条件表达式使用SELECT…INTO…命令存储数据参数说明如下:表名:要查询的数据所在的表。字段列表:参数“表名”包含的字段。新表名:把查询出来的记录插入的新表。条件表达式:行的限定条件。注意:SELECT…INTO…语句的功能是从一个表中选择一些数据插入到新表中,这个新表是执行查询语句的时候创建的,查询语句执行之前是不能预先存在的。【例4-6】把“选课”表中成绩大于70的记录放入一个新表“选课NEW”。SELECT学号,课程编号,成绩INTO选课NEWFROM选课WHERE成绩>70说明:在执行命令之前表“选课NEW”在数据库中是不存在的,“选课NEW”表的结构和SELECT后面的字段相同。4.1.5应用实践在销售数据库中的“账号”表中存储数据,具体数据如表所示。用户ID密码用户名邮件地址邮编电话状态1123456lanlanlanlan@163.com沙坪坝40000065231201启用2123123wanwanwanwan@163.com渝中区40000063232101启用3123321chenchenchenchen@163.com北碚区40070063332325启用4lanpinglanping@163.com巴南区40132065896321启用5manlanmanlan@163.com江北区40000063654120启用1.打开SQLServerManagementStudio,单击“对象资源管理器”中的“数据库”文件夹下的数据库“销售”;2.单击工具栏上的“新建查询”命令,打开“查询编辑器”;3.在“查询编辑器”上输入以下代码:INSERTINTO账号
VALUES(1,'123456','lanlan','lanlan@163.com','沙坪坝','400000','65231201','启用')INSERTINTO账号
VALUES(2,'123123','wanwan','wanwan@163.com','渝中区','400000','63232101','启用')INSERTINTO账号
VALUES(3,'123321','chenchen','chenchen@163.com','北碚区','400700','63332325','启用')INSERTINTO账号
VALUES(4,DEFAULT,'lanping','lanping@163.com','巴南区','401300','65896321','启用')INSERTINTO账号
VALUES(5,DEFAULT,'manlan','manlan@163.com','江北区','400000','63654120','启用')4.单击工具栏上的【执行】按钮。4.2.1情景描述4.2.2问题分析4.2.3解决方案4.2.4知识总结4.2.5应用实践任务4.2更新数据数据库维护人员发现有的课程信息有误,课程编号为6的记录,学分应该修改为4,开课学期为第四学期。因此需要对数据库内原有的数据进行更新来修改错误的记录。4.2.1情景描述为了解决上述问题,需要完成以下任务:1.写出更新记录的命令。2.在SQLServer2008上执行命令,验证更新后的记录。4.2.2问题分析4.2.3解决方案
1.打开SQLServerManagementStudio,单击“对象资源管理器”中的“数据库”文件夹下的数据库“学生管理”;2.单击工具栏上的“新建查询”命令,打开“查询编辑器”;3.在“查询编辑器”上输入以下代码:UPDATE课程SET学分=4,开课学期='第四学期'WHERE课程编号=64.单击工具栏上的【执行】按钮。当学生、课程等表中需要维护的数据发生变化时,需要使用更新数据的命令修改表中的数据。使用UPDATE命令来更新数据的语法规则为:UPDATE表名SET列名1=数据值1,列名2=数据值2,列名3=数据值3,…WHERE条件表达式参数说明如下:表名:用于指定需要更新的表的名称。列名1:要更改数据的列的名称。数据值1:列更新后的新值,对列赋新值的表达式之间用逗号分隔。条件表达式:指定更新的记录的限定条件注意:(1)更新后的数据要和字段的数据类型保持一致。(2)更新后的数据不能违反表中创建的约束条件。(3)WHERE子句指定用于限制修改行的条件,如果省略,则UPDATE语句更新表中所有的行。4.2.4知识总结UPDATE班级
SET班主任='刘伟'WHERE班级代码=6【例4-7】“班级”表中,“班级代码”为6的记录的班主任字段改为“刘伟”。(1)打开SQLServerManagementStudio,在工具栏上单击“新建查询”按钮,打开SQL编辑器,编写如下代码:【例4-8】“课程”表中,“课程编号”为1的记录的课程性质改为“专修”。(1)打开SQLServerManagementStudio,在工具栏上单击“新建查询”按钮,打开SQL编辑器,编写如下代码:UPDATE课程
SET课程性质='专修'WHERE课程编号=1(2)单击工具栏上的【执行】按钮,运行结果如图4-11,错误提示“消息547,级别16,状态0,第1行UPDATE语句与CHECK约束"CK__课程__课程性质__3D5E1FD2"冲突。该冲突发生于数据库"学生管理",表"dbo.课程",column'课程性质'语句已终止”。注意:更新后的数据不能违反表中的约束。在创建课程表的时候为课程性质字段设置了检查(check)约束,限定了其取值范围在销售数据库中的“账号”表中存储数据需要更改,用户ID为5的记录的状态改为“停用”。
1.打开SQLServerManagementStudio,单击“对象资源管理器”中的“数据库”文件夹下的数据库“学生管理”;2.单击工具栏上的“新建查询”命令,打开“查询编辑器”;3.在“查询编辑器”上输入以下代码:4.2.5应用实践UPDATE账号SET状态='停用'WHERE用户ID=54.单击工具栏上的【执行】按钮。4.3.1情景描述4.3.2问题分析4.3.3解决方案4.3.4知识总结4.3.5应用实践任务4.3删除数据在数据库维护过程中,发现课程表中课程编号为5的课程不需要再开设了,则需要删除记录。4.3.1情景描述为了解决上述问题,需要完成以下任务:1.根据删除记录的命令,写出删除课程编号为5的记录。2.在SQLServer2008上执行,验证结果。4.3.2问题分析1.打开SQLServerManagementStudio,单击“对象资源管理器”中的“数据库”文件夹下的数据库“学生管理”;2.单击工具栏上的“新建查询”命令,打开“查询编辑器”;3.在“查询编辑器”上输入以下代码:4.3.3解决方案DELETE课程WHERE课程编号=64.单击工具栏上的【执行】按钮。4.3.4知识总结当表中的数据不再需要的时候,为了节约存储空间,需要删除数据,删除数据最小的单位是一行。使用DELETE语句删除数据的语法规则为:DELETE表名WHERE条件表达式参数说明如下:表名:用于指定要从其中删除行的表的名称。条件表达式:指定删除记录的限定条件。注意:删除记录要确保没有被其它表引用。例如删除一个学生A的记录,要确保在选课表中没有此学生A的选课信息;否则,在选课表中还有学生A的选课记录,但是把学生A的信息从学生表中删除了,导致选课表中的学生A的选课记录成为废数据,因为已经不存在的学生是不能选课的。删除的顺序应该是:先在选课表中删除学生
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幼儿园家长会组织制度
- 公共交通系统防疫物资管理制度
- 工业园区火灾隐患整改管理制度
- 环保行业安全管理与制度规范
- 智能制造校企联合协议书
- 居然之家加盟合同法律风险分析
- 航空业供应链服务合同协议
- 建筑材料长期购销协议
- 抗生素和抗菌药物使用制度
- 员工轮岗培训管理制度
- 2024-2030年中国电动工具配件行业市场发展趋势与前景展望战略分析报告
- 愚公移山英文 -中国故事英文版课件
- 酒店住宿水单模板1
- 货物运输通知单
- 部编版一年级上册形近字组词(共3页)
- 建筑工程管理中安全管理探究
- 三相桥式有源逆变电路的仿真Word版
- SMT焊接检验标准及元器件推力标准
- 全体教职工对学校行政领导干部工作作风和行政效能调查问卷 (2)
- 燃气—蒸汽联合循环热电联产项目可行性研究报告
- 小学教育研究方法课程标准
评论
0/150
提交评论