SQL数据库_实验09
sql数据库实验报告
sql数据库实验报告目录1. 实验概述 (2)1.1 实验目的 (2)1.2 实验背景 (3)1.3 实验内容 (4)1.4 实验环境 (5)2. 数据库设计 (5)2.1 数据库概念 (6)2.2 表结构设计 (8)2.2.1 表1名称及字段定义 (9)2.2.2 表2名称及字段定义 (10)2.3 关系约束 (11)3. SQL语句操作 (12)3.1 数据插入 (13)3.2 数据查询 (14)3.2.1 根据条件查询 (15)3.2.2 聚合函数查询 (16)3.2.3 连接查询 (17)3.3 数据更新 (18)3.4 数据删除 (20)4. 实验结果展示 (21)4.1 SQL语句执行结果 (22)4.2 数据分析及解释 (22)4.2.1 查询结果的意义 (24)4.2.2 数据之间的关系性分析 (24)5. 实验总结与展望 (25)5.1 实验总结 (26)5.2 总结得到的经验与教训 (27)5.3 进一步研究建议 (29)1. 实验概述本实验旨在通过实践操作,实验内容涵盖了常见数据库操作,包括表创建、数据插入、查询、修改和删除。
通过完成实验,我们将学习如何使用SQL语句来管理和处理数据库数据,掌握常用的 SELECT、INSERT、UPDATE、DELETE 语句以及 JOIN 操作等,并熟悉数据库的操作流程和概念。
本实验旨在提升 SQL 数据库操作技能,并为后续更深入的数据库学习和应用打下基础。
您可以根据实际实验内容对以上段落进行修改和完善,具体修改点包括:明确实验的主题和目标,例如:实验主题可能是某个特定数据库管理系统(如MySQL、PostgreSQL等)的应用,目标可能是学习该数据库特定的功能特性。
1.1 实验目的本次实验旨在通过实际操作,验证和巩固SQL语言在关系型数据库管理中的应用能力,并加深对数据库设计、数据操作以及数据查询与分析的理解。
具体实验目的包括:学习SQL基础:掌握SQL语言的基本语法和常用命令,包括数据类型定义、表格创建、插入、更新和删除操作。
同济大学SQL数据库实验9
Imports System.Data.SqlClientPublic Class Form1Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.ClickDim a As New SqlConnection("DataBase=university;Data Source=jd311;IntegratedSecurity=True;")Dim b As String= "select student.snum,cname,score from student,sc,section,course where sc.snum=student.snum and sc.secnum=section.secnum and um=um andstudent.snum='" & TextBox1.Text.Trim & "'"Dim adapter As New SqlDataAdapter(b, a)Dim dataset As New DataSetadapter.Fill(dataset, "list")DataGridView1.DataSource = dataset.Tables("list")Dim c As String = "select sname from student where snum='" & TextBox1.Text.Trim & "'" mandText = cadapter.Fill(dataset, "sname")Label2.Text = dataset.Tables("sname").Rows(0).Item(0).ToString & " 选修课程成绩 "End SubEnd Class2.Imports System.Data.SqlClientPublic Class Form1Dim bind As New BindingSourcePrivate Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Clickbind.MoveFirst()End SubPrivate Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Clickbind.MovePrevious()End SubPrivate Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Clickbind.MoveNext()End SubPrivate Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Clickbind.MoveLast()End SubPrivate Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.ClickDim a As New SqlConnection("DataBase=university;Data Source=jd311;IntegratedSecurity=True;")Dim b As String= "select student.snum,sname,cname,score from student,sc,section,course where sc.snum=student.snum and sc.secnum=section.secnum and um=um and student.snum='" & TextBox1.Text.Trim & "'"Dim adapter As New SqlDataAdapter(b, a)Dim dataset As New DataSetadapter.Fill(dataset, "list")bind.DataSource = datasetbind.DataMember = "list"TextBox2.DataBindings.Add(New Binding("text", bind, "snum", True))TextBox3.DataBindings.Add(New Binding("text", bind, "sname", True))TextBox4.DataBindings.Add(New Binding("text", bind, "cname", True))TextBox5.DataBindings.Add(New Binding("text", bind, "score", True)) End SubEnd Class。
数据库SQL实验报告__数据库的基本操作
数据库SQL实验报告__数据库的基本操作一、实验目的1.理解数据库SQL语言的基本操作;2.学会使用数据库SQL语言进行数据的增删改查操作。
二、实验环境1. 操作系统:Windows 10;2.数据库管理系统:MySQL;3. 开发工具:Navicat for MySQL。
三、实验内容本次实验主要涉及数据库的基本操作,包括创建数据库、创建数据表、插入数据、更新数据、删除数据以及查询数据等。
1.创建数据库步骤一:打开Navicat for MySQL,并点击左上角的“新建连接”按钮;步骤二:填写连接信息,包括主机、端口、用户名和密码,并点击“连接”按钮;步骤三:点击“新建数据库”按钮,填写数据库的名称,并点击“确定”按钮。
2.创建数据表步骤一:在已连接的数据库上点击右键,选择“新建数据表”;步骤二:填写数据表的名称,并点击“确定”按钮;步骤三:填写数据表的字段信息,包括字段名、数据类型、长度、索引、主键等,并点击“确定”按钮。
3.插入数据4.更新数据5.删除数据6.查询数据步骤一:在数据表上点击右键,选择“查看数据”;步骤二:在弹出的查询窗口中填写查询条件,并点击“确定”按钮。
四、实验结果通过以上基本操作,成功创建了一个数据库,并在数据库中创建了一个数据表。
插入了一条数据,并成功地更新和删除了数据。
最后,使用查询操作查看了数据库中的数据。
五、实验总结通过本次实验,我深入了解了数据库SQL语言的基本操作,学会了使用数据库SQL语言进行数据的增删改查操作。
在实验过程中,我发现通过SQL语句进行数据库操作更加灵活、方便且高效。
还学会了使用Navicat for MySQL这样的数据库管理工具,提高了数据库的操作效率。
通过实验,我对数据库的基本原理和操作有了更深入的了解,为日后的数据库开发和管理打下了坚实的基础。
SQL数据库完整实验报告
学生学号实验课成绩学生实验报告书实验课程名称企业数据库应用开课学院管理学院指导教师姓名学生姓名XXX学生专业班级人力ZY09012010 — 2011 学年第2 学期实验报告填写规范1、实验是培养学生动手能力、分析解决问题能力的重要环节;实验报告是反映实验教学水平与质量的重要依据。
为加强实验过程管理,改革实验成绩考核方法,改善实验教学效果,提高学生质量,特制定本实验报告书写规范。
2、本规范适用于管理学院实验课程。
3、每门实验课程一般会包括许多实验项目,除非常简单的验证演示性实验项目可以不写实验报告外,其他实验项目均应按本格式完成实验报告。
在课程全部实验项目完成后,应按学生姓名将各实验项目实验报告装订成册,构成该实验课程总报告,并给出实验课程成绩。
4、学生必须依据实验指导书或老师的指导,提前预习实验目的、实验基本原理及方法,了解实验内容及方法,在完成以上实验预习的前提下进行实验。
教师将在实验过程中抽查学生预习情况。
5、学生应在做完实验后三天内完成实验报告,交指导教师评阅。
6、教师应及时评阅学生的实验报告并给出各实验项目成绩,同时要认真完整保存实验报告。
在完成所有实验项目后,教师应将批改好的各项目实验报告汇总、装订,交课程承担单位(实验中心或实验室)保管存档。
附表:实验成绩考核建议观测点考核目标成绩组成实验预习1.对验证型实验,考察对实验原理与方法的预习情况2.对于综合型、设计型实验,着重考查设计方案的科学性、可行性和创新性对实验目的和基本原理的认识程度,对实验方案的设计能力20%实验过程1.是否按时参加实验2.对实验过程的熟悉程度3.对基本操作的规范程度4.对突发事件的应急处理能力5.实验原始记录的完整程度6.同学之间的团结协作精神着重考查学生的实验态度、基本操作技能;严谨的治学态度、团结协作精神30%结果分析1.所分析结果是否用原始记录数据2.计算结果是否正确3.实验结果分析是否合理4.对于综合实验,各项内容之间是否有分析、比较与判断等考查学生对实验数据处理和现象分析的能力;对专业知识的综合应用能力;事实求实的精神50%实验项目名称SQL Server的安装及操作实验者xxx 专业班级人力ZY0901同组者无实验日期2011年3月11日一、实验目的、意义1、写出SQL Server的功能与特点,使用方法,应用状况的报告。
SQL数据库实验
小结或讨论
(1)实验中遇到的问题和解决方法 (2)实验中没有解决的问题 (3)体会和提高
创建数据库(1)
CREATE DATABASE <数据库名> 新建数据库的名称
[ ON [PRIMARY]
指明主数据库文件
( [NAME=<逻辑数据文件名>,]
文件的逻辑名称
‘<操作数据文件路径和文件名>’
文件在OS中存储的路径名和文件名
注:若有SQL语句,要写在实验报告中
小结或讨论
(1)实验中遇到的问题和解决方法 (2)实验中没有解决的问题 (3)体会和提高
插入数据
❖ 插入元组
INSERT
INTO <表名> [(<属性列1>[,<属性列2 >…)]
VALUES (<常量1> [,<常量2>] …
);
❖ 插入子查询结果 INSERT INTO <表名> [(<属性列1> [,<属性列2>… )] 子查询;
完整性约束(1)
❖ NOT NULL——不允许空值 ❖ UNIQUE——唯一约束 ❖ PRIMARY KEY——主码约束 ❖ CHECK——检查约束
▪ CHECK(Ssex IN (‘男’,‘女’))
完整性约束(2)
❖ DEFAULT——默认值约束 ❖ FOREIGN KEY——外码约束
▪ FOREIGN KEY (Cno) REFERENCES Course(Cno) ❖ CONSTRAINT <约束名> 约束
小结或讨论
(1)实验中遇到的问题和解决方法 (2)实验中没有解决的问题 (3)体会和提高
SQL数据库实验报告
湖北国土资源职业学院SQL数据库实验报告2010-2011 学年第二学期实验名称数据库应用技术班级测量0902指导老师侯文平学生姓名杨然系(部)测绘工程系实训时间2011年5月实验一注册服务器与创建数据库一、实验目的1.熟悉SQL Server 2005管理平台的环境2.掌握注册服务器的过程3.了解Microsoft SQL Server中系统数据库中的数据4.掌握创建库5.掌握创建数据表二、实验内容1. 使用联机丛书2.注册服务器3.创建数据库4.创建数据表三、仪器、设备、材料微机四、实验准备1.理论知识预习及要求①服务器组的创建;②服务器的注册;③创建数据库;④创建数据表;2.实验指导书预习及要求上机前先预习第一、二章的内容及附录A中的实验一,理解注册服务器的作用。
3.其他准备无五、实验原理或操作要点简介注意服务器要先启动,才能与服务器建立连接。
六、注意事项要养成为文件取有意义名称的习惯。
要及时保存文件,避免死机或断电造成的文件丢失。
创建过程中,出现问题时,请保存,请老师解答。
创建过程中,若出现找不到相应的问题时,要看联机丛书,逐步学会自学。
七、实验过程与指导1. 使用联机丛书(操作步骤参考教材P273实验一中的操作步骤)2.注册服务器(操作步骤参考教材P8)3.创建数据库(操作步骤参考教材P12,要求将数据库存储在最后一个磁盘,以自己姓名命名的文件夹,如F:\hwp)4.创建数据表以界面方式建立一个学生基本情况表(tblStudent),建立的要求如下表。
以界面方式建立一个班级表(tblClass),建立的要求如下表。
5.往表中插入记录①往tblStudent表中插入记录。
观察:●蔡文姬的性别在输入的时,没有输入,输入完成后,变成了什么?为什么?●曹操的性别误输入为“国”,也成功的存储了。
我们可以在保存数据前做什么工作,防止用户输入错误的发生?继续,往tblStudent表中插入记录。
输入完成,提交更新行时,会出现下面错误提示:思考:该提示的含义是什么,由什么原因引起?②往tblClass表中插入记录。
SQL数据库系统实验报告(含代码、截图)
设有一学籍管理系统,其数据库名为“EDUC”。
初始大小为 10MB,最大为50MB,数据库自动增长,增长方式是按5%比例增长;日志文件初始为2MB,最大可增长到5MB,按1MB增长。
数据库的逻辑文件名为“student_data”, 物理文件名为“student_data.mdf,存放路径为“E:\sql_data”(注意:此文件名必须已经建立的前提下才可以此操作)。
日志文件的逻辑文件名为“student_log”, 物理文件名为“student_log.ldf”,存放路径为“E:\sql_data”。
四.实验步骤1.使用SQL Server Management Studio(简称SSMS)创建数据库。
(1)启动SSMS在开始菜单中:所有程序-SQL Server 2005 -SQL Server Management Studio单击“连接”按钮,便可以进入【SQL Server Management Studio】窗口。
如果身份验证选择的是“混合模式”,则要输入sa的密码。
(2)建立数据库在“对象资源管理器”窗口,建立上述数据库EDUC。
在数据库节点上右击选择新建。
同时建立一个同样属性的数据库EDUC1。
2. 使用向导删除上面建立的数据库。
用SSMS删除建立的数据库EDUC。
3、数据库的分离将刚建好的数据库分离出来,即点击新建的EDUC——任务——分离,将删除连接和更新打一个钩,然后点击确定。
如图所示:4、数据分离出来之后可以附加进去。
即右击数据库——附加——点击添加按钮,找到数据库文件.mdf所存放的路径,然后点击确定,即可以将我们刚所创建的文件添加回去。
五.实验总结通过本次实验,我熟悉了SQL Server 中SQL Server Management Studio的环境,了解了SQL Server 数据库的逻辑结构和物理结构,掌握使用向导创建和删除数据库的方法。
加深了对数据库的认识和理解。
实验九数据库备份和恢复实验
实验九数据库备份和恢复实验本实验需要2学时。
一、实验目的使学生了解SQL Server的数据备份和恢复机制,掌握SQL-Server中数据库备份和恢复的方法。
二、实验内容1. 用SQL Server Management Studio创建一个备份设备。
2. 为学生选课数据库设置一个备价计划,要求每当CPU空闲时进行数据库备份。
3. 为图书借阅数据库设置一个备份计划要求每月1号进行数据库备份。
4. 在SQL Server Management Studio中恢复学生选课数据库。
5. 修改学生选课数据库备份计划要求每星期对数据库备份一次。
三、实验方法1 创建、查看和删除备份设备(1)创建备份设备在SQL Server Management Studio中,扩展要操作的SQL 服务器,在管理文件夹中找到备份文件夹。
用鼠标右键单击该文件夹后,在弹出的菜单中选择“新建备份设备’项,如图3-66所示。
随后会出现如图3-67所示的备份设备属性对话框。
在备份设备属性对话框中,执行下列操作:输入备份设备的逻辑名称;确定备份设备的文件名;单击“确定”按钮。
在确定备份设备的文件名时,需要单击文件名栏最右边的“…”按钮,并在弹出的文件名对话框中确定或改变备份设备的缺省磁盘文件路径和文件名。
(2)查看备份设备的相关信息查看备份设备的相关信息时,需要执行的操作是:在SQL Server Management Studio中扩展服务器,选择管理文件夹和备份文件夹,在细节窗口中找到要查看的备份设备;用鼠标右键单击备份设备,在弹出的菜单上选择“属性”项,会弹出与图3-67相似的备份设备属性对话框;用鼠标单击设备名称右边的“查看”按钮,可弹出备份设备的信息框,从中可以得到备份数据库及备份创建日期等信息。
图3-66 备份文件夹的弹出菜单图3-67 备份设备属性对话框(3)删除备份设备如果要删除一个不需要的备份设备,首先,在SQL Server Management Studio中该备份设备,并用鼠标右键单击它;在弹出的菜单中选择“删除”项;在确认删除对话框中,单击“确认”按钮。
SQL数据库实验指导
SQL数据库实验指导实验1 数据库的创建与管理(2学时)目的和要求1、巩固数据库的基础知识2、掌握创建数据库的方法3、掌握查看、修改数据库属性的方法4、掌握缩小、更名与删除数据库的方法5、掌握添加数据文件及分离、附加数据库的方法内容和步骤一、实验内容:试用企业管理器、查询分析器建立数据库JWGL(教务管理),并用企业管理器对建立的数据库进行管理。
具体参数如下:二、实验步骤:1、创建数据库使用企业管理器创建(1)打开企业管理器,在左窗格中双击要建立数据库的服务器节点,将该节点展开。
双击“数据库”节点,然后在右窗格中右击空白区域,从弹出的快捷菜单中选择“新建数据库”命令。
(2)在“名称”文本框中输入的数据库名称“JWGL”,然后单击“数据文件”选项卡,在“文件名”栏中自动生成文件名为“JWGL_DATA”的数据文件,注:SQLServer2000在默认情况下自动在用户输入的文件名后面增加上Data字样。
(3)在“文件组”栏中,输入文件所属的文件组名称。
(主文件文件组名不能改变)(4)在“文件属性”选项组里,选中“文件自动增长”复选框,当数据文件的空间不够用时,SQLServer2000可以自动增加容量。
SQLServer2000提供了两种方式来实现数据文件的自动增加。
一种是以“按兆字节”的方式递增,一次增加1MB;另外一种方式是以“按百分比”的方式递增,一次递增原数据库文件容量的10%。
图1-1 数据库属性(5)单击“位置”栏中的按钮,选择存放数据文件的位置。
(6)单击“确定”返回“数据库属性”,单击“事务日志”选项卡,输入日志文件的名称、位置、大小,在日志需要更多空间时可以在“文件属性”选项组中设置日志自动增长和最大值选项,方法与设置数据文件类似。
用T—SQL语言创建数据库在查询分析器中输入如下所示的创建数据库的SQL脚本。
CREATE DATABASE JWGLONPRIMARY (NAME='JWGL_data',FILENAME='c:\Program Files\Microsoft SQL Server\MSSQL\DATA\JWGL_data.mdf',SIZE=20MB,MAXSIZE=200MB,FILEGROWTH=5MB) (或FILEGROWTH=5%)LOG ON(NAME='JWGL_log',FILENAME='c:\Program Files\Microsoft SQL Server\MSSQL\DATA\JWGL_log.ldf',SIZE=5MB,MAXSIZE=50MB,FILEGROWTH=1MB)刷新后即可见建立的数据库JWGL12、查看、修改数据库属性1.使用企业管理器查看、修改数据库属性(1)SQLServer2000有许多选项可以改变数据库的行为。
SQL实验报告(优秀范文5篇)
SQL实验报告(优秀范文5篇)第一篇:SQL实验报告实验四触发器实验(一)after触发器(1 1)在l l i neitem 表上定义一个 after 触发器, , 当修改列项目e e xtendedprice d i scountx tax 时, , 要把 s orders 表得to o tal pri ce e 一起修改, , 以保证数据一致性C RE ATE T RIGGERtrig _line ite m_ pr ice_ update on line it em fo rupda teaasbegin i f(UPDATE(ex tend edprice)o r UPDATE(tax)or UPD AT E(di scou nt))begin-—声明游标变量指向 inserted 表d eclarecursor_inserted c urs orrea d_onlyofor select order key,linenu mber,exte nd edpr ice, dis coun t, taxfromin ser ted—-息信找查取获量变明声ﻩ声明变量获取查找信息de clare order key in t, @linenumb erint,exte nd edpricereal,disscount real,tax real—-打开游标epoﻩen cursor_i ns ert ed—-标游取读ﻩ读取游标fe tchnextfrom cur sor _i ns erte dint o@o rderkey, @lin enumber,eext ende dprice, @di scount,t axwwhi le FETC H_S TATUS =0 nigebﻩnﻩ—-声明一个变量保存重新计算得新价格cedﻩﻩecl are @n ew_tota lpri cer ealﻩ select @n ew_t otal price= @ext en dedpr ice *(1 -@di scou nt)*(1 +@tax)—-用新得总价格变量更新 orders 表得 t ot alprice puﻩﻩupdate orde rsse t tot alpri ce= new_totalprice where or derkey=orde rkeyen hctefﻩext f ro m cur sor_i nser ted int o@order ke y, @li nenum ber, @ex tende dp rice,discoun t, @taxdneﻩllaedﻩlocate c ur sor_i nser te deend end ﻩ(2)在在 linei tem表上定义一个 aftr er 触发器, , 当增加一项订单明细时, ,自动修改 s orders 表得 total p rice, 以保证数据一致性CREATE TR IGGER tri g_ lineit em_price_ in sert on l ine item ffor inse rta sbegin ——向指量变标游明声ﻩ声明游标变量指向ins erted 表de clarec ursor_inse rtedcursorread_ onl yﻩ for s ele ct orderkey,linenumbe r,ex te ndedp ric e,di scou nt,t axfrom insserte d--声明变量获取查找信息edﻩeclare @orde rk eyint, @lin enumber int,e xten dedp ricereal, @discountreal, @ta xreal -—ﻩ-打开游标open cursor_i ns erte d--ﻩ-读取游标fe tc hnex tf romcu rsor_ins ertedinto@o rd erkey,li nen umbeerr, ex ten ded pric e,dis count,tax ihwﻩile @@FE TCH_ STATU S=0 ebﻩegin-—格价新得算计新重存保量变个一明声ﻩﻩ声明一个变量保存重新计算得新价格cedﻩclare @n ew_tot alprice realcelesﻩct new _to ta lprice= @extend edp rice *(1-d is count)*(1+tax)—-新更量变格价总得新用ﻩﻩ用新得总价格变量更新orders 表得totalpri ceﻩ u pda teor ders s ett ota lpric e=total pric e+ @new_ tota lpr ice wwhhe re o rderke y=orderkeytefﻩetch next from cursor_ ins erte dinto o rder key, @l inen umber,e xtendeddp ric e, @disc ou nt, @t axeend aedﻩdeall oca te cu rsor_in serted en d(3)在l in e ite m表上定义一个a ft er触发器, , 当删除一项订单明细记录时, ,自动修改 orders 表得 tot a lprice, 以保证数据一致性CREATE TRI GG ER trig _line item_price_de let eon line item fo r de let eAAS begin--声明游标变量指向delet ed 表de clar e curso r_d eleted cursorre ad _on lyesrofﻩﻩele ctord erk ey,line numbe r,extende dp rice,discoun t, taxfromdel eted-ﻩ--声明变量获取查找信息declare ord erkey int,linenum be rint,extendedp ri ce r eal,discou nt real,ta xreal -—ﻩ-打开游标epoﻩen c urso r_ deleted——标游取读ﻩ读取游标efﻩetch next fr om cur sor_delete d in toorder ke y,l inenumb er,ext enddedprice, @di scoun t,taxwh ile@FETCH_STATUS=0begi n-—声明一个变量保存重新计算得新价格ﻩ declare @ne w_ to talpric erealﻩsselec t@new_t otalpr ice= @exte nde dpri ce*(1-@disco unt)*(1+ tax)-ﻩ-—用新得总价格变量更新orders 表得tot alp rice uﻩﻩupd ateorders set t otalpri ce=to talpr ice-@new _totalp rice wh er e order key= @ord erkeyfetchn ext f rom cursor_inse rt ed in to orderkey, @line numbe r,extendeeddprice, @d iscou nt,t ax dneﻩndddeal lo cat e cur sor_inse rted eend((4 4))验证 up d at e触发器—-查瞧号订单得 to ta a l pr i ceselec t*fro o mo o r ders whereorde r key=1 8 30;—-查瞧明细表得相关信息se l ect *f ro mlin ei i te e mw here or de e r key=183 0and l ine num m be e r =1;——验证 e update 触发器updat elineitem set t ax=tax+0、05whe re orderkey=1830;(二)i i n steadof触发器((1))在在 lineit em 表上定义一个ins tead o fupda te触发器, 当修改明细表中得数量量quan ti ty 时, 应先检查供应表par tsupp 得av ai lqty 就是否足够, 不足够则拒绝执行, 否则执行并修改相应数值以保证数据一致性于由于 in steadof 触发器更新某个表会使得该表上其她不满足更新列不能更新,因因用此逆向思维使用 a fter 触发器实现相同效果即先更新 qu antity, 再比较av ailqqtty, 如果满足更新数量, 就修改partsupp 得表得 a vailqty, 如果不满足, 则把lineitem得quantity 更新之后得数据重新修改回来ccreate trigge r trig_lin eit em_quanti ty_ upda teonli neit em f or upda teas begin if UPDATE(qu ant ity)bbegin ——向指别分量变标游明声ﻩ声明游标变量分别指向 i nserted 表与 d el eted 表edﻩdeclare c urso r_inser tedcur sorr ead_on lyfortcelesﻩﻩtorde rkey, partk ey,s uppkey,lin enum ber, quantit yfr om i nserteddecl arecursor_de leted c urs orrea d_ onl yf or select quantityfr om deleted-—息信找查取获量变明声ﻩ声明变量获取查找信息decl are@qu an tity _dif f_lineitem i nt,q uanti ty_pa rtsup p i nt cedﻩclare suppkey int, @par tke y in t,o rd erkey i nt,unenilﻩﻩum ber int ,qty _inserted in t , @qty_deleted int--打开游标ruc nepoﻩrsor_in sert ed poﻩopen cur sor_d eleted-—量变给赋值数标游取读ﻩ读取游标数值赋给变量fﻩfet chnext fromcu rsor_ insert edﻩiinto or de rk ey,pa rtkey, @suppk ey, @line nu mber, @qty _ins erte df et chnext fromcursor _d eletedint o q ty _de lete dwhi le fe tch_st atus=0 gebﻩegin--计算订单明细修改时, 订购数量得变化值inserte d表项-d elet ed表项ssel ect quantity_d if f_ li neit em= @q ty _in se rte d—@@q ty_deleteedﻩ--从parts upp 表获取ava ilq ty值, 注意partsupp 表得主键为(partk ey,suppkeey)tcelesﻩﻩt@quanti ty_p ar tsupp =av ailq ty fro m pa rtsu ppwﻩﻩwh er e suppkey= suppke yand part key= @par tk ey-—断判始开ﻩﻩ开始判断gebﻩbegi nfiﻩf quant ity _d iff_ lin eite m=0ﻩﻩ p rin t“ 更新得数量与原表中得值相同, 不需要更新”e ls eif @quantit y_d iff_lin eitem 〈=q uantity_partsuppﻩbe ginﻩpuﻩﻩpd ate partsupps et avail qty= availqty-@qua ntit y_d iff_li ne item ﻩpus erehwﻩppkey=suppkeyandp artkey= @par tke yﻩﻩ p rint “ 两个表都更新成功’ ﻩﻩﻩneﻩndels eigebﻩﻩinﻩuﻩﻩupdate li nei temsetquantit y=quantity+ @quanti ty_diff_linei temwhe re o rd erke y=@orde rke y and li nenu mber= @liine numberﻩp ri nt '更新失败”ﻩﻩendﻩ e nd efﻩﻩetch ne xtfr om c urso r_i nsertedi nto @ord erke y, @partkey,s upp key, @linenumb er, @qt y_ ins ert edf etch ne xt from curso r_de leted into @qt y_d elet ed dneﻩndd eallocat e cur sor _i nserte ddealloc at e cursor_de le ted eend eend(2)在在 l ineite m表上定义一个 instea d of in sert 触发器, 当插入明细表中一条记录时时, 应先检查供应表par tsupp 得得 ava il qt y就是否足够qu anti ty 得数量c rea te t rig ger tri g_lineitem_q ua nti ty_ insertonline item iinstead of inser t as bbegin-—声明游标变量指向 inserte d表d eclar e cur sor_inserte dcur sorrea d_ only f orsﻩﻩselect or derk ey,pa rtkey,sup pk ey, lin en umber,q uantityf rom ins er ted-—声明变量获取查找信息dec lare quantity int, @av ailq ty i nt, @suppkeyin t, @partkeyinntt, @o rderkey int, @linenu mber int-—标游开打ﻩ打开游标c nepoﻩcurs or_ins erted -ﻩ-—读取游标f etc hnext fro mcursor_insert edint o@orde rkey,partkey,@@ssuppkey, @linenumber,qu antity wh ile @@FETCH_S TATUS= 0igebﻩin--为变量赋值a tcelesﻩavailqtyy==av ai lqt y fr ompartsuppwﻩwhe re suppkey =@su ppk ey and part ke y= partke yﻩ if @quant ity 〈= @avail qt y-—如果可以更新bﻩbegin /ﻩﻩﻩ/*将将 insert ed 表中得记录插入到明细表*/ ﻩsniﻩserti nto l ineite m select *from i nsertedro=yekredroerehwﻩﻩrderk ey andlinenumb er = @linenumber */ﻩﻩ新更时同ﻩ*同时更新 part supp 表得数量*/ﻩﻩuupd ate pa rtsup pset a vailqty=availqty-@quanti tyﻩerehwﻩe sup pke y= @sup pkey and partkey=part key ppr int ’paarts upp 表有足够得货物可以满足 lin eitem 得quan tityy, 插入成功’endelsebeginﻩﻩ p rintt''pa rt sup p表没有足够得货物可以满足 l ineitem 得得q uantity,插入失败’dneﻩfﻩﻩfetc h next from curso r_ins ert ed in to@ord erkey, partkey, suppkey, @liinenumbe r, qu antity eﻩen ddeall ocat ecursor_ inserted end(3)在在 line ite m表上定义一个 inste ad of del ete 触发器,当当删除明细表中记录时时, 同时改变表供应表 partsupp 得ava il qtyy数值 c re ate trigge r tri g_ lin eit em_quanti ty_ del ete o n line item inste ad of del ete as be gin—-声明游标变量指向deleted 表de cla re curs or_ del eted c ursorread _only forlesﻩﻩelect or derke y, par tkey,sup pkey, linenumbe r,quan tity fr om deleted -ﻩ--声明变量decl are s upp key i nt, par tke yint, @orde rkey int,linen umb erint, @quaant it y int—-标游开打ﻩ打开游标opencursor_deleted-—标游取读ﻩ读取游标ffetch next fr omcurs or _del et edin to @ord erkey , @partkey,s uppkeey, @lin en umber,q ua ntitywhi leFFET CH_ STATUS=0 igebﻩin*/*除删ﻩ*删除*/ﻩ de let e fromlineite m where linenu mber= line number and o rde rkey =ordder key*/新更时同ﻩ同时更新 pa rt supp 表得数量*/u pdateparts uppse tavailqt y=a vai lq ty+quant ityﻩ where s uppke y= @s uppkey a nd par tk ey= @p ar tkeyﻩ p rin t’ 删除成功, 并且已经把货物数量归还到 p ar tsup p里“ fﻩﻩfetc h ne xt fr omcurso r_del etedinto @ord er ke y,p ar tkey,@@suppkey, @lin enu mber,quanti ty neﻩnd edﻩea lloc ate cursor_ delete dend(4)验证 update 触发器--查瞧li neit em 得quan tit y select*fr omlin eit em whe re or derk ey =1830and li nenum ber=1;——查询partsupp 表得ava ilqt y se lect * from part supp w here suppk ey =(selectsupp key fr omlin eitem w here ord erkey=18 30)and partk ey=(s elec t part key from lin eite mwh er eorder key =18 30 a nd linenu mber=1)---更新数量过大——更新得值与原值相同---更新到+ + 2 00 数量, , 成功updateli neitem setquant ity=q uanti ty+ 200where order key=1830and lin en umber =1;--更新 +2 00成功后l ineite m得 quanti ty y 变化——更新+200 成功后par ts upp 表得a va ilqty 变化实验到此。
SQL数据库实验指导书
SQL数据库实验指导书《数据库开发与应⽤》实验指导书沈阳理⼯⼤学应⽤技术学院2009年12⽉⽬录实验⼀数据库和表的操作 (1)实验⼆数据的操作 (6)实验三存储过程的操作 (9)实验四触发器的使⽤ (11)实验五数据库综合设计 (13)实验⼀数据库和表的操作实验⽬的:1、了解SQL SERVER数据库的逻辑结构和物理结构;2、掌握SQL SERVER数据库的⽂件组成;3、掌握SQL SERVER数据库中⽂件组的概念;4、了解表的结构和特点;5、了解SQL SERVER的基本数据类型;6、学会使⽤结构化查询语句创建和管理数据库和表;实验内容:1、使⽤sql语句创建最简单的数据库;2、使⽤sql语句创建带条件的数据库,要指定数据⽂件和⽇志⽂件的名称、⼤⼩、最⼤限制和⽂件增长速度;3、为数据库改名;4、向数据库中填加、删除⼀个数据⽂件;5、向数据库中填加⼀个⽇志⽂件;6、修改数据库⽂件的属性:包括⽂件⼤⼩,最⼤限制,增长⽅式等;7、删除数据库;8、在数据库bookborrow中建⽴3个基本表,实现对表的管理。
具体实验内容:1、使⽤sql语句建⽴最简单的数据库sqlcourse;2、使⽤sql语句建⽴数据库school。
包含两个数据库⽂件和⼀个⽇志⽂件,其中主数据⽂件的逻辑名为“school_data”,初始⼤⼩为10MB,最⼤⼤⼩为500MB,设置⽂件⾃动增长,增长⽅式为10%;辅助数据⽂件的逻辑名为“school_data2”,初始⼤⼩为2MB,最⼤⼤⼩为30MB,设置⽂件⾃动增长,增长⽅式为5MB。
⽇志⽂件的所有限制默认。
3、为数据库sqlcourse更名为yangguang。
4、使⽤sql语句在数据库school中添加和删除⼀个数据⽂件。
(1)逻辑名、物理名、初始⼤⼩、最⼤⼤⼩⾃⼰设计,增长按照MB⽅式⾃动增长。
(2)删除数据⽂件“school_data2”。
5、使⽤sql语句在数据库school中添加⼀个⽇志⽂件。
SQL数据库实验报告
一、实验名称:带条件查询二、日期三、实验目的和内容(这是实验报告极其重要的内容。
)1.SQL Server工具的环境和使用;2.利用SELECT语句实现简单的查询需求;3.掌握使用逻辑操作符来抽取基于多个满足条件的记录4.掌握使用范围操作符、列表操作符、模式匹配操作符、为空操作符来抽取满足条件的记录的方法5.掌握使用ORDER BY 从句来以特定的顺序抽取数据的方法6.掌握使用TOP 关键字仅抽取行的前面集合7.掌握使用DISTINCT 关键字消除重复行四、实验过程及结果(给出实验主要的步骤和实验结果,包括算法或代码)1.SELECT EmployeeID,Rate,rank()OVER(ORDER BY Rate desc)AS RANK FROM HumanResources.EmployeePayHistory2.SELECT EmployeeID,Rate,dense_rank()OVER(ORDER BY Rate desc)AS rankFROM HumanResources.EmployeePayHistory3. SELECT Title,convert(char(10),HireDate,2)As'Hire Date'FROM HumanResources.Employee4. SELECT EmployeeID,upper(Title)AsDesignation,datediff(yy,Birthdate,getdate())As AgeFROM HumanResources.Employee WHERE Title='Marketing Manager'OR Title='Marketing Specialist'5.SELECT EmployeeID,EndDate FROM HumanResources.EmployeeDepartmentHistory WHERE EndDate IS NULL6.SELECT EmployeeID,Title,LoginID FROM HumanResources.Employee WHERE Title IN('Recruiter','Stocker')7.SELECT DISTINCT Title FROM AdventureWorks.HumanResources.Employee WHERE Title LIKE'PR%'五、实验体会(包括有疑问的)这次实验,我了解了.SQL Server工具的环境和使用,学习了使用逻辑操作符来抽取基于多个满足条件的记录.,以及使用范围操作符、列表操作符、模式匹配操作符、为空操作符来抽取满足条件的记录的方法使用ORDER BY 从句来以特定的顺序抽取数据的方法等等。
SQL数据库实验报告
SQL数据库实验报告学号:1207300122姓名:罗金雄专业班级:计网121班指导老师:顾平成绩:广西大学2014 数据库原理实验报告实验一 sql server的安装及环境介绍实验目的1. 掌握sql server 服务器的安装方法(安装版本为sql server 2012)。
2. 了解sql server 服务器的环境实验要求1. 完成sql server的安装、启动。
实验内容安装sql server。
实验步骤(1)下载sql server2012集成包并解压,运行后出现“sql server安装中心”。
在左侧的目录树中选择“安装”。
(2)在右侧的选择项中,选择第1项目“全新安装或向现有安装添加功能”,然后就进入了安装程序。
(3)输入产口密钥,许可条款,安装程序支持文件。
(4)接下来,才是正式安装sql server程序。
这个步骤看起来跟刚才在准备过程中的一样,都是扫描本机,防止在安装过程中出现异常。
现在并不是在重复刚才的步骤,从下图明显看出这次扫描的精度更细,扫描的内容也更多。
(5)功能选择。
勾选全部的安装组件,方便以后使用。
(6)实例配置。
我们这里安装一个默认实例。
(7)服务账户配置。
(8)数据库引擎配置。
(9)之后的配置无需改动,一路下一步即可,等待安装成功。
请你练习1. 如果在安装时设置身份验证模式为混合模式,那sql server默认生成的系统管理员账户名是?答:系统管理员账户名sa2. sql server 2008中有哪几种身份验证模式?答:windows身份、sqlserver和windows身份验证模式3.什么是实例、默认实例和命名实例?在一台计算机上是否可以安装多个实例?答:“实例”,就是一个sql server 数据库引擎。
一台计算机上最多只有一个默认实例,也可以没有默认实例,默认实例名与计算机名相同。
“命名实例”就是自己使用这自己命名的事例。
客户端连接命名实例时,必须使用以下计算机名称与命名实例的实例名组合的格式。
数据库sql 实验报告
数据库sql 实验报告数据库SQL 实验报告一、引言数据库是计算机科学中的一个重要概念,它用于存储和管理大量的数据。
SQL (Structured Query Language)是一种用于访问和操作数据库的标准语言。
本实验旨在通过实际操作,加深对数据库和SQL的理解,并掌握基本的SQL语句。
二、实验目的1. 熟悉数据库的基本概念和原理;2. 掌握SQL的基本语法和常用操作;3. 实践数据库设计和数据查询。
三、实验环境本实验使用MySQL数据库管理系统,并在Windows操作系统下进行。
四、实验过程与结果1. 数据库创建和表设计首先,我们创建一个名为"students"的数据库,并在其中创建一个名为"grades"的表。
表中包含学生姓名、学号、科目和成绩等字段。
2. 数据插入接下来,我们向"grades"表中插入一些数据,以模拟学生成绩的记录。
通过使用INSERT INTO语句,我们可以将数据插入到表中。
3. 数据查询在数据库中,查询是最常用的操作之一。
我们可以使用SELECT语句来实现对数据的查询。
例如,我们可以查询某个学生的成绩,或者按照科目进行排序等。
4. 数据更新有时候,我们需要对已有的数据进行更新。
使用UPDATE语句可以实现对表中数据的修改。
例如,我们可以将某个学生的成绩从80分修改为90分。
5. 数据删除当某个数据不再需要时,我们可以使用DELETE语句将其从表中删除。
例如,我们可以删除某个学生的成绩记录。
六、实验总结通过本次实验,我对数据库和SQL有了更深入的理解。
数据库作为存储和管理大量数据的工具,为我们提供了方便快捷的数据操作方式。
SQL作为一种标准语言,具备强大的数据查询、更新和删除功能。
在实验过程中,我学会了创建数据库和表,插入数据,进行数据查询、更新和删除等基本操作。
然而,数据库和SQL的学习仅仅是一个开始。
在实际应用中,我们还需要了解更多高级的数据库概念和技术,如索引、事务处理和数据备份等。
SQL实验9数据库备份
实验五数据库的备份与恢复
一、实验目的
1)掌握数据库的备份及恢复
2)了解数据库的附加和数据的迁移
二、实验要求
根据提示的实验过程进行实验,达到下述目标,并进行调试。
三、实验内容和步骤
Ⅰ)数据库备份还原
1)将tsxt文件还原到所在的计算机。
注意设置恢复目录(d:\tsxtdata)
和恢复数据库名称。
2)将还原回来的数据库备份出去
Ⅱ)数据库附加
1)将数据库的数据文件、日志文件复制到某个目录下保存起来
2)用SSMS删除数据库
3)使用数据库附加功能将数据库恢复回来
Ⅲ)数据导入导出
1)将表student中的数据导入到excel表格中
2)将表student中的数据导入到access中。
数据库sql实验报告
数据库sql实验报告前⾔⼀、课程设计⽬的1.掌握数据库基本原理,理解关系数据库的设计⽅法和设计思路。
2.设计⼀个数据库应⽤系统。
3.完成所设计系统数据库的概念设计、逻辑设计与物理设计。
4.SQL Server2005的操作与使⽤。
5.数据库的建⽴与管理、数据表的建⽴与操作等。
6.SQL查询语⾔的使⽤与编程。
7.培养对所学知识的综合运⽤的能⼒。
⼆、课程设计的基本要求1、构建学⽣信息管理系统后台数据库;2、根据设计任务和基本信息,制定数据库设计实施的实际⽅案;3、进⾏数据库代码的编写、开发,处理中间各个环节过程中遇到的问题,即使修正设计实施⽅案,与项组员积极沟通解决问题;4、解决开发过程中遇到的技术性问题及关键性代码;5、运⾏结果,调试系统。
系统背景资料说明本次数据库实训我们组要完成的是学⽣信息管理系统的后台数据库设计,这是⼀个典型的PPS进存销系统,该系统通⽤性极强,覆盖学⽣的课程、销售、库存、管理等各个环节。
该系统的主要内容是以医药公司的库存管理、销售管理、进货管理、供应商管理、客户管理功能为核⼼。
系统需求分析操作系统:操作系统:Microsoft Windows 2000 Server/NT 及以上版本。
DBMS名称:SQL Sever 2005;DBMS版本:主数据库:数据库名:student;包含⼀个主数据⽂件和⼀个事务⽇志⽂件。
主数据⽂件逻辑名为:student_data,操作系统⽂件名为:student_data.mdf事务⽇志⽂件逻辑名为:student_log,操作系统⽂件名为:student_log.ldf主数据⽂件初始容量⼤⼩为10MB,最⼤容量⽆限制,⽂件增长量为:10%。
事务⽇志⽂件初始容量⼤⼩为10MB,最⼤容量⽆限制,⽂件增长量为:10%。
学⽣表:学⽣(学号、姓名、性别、出⽣⽇期、专业、班级、所属学院)课程表:课程(课程号、课程名、学时、学分)学⽣选修课表:学⽣选修课(学号、课程号、成绩)学⽣德育考评表:学⽣德育考评(学号、德育考评分、智育考评分、体育考评分)学⽣综合评定情况表:学⽣综合评定情况(学号、综合考评分、名次)学⽣表课程表学⽣选修课表学⽣德育考评表学⽣综合评定情况表数据库实现⼀、T-SQL代码1、主数据的创建:create database studenton primary(name=student_data,filename='E:\st\student_data.mdf',size=10MB,maxsize=unlimited,filegrowth=10%)log on(name=student_log,filename='E:\st\student_log.ldf',size=10MB,maxsize=unlimited,filegrowth=10%)go2、表的创建:(1)学⽣表:use studentgocreat table 学⽣(学号 char(12) constraint pk_xs primary key, 姓名 char(8),性别 char(2),出⽣⽇期 datetime,专业 varchar(20) not null,班级 varchar(20)所属学院 varchar(30)Go(2)课程表:use studentgocreate table 课程(课程号 char(4) constraint pk_kc primary key,课程名 char(20) not null,学时 tinyint,学分 smallint)go(3)学⽣选修课表:use studentgocreate table 学⽣选修课(学号 char(12) constraint fk_xsxxkxh references 学⽣(学号),课程号 char(4) constraint fk_xsxxkkch references 课程(课程号), 成绩 tinyint) go(4)学⽣德育考评表:use studentGocreate table 德育考评(学号 char(12) constraint fk_dykpxh reference学⽣(学号),德育考评分 tinyint,体育考评分 tinyint,智育考评分 tinyint)go(5)学⽣综合评定情况表:use studentgocreate table 学⽣综合评定情况(学号 char(12) constraint fk_xszhpdqkxh references 学⽣(学号),综合考评分 tinyint,名次 char(2))go3、⼀班学⽣表视图创建:use studentgocreate view view1asselect dbo.学⽣.学号, dbo.学⽣.姓名, dbo.学⽣.性别, dbo.学⽣.出⽣⽇期, dbo.学⽣.专业, dbo.学⽣.班级, dbo.学⽣.所属学院from dbo.学⽣where (班级='2009级1班')go4、存储名次⼤于等于22名学⽣综合评定情况:use studentgocreate procedure cj_xmasselect 学⽣.学号,姓名,综合考评分,名次from 学⽣,学⽣综合评定情况where 学⽣.学号=学⽣综合评定情况.学号 and 名次>='22'go5、建⽴⼀个名为del_xs的delete触发器use studentgocreate trigger del_xson 学⽣for deleteasdelete 学⽣选修课 where 学号 in (select 学号 from deleted) go⼆、运⾏结果1、按个⼈或者班级查询学⽣的综合考评分及名次:2、查询学⽣的各个部分分数构成情况3、能够对基本数据进⾏修改参考⽂献:《数据库原理与技术》清华⼤学出版社申时凯戴祖诚致谢:感谢王亚宁⽼师的悉⼼指导、感谢⼩组成员的团结奋战.。
数据库SQL实验报告_数据库的基本操作
数据库SQL实验报告_数据库的基本操作一、实验目的本次实验旨在通过实际操作,深入理解和掌握数据库的基本操作,包括创建数据库、创建表、插入数据、查询数据、更新数据和删除数据等,从而提高对数据库管理系统的应用能力和实践操作技能。
二、实验环境本次实验使用的数据库管理系统是 MySQL 80,操作系统为Windows 10。
三、实验内容及步骤(一)创建数据库1、打开 MySQL 命令行客户端,输入以下命令创建一个名为“my_database”的数据库:```sqlCREATE DATABASE my_database;```2、输入以下命令查看已创建的数据库:```sqlSHOW DATABASES;```(二)创建表1、使用以下命令切换到“my_database”数据库:```sqlUSE my_database;```2、创建一个名为“students”的表,包含“id”(整数类型,主键,自增)、“name”(字符串类型,长度为 50)、“age”(整数类型)和“grade”(整数类型)列:```sqlCREATE TABLE students (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50),age INT,grade INT);```1、向“students”表中插入以下数据:```sqlINSERT INTO students (name, age, grade) VALUES ('张三', 20, 80),('李四', 21, 85),('王五', 19, 90);```(四)查询数据1、查询“students”表中的所有数据:```sqlSELECT FROM students;```2、查询年龄大于 20 岁的学生信息:```sqlSELECT FROM students WHERE age > 20;```1、将“张三”的年龄更新为 21 岁:```sqlUPDATE students SET age = 21 WHERE name ='张三';```(六)删除数据1、删除“grade”小于 80 的学生记录:```sqlDELETE FROM students WHERE grade < 80;```四、实验结果(一)创建数据库成功创建了名为“my_database”的数据库,并通过“SHOW DATABASES”命令验证了其存在。
数据库实验三-实验九含参考答案
select max(grade),min(grade),avg(grade) from sc where cno='001' 例 3-7:(分组查询) 求各门课程的平均成绩与总成绩。
select cno,avg(grade),sum(grade) from sc group by cno 例 3-8:(分组查询) 输入以下查询语句并执行,观察出现的其结果并分析其原因。 SELECT SNAME,SDEPT,COUNT(*)FROM STUDENT WHERE SDEPT=’CS’ GROUP BY SDEPT;
选择列表中的列'STUDENT.Sname' 无效,因为该列没有包含在聚合函数或GROUP BY 子句中。
例 3-9:(分组查询) 分析以下语句为什么会出现错误。并给出正确的查询语句。 SELECT SAGE FROM STUDENT GROUP BY SNO;
选择列表中的列'STUDENT.Sage' 无效,因为该列没有包含在聚合函数或GROUP BY 子句中。
实验五:数据查询语言
[ 实验目的 ]
体会 SQL 语言数据查询功能的丰富和复杂。
[ 实验内容 ]
3. SQL 数据查询语句: 例 3-1:(涉及空值查询) 求缺少学习成绩的学生的学号和课程号。 select sno,cno from sc where grade is null 例 3-2:(控制行的显示顺序) 求选修 003 课程或 004 课程的学生的学号、课程号和分数。 select sno,cno,grade from sc where cno in('003','004') order by grade 例 3-3:(组函数) 求学生总人数。
数据库实验报告 SQL语言
数据库原理及实验报告实验6 视图实验目的:1)掌握交互式创建、删除视图的方法2)掌握使用SQL创建、删除视图的方法3)掌握交互式更新视图的方法4)掌握使用SQL更新视图的方法实验内容6.1实验题目:创建视图实验过程:1)交互式创建视图VIEW_S2)交互式创建成绩视图VIEW_SCORETABLE3)使用SQL创建课程表视图VIEW_CTABLE 实验结果:6.2实验题目:修改视图实验过程:1)使用交互式方法把视图VIEW_S 中的字段SNO 删掉2)使用SQL 为视图VIEW_CTABLE 增加一个课时字段CT tiny int 实验结果:6.3实验题目:通过视图修改数据库数据实验过程:1)交互式通过修改视图VIEW_S中的数据来实现对其基本表S中数据的修改2)对视图VIEW_S执行INSERT语句,查看此视图的基本表S中数据的变化3)修改视图VIEW_S的定义,使其包含表S中的主键,再执行插入操作4)用SQL语句对视图VIEW_S执行DELETE操作,查看此视图的基本表S中数据的变化实验结果:6.4实验题目:删除视图实验过程:1)交互式删除视图VIEW_S2)使用SQL删除视图VIEW_CTABLE实验结果:实验7 数据查询实验目的:1,掌握从简单到复杂的各种数据查询。
包括,单表查询、多表连接查询、嵌套查询、集合查询。
2,掌握用条件表达式表示检索结果。
3,掌握用聚合函数计算统计检索结果。
实验7.1 单表查询实验目的:1,掌握指定列或全部列查询。
2,掌握按条件查询。
3,掌握对查询结果排序。
4,掌握使用聚集函数的查询。
5,掌握分组统计查询。
实验内容:1,指定或全部列查询。
2,按条件查询及模糊查询。
3,对查询结果排序。
4,使用聚集函数的查询。
5,分组统计查询。
实验7.2 连接查询实验目的:掌握设计一个以上数据表的查询方法。
多表之间的连接包括等值连接、自然连接、非等值连接、自身连接、自身连接、外连接和复合连接。
sql数据库实验报告
sql数据库实验报告SQL数据库实验报告一、引言SQL(Structured Query Language)是一种用于管理关系型数据库的编程语言。
在本次实验中,我们使用SQL语言进行了数据库的设计、创建和操作,以及对数据库的查询和更新等操作。
本报告将详细介绍实验的目的、设计思路、实验过程和实验结果等内容。
二、实验目的本次实验的主要目的是熟悉SQL语言的使用,掌握数据库的设计和操作技巧。
通过实际操作,加深对数据库原理和相关知识的理解,并能够灵活运用SQL语言进行数据库的管理和操作。
三、实验设计本次实验的数据库设计基于一个图书馆管理系统。
我们需要设计多个表格,包括图书、读者、借阅记录等,并建立相应的关系。
为了实现这一目标,我们采用了以下步骤:1. 创建数据库:首先,我们使用SQL语句创建一个新的数据库,命名为"Library"。
2. 创建表格:接下来,我们根据需求创建了多个表格,包括"Books"、"Readers"和"BorrowRecords"等。
每个表格都有相应的字段,用于存储相关数据。
3. 设计关系:在创建表格的过程中,我们需要考虑不同表格之间的关系。
例如,图书表格和读者表格之间可以建立借阅关系,通过读者ID和图书ID进行关联。
4. 插入数据:创建表格后,我们使用SQL语句向表格中插入测试数据。
这些数据包括图书的名称、作者、出版日期等信息,以及读者的姓名、年龄、性别等信息。
5. 查询和更新:最后,我们使用SQL语句进行数据库的查询和更新操作。
通过编写合适的查询语句,我们可以实现对图书、读者和借阅记录等数据的检索和修改。
四、实验过程在实验过程中,我们按照上述设计思路一步步进行操作。
首先,我们使用SQL 语句创建了一个名为"Library"的数据库。
接着,我们创建了三个表格,分别是"Books"、"Readers"和"BorrowRecords"。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验九数据完整性约束实现
姓名:学号:
专业:网络工程班级: 1
同组人:无实验日期:2012/4/13
【实验目的与要求】
1.熟练掌握实体完整性的实现。
2.熟练掌握参照完整性的实现。
3.熟练掌握域完整性的实现。
【实验内容与步骤】
实验准备:对于CPXS数据库,若在CP表、CPXSB表和XSS表上已有约束,请先删除之。
9.1.实体完整性的实现
(1) 对CP表,定义主键约束(用企业管理器实现)。
写出相应过程:
在cp表上右击鼠标,点击修改,然后选择列名,右击鼠标,点击设置主键。
测试:试着对CP表插入一条与原表中数据行具有相同主键值的数据。
给出测试结果:
(2)对CPXSB表、XSS表,定义主键约束(用SQL语句实现,写出相应语句)。
给出相应的SQL语句:
alter table xss
add constraint xsskey primary key(客户编号);
alter table cpxsb
add constraint cpxsbkey primary key(产品编号,客户编号);
给出测试结果:
9.2.参照完整性的实现
(1)利用企业管理器建立CP表与CPXSB之间的参照关系,当对主表CP表进行更新和删除操作时,从表CPXSB采用NO ACTION方式,写出其过程。
给出相应的过程:
(1)新建数据库关系图,添加cp表和cpxsb表,创建外间关系,将insert和update规范
中的更新规则和删除规则都设置为无操作。
(2)sql语句
alter table cpxsb
add constraint cpxsbkey1 foreign key(产品编号)references cp(产品编号) on delete no action
on update no action;
测试:试着删除主表中与从表有关联的一条记录,而后分别查看主表和从表中数据记录,给出测试结果。
将cp中产品编号为100004的一行删除,提示拒绝删除
(2)利用SQL语句建立CPXSB与XSS表之间的参照关系,当对主表XSS表进行更新和删除操作时,从表CPXSB采用CASCADE(级联)方式,写出其过程。
给出相应的SQL语句:
alter table cpxsb
add constraint cpxsbkey2 foreign key(客户编号)references xss(客户编号) on delete cascade
on update cascade;
测试:试着删除主表中与从表有关联的一条记录,而后分别查看主表和从表中数据记录,给出测试结果。
删除xss表中客户编号为00002的数据,在cpxsb中客户编号为00002的数据也随之删除。
删除客户编号为00002后的xss表。
在xss删除中删除数据后的cpxsb表
思考:外键参照关系中CASCADE(级联)和NO ACTION方式的作用各是什么?
on delete cascade和on update cascade表示当删除和更新主表中的关联数据时,级联删除和更新从表中的相应的元祖。
on delete no action和on update no action表示当删除和更新主表中关联的数据时,造成与从表的数据不一致,而拒绝删除。
9.3.域完整性的实现
1.Unique约束
(1)在CP表的“产品名称”列定义一个唯一约束。
给出相应的SQL语句:
alter table cp
add constraint cp1 unique(产品名称);
测试:试着在在CP表中插入一条具有与原表中某记录相同“产品名称”值的数据。
给出测试结果:
在cp表中插入和MP3产品名称相同的记录。
(2)在CP表的价格列上定义大于等于0的检查(CHECK)约束。
给出相应的SQL语句:
alter table cp
add constraint cp2 check(价格>0);
测试:试着在CP表中插入一条记录,其“价格”字段的值小于0(如: -2),给出测试结果:
在cp表中插入价格为-3的一条记录。
(3)定义一个大于等于5的规则check_kcl,并将其绑定到CP表的库存量列,
给出相应的SQL语句:
alter table cp
add constraint check_kc1 check(库存量>=5);
测试:试着在CP表中插入一条记录,其“库存量”字段的值小于5(如:2),给出测试结果:
在cp表中插入库存量为3的一个记录:
(4)解除(3)中绑定,删除该规则,请写出相关SQL语句。
给出相应的SQL语句和运行结果截图:
alter table cp
drop constraint check_kc1;
测试:试着在CP表中插入一条记录,其“库存量”字段的值小于5(如:2),给出测试结果:
思考:比较(3)和(4)的测试结果,理解自定义完整性(约束)的作用?
数据的完整性是为了防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据,保证了数据的安全性。
9.4.完成以下实验练习
(1) 设定XSS表中的地区值只能是“镇江”,“无锡”,“上海”,“南京”,“厦门”中的任意一个,请问如何解决该问题?请写出一种具体的解决方法。
给出相应的SQL语句:
alter table xss
add constraint xss1 check(地区in('镇江','无锡','上海','南京','厦门测试:试着在XXS表中插入一条记录,其“地区”字段的值为福州。
给出测试结果:
插入地区字段为福州的记录:
(2) 用户要求:在输入XSS表中的数据时,若“地区”列没有提供数据,系统应自动取值“厦门”,请问如何解决该问题?请写出一种具体的解决方法。
给出相应的SQL语句:
alter table xss
add constraint xss2 default('厦门')for地区;
测试:试着在XXS表中插入一条记录,其“地区”字段的值为空。
而后查询插入的数据。
给出测试结果:
插入“地区”字段为空后,表xss显示数据:
(3) 用户要求:CPXSB表中的“数量”列的取值只能为1—20之间的整数,且在用户没有输入数据时自动取值1,请问如何解决该问题?请写出一种具体的解决方法。
给出相应的SQL语句:
alter table cpxsb
add constraint cpxsb1 default('1')for数量
alter table cpxsb
add constraint cpxsb2 check(数量>=1 and数量<=20);
测试:试着在CPXSB表中插入一条记录,其“数量”字段的值为45。
给出测试结果:
第 11 页 共 11
页
测试:试着在CPXSB 表中插入一条记录,其“数量”字段的值为空。
而后查询插入的数据。
给出测试结果:
插入“数量”空字段后,表cpxsb 的数据显示。