-本次上机是线上上机, 所有代码在网站编译器完成,不对数据进行保存。

上机环境:SQL Fiddle

时间:2022/3/27

环境调试:

环境选择Oracle,

如果选择MySQL,右侧只能写查询语句,DML无法执行,以下操作将无法进行。

在MySQL的查询面板中不允许DDL和DML语句;只允许使用SELECT语句。将DDL和DML放在模式面板中。

上机题目:

第一题:有下列信息需要管理,请创建表对其进行管理。员工信息(员工编号、员工姓名、
员工性别、员工的 email、员工的电话、员工的工资、员工的职位,员工所在部门。部门信
息(部门编号、部门名称、部门所在地)。工作职位表(职位编号、职位名称、职位描述)。
1. 要求:为表创建必要的主键和外键。
2. 为表创建必要的 check 约束和 not null 约束。
第二题:对建立的表插入如下信息:
员工表:
(0001, 陈火旺,男,huo@163.com,0411-54684521,1200,2001,3001)
(0002, 陈火旺,男,huo@163.com,0411-54644521,1500,2008,3002)
(0003, 赵克佳,女,zkj@163.com,0411-54684891,2400,2007,3003)
部门表:(
3001,计算机系,二教学楼)
3002,机电系,机电楼)
3003,图书馆,图书馆)
职位表:
2001,教师,负责教学科研工作)
2004,保安,负责安全工作)
2007,实验教师,负责实验室管理维护工作)
2008,图书管理员,负责图书馆的管理)
1 将职位表中的职位号是 2008 的行的职位描述更新成“负责图书馆的图书的借阅、图书的整
理”
2 将姓名是‘陈火旺’的员工的工资都更新成 2000。
3 将 0003 号员工的部门编号改为 3004
4 将职位表中编号是 2001 的行编号改成 2009
5 删除员工编号是 0003 的员工信息
6 删除职位编号是 2007 的职位信息

第一题:建表

create table department_message_
(department_id varchar(50) primary key,department_name varchar(50) not null,department_address varchar(50)
);
create table job_
(job_id varchar(20) primary key,job_name varchar(20) not null,job_describe varchar(100)
);
create table employee_message_
(employee_id varchar(10) primary key,employee_name varchar(20) not null, employee_sex varchar(10) not null,employee_email varchar(20) not null,employee_telephone varchar(20) not null,employee_salary number(10) not null check (employee_salary>1000),employee_position varchar(20) not null,employee_department varchar(20) not null,foreign key (employee_department) references department_message_(department_id),foreign key (employee_position) references job_(job_id)
);

第二题:插入(给表赋初值)

DML脚本代码:

#插入部门表
insert
into department_message_(department_id,department_name,department_address)
values('3001','计算机系','二教学楼');
insert
into department_message_(department_id,department_name,department_address)
values('3002','机电系','机电楼');
insert
into department_message_(department_id,department_name,department_address)
values('3003','图书馆','图书馆');#插入职位
insert
into job_(job_id,job_name,job_describe)
values('2001','教师','负责教学科研工作');
insert
into job_(job_id,job_name,job_describe)
values('2004','保安','负责安全工作');
insert
into job_(job_id,job_name,job_describe)
values('2007','实验教师','负责实验室管理维护工作');
insert
into job_(job_id,job_name,job_describe)
values('2008','图书管理员','负责图书馆的管理');#插入员工表insert
into employee_message_(employee_id,employee_name,employee_sex,employee_email,employee_telephone,employee_salary ,employee_position ,employee_department)
values('0001','陈火旺','男','huo@163.com','0411-54684521',1200,'2001','3001');
insert
into employee_message_(employee_id,employee_name,employee_sex,employee_email,employee_telephone,employee_salary ,employee_position ,employee_department)
values('0002', '陈火旺','男','huo@163.com','0411-54644521',1500,'2008','3002');
insert
into employee_message_(employee_id,employee_name,employee_sex,employee_email,employee_telephone,employee_salary ,employee_position ,employee_department)
values('0003', '赵克佳','女','zkj@163.com','0411-54684891',2400,'2007','3003');

#1、将职位表中的职位号是 2008 的行的职位描述更新成“负责图书馆的图书的借阅、图书的整理

update job_
set job_describe = '负责图书馆的图书的借阅、图书的整 理'
where job_id = '2008';

#2、 将姓名是‘陈火旺’的员工的工资都更新成 2000。

update employee_message_
set employee_salary = 2000
where employee_name = '陈火旺';

#3、将 0003 号员工的部门编号改为 3004

update employee_message_
set employee_department = '3004'
where employee_id = '3003';

#4、将职位表中编号是 2001 的行编号改成 2009

update job_
set job_id = '2009'
where job_id = '2001';

#5 删除员工编号是 0003 的员工信息

delete
from employee_message_
where employee_id='0003';

#6 删除职位编号是 2007 的职位信息

delete
from job_
where job_id='2007';

其中,3、4题会报错:

ORA-02292:完整性约束(USER_4_570F7.SYS_C007202)违反-子记录发现。

修改示例:

3题:

alter table department_message_ disable primary key cascade;
update employee_message_
set employee_department = '3004'
where employee_id = '0003';
alter table department_message_ enable primary key;

4题:

alter table job_ disable primary key cascade;
update job_
set job_id = '2009'
where job_id = '2001';
alter table job_ enable primary key;

