西北工业大学计算机学院数据库原理实验报告(不含第八次大作业)
1
一、实验指导书实验内容 1.利用SQL语句创建、修改、删除数据库 2.利用SQL语句创建表 3.利用集成管理器输入数据 4.利用SQL语句创建索引 5. 利用SQL语句删除索引 二、课内思考题: 1、为什么建议创建数据库文件时路径设置为C以外的其他硬盘分区,并且增加文件夹名? C盘是系统盘,一般用于存储或安装系统,C盘对本地硬盘的但操作系统很重要,所以存放数据尽量不要放在C盘,增加文件夹名是易于区分和查找。 2、mdf、ndf和ldf文件分别有什么作用?创建数据库至少需要哪几个文件? mdf:包含数据库的启动信息,并用于存储数据,每个数据库都有一个主要数据文件。 ndf:数据大小超过主要文件的大小时,需要用到ndf存储。 ldf:包含用于恢复数据库的日志信息,每个数据库都必须至少有一个日志文件。 创建数据库至少需要mdf和ldf这两个文件 3、分离数据库时需要注意什么问题? 分离数据库时,如果有用户与数据库连接,在“状态”列显示“未就绪”,此时分离数据库会操作失败。所以要分离数据库先要结束那些正在使用数据库的进程。 实验反思:输入错误是最低级且容易犯的错误,
2022-09-29 19:04:17 801KB 数据库
1
一、实验指导书实验内容 1.利用SQL语句条件查询 (1)查询person表中00102部门的女员工的信息 (2)查询000001员工的基本工资增长1.5倍后实际收入 (3)查询市场部所有员工姓名和2005年1月工资明细 (4)查询2005年1月比00102部门的所有员工实发工资都高的员工基本信息 (5)在基表person、pay、dept基础上创建员工工资视图view_pay,其中包括年份、月份、工号、姓名、性别、职称、部门名称、基本工资、奖金、扣除、实发工资字段 二、课内思考题: 思考题: (1)view_person与person有什么不同?有什么实用意义? view_person只可查看,不可修改,可以简化用户的操作,使用户能以多种角度看待同一数据,对重构数据库提供了一定程度的逻辑独立性,可以更清晰的表达查询。 (2)view_pay与pay有什么不同?有什么实用意义? view_pay是person、pay、dept表的笛卡尔乘积,可以简化用户的操作,使用户能以多种角度看待同一数据,对重构数据库提供了一定程度的逻辑独立性,可以更清晰的表达查询。 (3)如果
2022-09-29 19:04:16 6.38MB 数据库
1
课堂任务: 1.利用SQL语句向表person、pay、dept中插入数据 反思:插入多行时可在Values后多组数据用逗号分隔 2.将pay表中的工号为000006的员工的基本工资增加为1850 3.利用SQL语句更新视图 要求:将员工视图view_person中的姓名为罗玮的员工职称修改为高级 4.利用SQL语句向视图插入数据 要求:向员工视图view_person插入数据('000010','柳芸','女',NULL,'00103') 思考: (1)将市场部员工的基本工资增加200元。 (2)删除实发工资低于2500元的员工信息。如果能删除是否合理? 不合理,因为没有对月份进行区分,一月二月有的员工其中一个月实发工资超过了2500,但是信息也被删除。且person表中已经没有员工信息,pay表还在对对应的员工发工资。 (3)测试修改view_person的数据是否影响p
2022-09-29 19:04:15 702KB 数据库
1
课内任务: 1.利用T-SQL语句 创建、删除主键,将表pay的列No、Year、Month联合定义为主键 2.利用T-SQL语句创建、删除唯一约束,删除dept表的部门名称列上的唯一约束 3.测试强制表间引用完整性,测试对主表进行插入、更新及删除操作时的影响,将表dept中的部门代号‘00101’改为‘00108’,测试是否影响从表 失败(UPDATE 语句与 REFERENCE 约束"FK__person__DeptNo__2B0A656D"冲突) 验证结果:未完成主表dept更新操作,影响从表person,因为如果修改了主表dept的DeptNo,会破坏参照完整性,从表person失去参照) 4. 测试对从表进行插入、更新及删除操作时的影响,将表pay中的工号‘000002’改为‘000020’,测试是否违背参照完整性 失败(UPDATE 语句与 FOREIGN KEY 约束"fk_no"冲突) 验证结果:未完成从表pay更新操作,修改从表的No,不是从主表person参照所得,违背了参照完整性 5.设置并测试级联引用,将表dept中的部门代号‘00101’改为‘
2022-09-29 19:04:15 711KB 数据库
1
课内任务: 1. 在person表上创建一个触发器,当修改表person中的员工工号时,级联修改表pay中该员工的工号信息。 2.在pay表上创建一个触发器,当向该表插入数据时,必须参考表person中的No。 思考题: 1、第(4)小题请采用instead of 触发器,测试时注意要把触发事件(此题是insert操作)写在触发体中。 2、说明上面例子中使用instead of和用for触发器时进行编码的主要区别。 Instead of触发器用来代替通常的触发动作,即当对表进行INSERT、UPDATE 或 DELETE 操作时,系统不是直接对表执行这些操作,而是把操作内容交给触发器,让触发器检查所进行的操作是否正确,如果正确才进行相应的操作。因此,INSTEAD OF 触发器的动作要早于表的约束处理。 for触发器只能是在执行
2022-09-29 19:04:14 1.23MB 数据库
1
一、课堂任务 1.固定数据库角色管理:将guest06用户添加到pay数据库的db_owner角色中。 2.对象授权:授权用户guest05对表person进行查询和更新数据操作,然后授权Managers对表pay进行查询和插入操作。 思考题:请完成测试部分, 1、实验指导书5的测试,请用表格展示。 (1)访问数据库
2022-09-29 19:04:13 2.92MB 数据库
1
一、课堂任务 关键代码: 1.HelloWorld.java: ① // 创建菜单栏,添加“系统”菜单、“数据操作”菜单 menubar = new JMenuBar(); menubar.add(menu1); menubar.add(menu2); ② //按钮b2添加图片,美化界面 b2=new JButton(new ImageIcon("ico\\WRITER.jpg")); b2.setIcon(new ImageIcon("ico\\WRITER.jpg")); 2.loginframe.java: ① // 添加“用户名”、“密码”,使用标签,和文本框、密码框(隐藏文本字段区域中的字符) cont.add(new JLabel("username")); username = new JTextField(10); cont.add(username); cont.add(new JLabel("password")); // JPasswordField()括号内设置密码长度限制 password = ne
2022-09-29 19:04:12 4.47MB 数据库
1
一、课堂任务 1.运行结果: 思考题: 1、你的数据库名和sa密码是什么?请截取连接数据库需要修改部分的代码 数据库名:pay0304,sa密码:123456 2、哪些语句影响了显示的表格中的标题?请截取关键代码并加注释 3、哪些语句影响了表格中的数据?请截取关键代码并加注释 二、课外任务 ★完成指导书85页的练习(2.登录要增加权限的单选按钮) 1. 在pay0304数据库中创建表user0 2.完善登陆界面loginframe.java. 要求:登陆时,输入的用户名、密码与数据库中user0表的某行信息一致时,方登陆成功。 ★修改所有数据显示的表的标题,显示为中文 ★★创建view_personDp,将person表中的DeptNo换为DeptName,然后再实现对view_personDp的查询。 ★★界面中增加文本框和查询按钮,输入部门编号,根据输入的部门编号点击查询,则在窗口中显示该部门所有员工信息。
2022-09-29 19:04:11 635KB 数据库
1
数据库系统概论 王珊 全部的实验sql脚本.标准答案,值得学习!
2022-09-28 11:26:27 53KB sql
1