加入收藏 | 设为首页 | 会员中心 | 我要投稿 广西网 (https://www.guangxiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

Oracle和Mysql数据库技术

发布时间:2020-12-31 04:16:18 所属栏目:站长百科 来源:网络整理
导读:1.查资料,回答下面问题: a.Oracle公司的诞生和发展 (1)1977年程序员埃里森和另外两名程序员创建了软件开发实验室(Software Development Laboratories)。 (2)1970年IBM的一名研究人员写了一篇名为《大型共享数据库的关系数据模型》的论文,埃里森3人受到这


所谓笛卡尔积,通俗点说就是指两个集合中任意取出两个元素所构成的组合的集合。假设R中有元组M个,S中有元组N个,则R和S的笛卡尔积中包含的元组数量就是M*N.这个规则可以向多个关系扩展。
所有表连接方式都会先生成临时笛卡尔积表,表示两个表中的每一行数据任意组合。在实际应用中,笛卡尔积本身大多没有实际用处,只有在两个表连接时加上限制条件,才会有实际意义。


24.【上机】完成下面的sql语句,练习表连接,并截图表示出结果。


1.求部门平均薪水的等级
select deptno,salgradewhere 部门平均薪水 between losal and hisal;
2.求平均薪水的等级最低的部门名称
select * from (select deptno,salgrade
where 部门平均薪水 between losal and hisal) t where grade=(select min(grade) from (select deptno,salgrade
where 部门平均薪水 between losal and hisal) );
3.求部门经理人中平均薪水最低的部门名称
select t.* from (select t.*,avg(sal) 经理人平均薪水 from emp where job=‘MANAGER‘ group by deptno) t,salgrade where 经理人平均薪水 between losal and hisal) t where grade=(select min(grade) from (select deptno,avg(sal) 经理人平均薪水 from emp where job=‘MANAGER‘ group by deptno));
4.求薪水最高的前5名雇员
select t.*,rownum from (select rownum,sal from emp order by sal desc) t where rownum<=5;
5.求薪水最高的第6到第10名雇员
select ename,sal from emp order by sal desc) t) ab where rn>5 and rn<=10;


25.Oracle中, union和minus的作用。


Union: 是将两个或者两个以上的结果集合并在一起;
Minus: 是从一个结果集中减去一部分结果集。


26.Oracle中, union、 minus和intersect?的作用。


27.【上机】Oracle中,用minus的办法求薪水最高的第6到第10名雇员。


select * from ((select ename,rownum from (select ename,rownum as rn from emp order by sal desc) t where rownum<=10)
minus
(select ename,rownum as rn2 fromemp order by sal desc) d where rownum<=5))
order by sal desc;


28.【上机】使用create table empCopy as Select * from emp;复制一张新表出来。


29.【上机】为新表增加记录,测试一下。


insert into empCopy values (7787,‘amenda‘,‘secretary‘,7788,to_date(‘1988/04/08‘,‘YYYY/MM/DD‘),3000,1500,10);


30.【上机】将新表中所有人的薪水翻番。


update empCopy set sal=sal*2;


31.【上机】将表中薪水大于5000的人全部删掉。


delete empCopy where sal>5000;


32.truncate和delete有什么区别?


TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:
二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。
TRUNCATE TABLE:删除内容不删除定义,释放空间。
DELETE TABLE:删除内容不删除定义,不释放空间。


33.【上机】练习使用DML语句,完成如下一系列操作:


a)创建班级表:
id为主键
班级名称
班级成立时间
班级毕业时间
班级所在教室
create table sclass(
classid number not null primary key,
classname varchar(50) not null,
classstarttime date not null,
classgraduatetime date not null,
classroom varchar(50)not null
)
b)创建学生表:
建立一张用来存储学生信息的表,表中的字段包含了学生的学号、姓名、年龄、入学日期、年级、班级、email等信息,并且为grade指定了默认值为1,如果在插入数据时不指定grade得值,就代表是一年级的学生.
姓名不能为空。
email必须唯一,不能重复。
id为主键
classId作为外键关联到班级表的主键上。
create table STUDENT
(
STUID NUMBER not null,
SNAME VARCHAR2(20) not null,
AGE NUMBER,
SEX VARCHAR2(2),
ENTERDATE DATE,
CLASSID NUMBER,
GRADE VARCHAR2(50) default 1,
EMAIL VARCHAR2(50)
)

alter table STUDENT
add constraint PK_STUID primary key (STUID)


alter table STUDENT
add constraint UNIQUE_EMAIL unique (EMAIL)
alter table STUDENT
add constraint FK_CLASSID foreign key (CLASSID)
references CLASSGROUP (CLASSID);
c)增加2个班级
insert into sclass values(1,‘百合班‘,to_date(‘2009/08/08‘,to_date(‘2012/08/08‘,‘101‘);
insert into sclass values(2,‘牵牛花班‘,to_date(‘2010/08/08‘,to_date(‘2013/08/08‘,‘202‘);
d)增加4个学生,并且每个学生都放到相应班级里面
举例:
insert into student values(9,‘赵照‘,22,‘男‘,to_date(‘2010/08/09‘,1,‘[email?protected]‘);
insert into student values(10,‘孙黎‘,22,‘[email?protected]‘);
e)如何删除其中某个班级
(1)先要解除学生表中对班级的外键约束:
alter table STUDENT1
drop constraint FK_CLASSID1
(2)删除某个班级,如:
delete sclass where classid=1;
f)为班级表增加新的字段:教室地址
alter table sclass
add address varchar(50)
g)删除学生表
drop table student


34.什么是事务?为什么需要事务?(查资料说明)


事务是指作为单个逻辑工作单元执行的一组相关操作,这些操作要求全部完成或者全部不完成。事务使使数据库从一种状态变换成为另一种状态,是数据库所特有的。
使用事务的原因:保证数据的安全有效。


35.说出事务的特点?


事务的特性有四个:简称ACID即
 1、原子性(Atomic):事务中所有数据的修改,要么全部执行,要么全部不执行。
2、一致性(Consistence):事务完成时,要使所有的数据都保持一致的状态,换言之:通过事务进行的所有数据修改,必须在所有相关的表中得到反映。
3、隔离性(Isolation):事务应该在另一个事务对数据的修改前或者修改后进行访问。
4、持久性(Durability):保证事务对数据库的修改是持久有效的,即使发生系统故障, 也不应该丢失。


36.一个事务,什么时候开启?什么时候结束?

?

Oracle的事务开始于一个DML(数据库管理语句,如:create、drop、rename、alter)语句。

当以下情况发生时,事务结束:

1、COMMIT/ROLLBACK

2、执行了DDL(数据库定义语句)/DCL(数据库控制语句)语句

3、客户端主动断开数据库的连接(DISCONNECT)

4、数据库关闭(宕机)

另外,一个DDL/DCL语句实际上就是一个事务,其中隐含了COMMIT。

Oracle不需要特别的去指定事务的开始和结束。一个事务的结束就是下一个事务的开始。


37.回退后,是不是指回退到事务执行前数据库的状态?

(编辑:广西网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!