解决办法:

第一步:让主键失效:alter table table_name disable primary key cascade;

第二步:删除数据:delete table_name;

第三步:让主键生效:alter table table_name enable primary key;

办法采纳自 (1条消息) ORA-02292:integrity constraint(xx) violated - child record found 外键关联,无法删除记录_Rocychen的博客-CSDN博客https://blog.csdn.net/Rocychen/article/details/7756696?locationNum=10&fps=1

数据库上机练习-1-建表相关推荐

  1. SQL数据库实战(含建表数据和查询案例)

    Oracle数据库安装的时候会自带一个练习用数据库(其中包含employee表,后来版本中此表改名为emp): 首先在安装过程中应该有个选项"是否安装实例表"(完全安装模式下默认是 ...

  2. mysql数据库 头像字段_模仿陌陌八张头像的数据库,应该如何建表才合适?

    我想大家都已经看过我以前的问题了.就是吐槽创业好难.自己能力不足,基本上我获得的经验都是segmentfault上面一个个提问得来的.在这里,我要感谢哪些帮助过我的人,不管是多么幼稚的问题都会有人热心 ...

  3. SQL数据库常用约束及建表、插入数据时注意事项

    1.数据库常用约束 primary key --主键约束 foreign key (references) --外键约束 unique --唯一值约束 default --默认值约束 check -- ...

  4. 数据库多对多关系建表

    对于多对多的关系,建表的方式是有两种的,最常见的做法就是建立一张中间关系表b,关联另外两张表a和c的主键,不要其他多余信息,这种做法通常的情况就是a表和c表中的数据不能有重复的,所以我们只能建立单独的 ...

  5. 数据库建表的两种经典方式

    数据库建表的两种方法 准备工作 点击右键新建数据库,输入数据库名称即可! 在这里我们数据库的名称为Students,其余默认即可. (1)如下图所示,Students为建好的数据库,接下来建表. 第一 ...

  6. mysql数据库:最全MySQL数据库设计建库、建表规范及经验(踩过坑才能积累经验!)

    废话 这两天还是在做刚接手的小项目,也是第一次一个人负责整个项目的所有流程,最后交给客户. 当自己去接触项目时,真的会踩很多很多坑,当然解决了就是很大的进步与成长.昨晚我就意识到自己给自己留了一个大坑 ...

  7. ubuntu16.04下mysql建表无法输入中文解决方案

    转载请注明,靴靴ubuntu16.04下mysql建表无法输入中文解决方案_MendyMeng的博客-CSDN博客 考研复试科目有数据库,于是在自己Ubuntu16.04.1环境下面安装了mysql5 ...

  8. SQL Server学习1(建数据库,建表,建约束)

    --建数据库NetBarDB IF exists(select * from sys.sysdatabases where [NAME]='NetBarDB')     drop database N ...

  9. 《数据库概论》实验(2):交互式SQL--创建表《数据库概论》 实验(3)-交互式SQL--简单查询 《数据库概论》实验(4):交互式SQL--复杂查询

    <数据库概论>实验(2):交互式SQL--创建表 一. 创建数据库 create database test;  /创建test数据库 二.创建表 create table student ...

  10. mysql数据库建表失败_mysql数据库文件太大导致建表失败,如何避免

    [求助]mysql数据库文件太大导致建表失败,如何处理? 目录下各文件大小如下: root /mbsc/mysql/data # ll total 120646812 -rw-rw---- 1 mys ...

最新文章

  1. ASP.NET MVC3中Controller与View之间的数据传递总结
  2. 数据结构第二章学习总结
  3. [YTU]_2446( C++习题 输入输出--私有继承)
  4. 笔记-项目整体管理-变更管理-实施整体变更控制
  5. Jquery中获取表单提交时不确认个数元素的个数与值的方法
  6. html dom获得父div,获取元素的父div
  7. hibernate mysql写入中文乱码
  8. hbase shelljava 获取多版本的值
  9. Binder ThreadPoolMax default = 15
  10. hibernate数据类型与OR映射
  11. gitchat 会员值得买么_小米雷军亲自站台,599元的星特朗天文望远镜值得买么?...
  12. ASP.NET操作Word的IIS权限设置
  13. php中类的构造函数和析构函数,php面向对象-构造函数和析构函数详解
  14. SecureCRT 回车按键值修改
  15. 如何从一段视频中一次性修整多个片段
  16. iphone4 通讯录数据库文件!
  17. ArcGIS10.2的详细安装过程和下载方法
  18. LoadRunner执行压力测试
  19. SpringMVC 工作原理了解吗?
  20. 蚂蚁金服一面:十道经典面试题解析

热门文章

  1. 金蝶K3销售订单自动携带客户收货信息并可修改,支持下推关联携带
  2. c#模板保存并读取.mdl文件
  3. 武汉理工大学刷课,刷在线作业程序,做作业脚本
  4. C语言PAT刷题 - 1024 科学计数法
  5. 如何选择合适的代理IP?以下3点需要注意
  6. TortoiseSVN中Branching和Merging实践
  7. Object-C语法
  8. 【评论】第一财经周刊:失败的埃洛普
  9. 华为摄像机搜索软件_华为放大招!概念股掀涨停潮,A股全产业链名单曝光(附名单)...
  10. 《php100 视频教程》笔记心得 张恩民 php100 (张迅雷闪击php系列)