`
jilong-liang
  • 浏览: 480527 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类

Oracle安装初始化的几个表脚本

阅读更多
--部门表
--DROP TABLE DEPT;
CREATE TABLE DEPT
(
  DEPTNO NUMBER(2) CONSTRAINT PK_DEPT PRIMARY KEY, --部门编号 主键
  DNAME VARCHAR2(14) ,               --部门名称
  LOC VARCHAR2(13)                 --位置
);

--员工表
--DROP TABLE EMP;
CREATE TABLE EMP
(
  EMPNO NUMBER(4) CONSTRAINT PK_EMP PRIMARY KEY,--员工编号
  ENAME VARCHAR2(10),--员工姓名
  JOB VARCHAR2(9),--工作职位
  MGR NUMBER(4),--上级领导
  HIREDATE DATE,--入职时间
  SAL NUMBER(7,2),--薪水
  COMM NUMBER(7,2),--津贴
  DEPTNO NUMBER(2) CONSTRAINT FK_DEPTNO REFERENCES DEPT  --员工编号
 );
--------------------添加约束---------------------------------
--ALTER TABLE DEPT ADD CONSTRAINT PK_DeptNo PRIMARY KEY (DEPTNO);
--ALTER TABLE EMP ADD CONSTRAINT  FK_DeptNo FOREIGN KEY (DEPTNO) REFERENCES DEPT(DEPTNO);

INSERT INTO DEPT VALUES(10,'ACCOUNTING','NEW YORK');
INSERT INTO DEPT VALUES(20,'RESEARCH','DALLAS');
INSERT INTO DEPT VALUES(30,'SALES','CHICAGO');
INSERT INTO DEPT VALUES(40,'OPERATIONS','BOSTON');

INSERT INTO EMP VALUES(7369,'SMITH','CLERK',7902,to_date('17-12-1980','dd-mm-yyyy'),800,NULL,20);
INSERT INTO EMP VALUES(7499,'ALLEN','SALESMAN',7698,to_date('20-2-1981','dd-mm-yyyy'),1600,300,30);
INSERT INTO EMP VALUES(7521,'WARD','SALESMAN',7698,to_date('22-2-1981','dd-mm-yyyy'),1250,500,30);
INSERT INTO EMP VALUES(7566,'JONES','MANAGER',7839,to_date('2-4-1981','dd-mm-yyyy'),2975,NULL,20);
INSERT INTO EMP VALUES(7654,'MARTIN','SALESMAN',7698,to_date('28-9-1981','dd-mm-yyyy'),1250,1400,30);
INSERT INTO EMP VALUES(7698,'BLAKE','MANAGER',7839,to_date('1-5-1981','dd-mm-yyyy'),2850,NULL,30);
INSERT INTO EMP VALUES(7782,'CLARK','MANAGER',7839,to_date('9-6-1981','dd-mm-yyyy'),2450,NULL,10);
INSERT INTO EMP VALUES(7788,'SCOTT','ANALYST',7566,to_date('13-10-1987','dd-mm-yyyy'),3000,NULL,20);
INSERT INTO EMP VALUES(7839,'KING','PRESIDENT',NULL,to_date('17-11-1981','dd-mm-yyyy'),5000,NULL,10);
INSERT INTO EMP VALUES(7844,'TURNER','SALESMAN',7698,to_date('8-9-1981','dd-mm-yyyy'),1500,0,30);
INSERT INTO EMP VALUES(7876,'ADAMS','CLERK',7788,to_date('13-7-1987','dd-mm-yyyy'),1100,NULL,20);
INSERT INTO EMP VALUES(7900,'JAMES','CLERK',7698,to_date('3-12-1981','dd-mm-yyyy'),950,NULL,30);
INSERT INTO EMP VALUES(7902,'FORD','ANALYST',7566,to_date('3-12-1981','dd-mm-yyyy'),3000,NULL,20);
INSERT INTO EMP VALUES(7934,'MILLER','CLERK',7782,to_date('23-1-1982','dd-mm-yyyy'),1300,NULL,10);
 
--薪水记录信息表
--DROP TABLE SALGRADE; 
CREATE TABLE SALGRADE
( 
  GRADE NUMBER,    --级别
  LOSAL NUMBER,    --最低薪水
  HISAL NUMBER    --最高薪水
);

INSERT INTO SALGRADE VALUES (1,700,1200);
INSERT INTO SALGRADE VALUES (2,1201,1400);
INSERT INTO SALGRADE VALUES (3,1401,2000);
INSERT INTO SALGRADE VALUES (4,2001,3000);
INSERT INTO SALGRADE VALUES (5,3001,9999);
COMMIT;


--红利表
--DROP TABLE BONUS;
CREATE TABLE BONUS
(
  ENAME VARCHAR2(10),
  JOB VARCHAR2(9),
  SAL NUMBER,
  COMM NUMBER
);

--班级表
create table t_classes(
  classes_id number(3),
  classes_name varchar2(30) not null,
  constraint pk_classes_id primary key(classes_id)
);

--学生表
create table t_student(
  student_id number(10),
  student_name varchar2(50) not null,
  sex char(2) not null,
  birthday date not null,
  email varchar2(30) unique,
  classes_id number(3) not null,
  constraint pk_student_id primary key(student_id),
  constraint fk_classes_id foreign key(classes_id) references t_classes(classes_id)
);



--创建序列号
create sequence seq_stuId start with 1 increment by 1;
--查询序列号
select * from user_sequences;

--对学生表添加一个字段
alter table t_student add(contact_tel varchar2(40));

--修改表的字段的长度
alter table t_student modify(student_name varchar2(32)); 

--删除字段
alter table t_student drop (contact_tel);



--索引
--索引的目的是提高查询数据的速度.索引一本书的目录一样,索引的建立原则,比较少的
--DML(insert、update、delete),经常出现在where 语句中的字段

---创建视图
create view v_dept_emp as
select d.dname,d.loc,e.ename,e.job from dept d,emp e where d.deptno=e.deptno; 


create table t_log (
  log_id number(10) primary key,
  log_time date
);
create sequence seq_log_id start with 1 increment by 1;

--建立触发器
create or replace trigger tri_test
after insert on emp		  --每次对emp表插入一条就更新这个t_log表
begin
      insert into t_log(log_id, log_time) values(seq_log_id.nextval, sysdate);
end;
insert into emp (empno, ename) values(9998, 'ls');

/*
 *根据岗位加工资,如果是MANAGER 增加20%的工资,如果是
 *SALESMAN 增加10%的工资,其他的增加5%的工资
 */
create or replace procedure proc_sal
is
cursor c is
       select * from emp for update;
begin
  for v_emp in c loop
    if (v_emp.job = 'MANAGER') then
          update emp set sal = sal + sal*0.2 where current of c;
    elsif (v_emp.job = 'SALESMAN') then
          update emp set sal = sal + sal*0.1 where current of c;
    else
          update emp set sal = sal + sal*0.05 where current of c;
    end if;
  end loop;
commit;
end
--执行存储过程
exec proc_sal;


--查询当前用户有哪些操作对象
select object_name from user_objects; 

---查看当前用户建立了哪些约束
select constraint_name from user_constraints;

--查看当前用户拥有哪些表
select  * from tab;  --select table_name from user_tables;

---分页
select *
from
(
	select rownum r, t.*
	from
	(
		select * from emp
	) t where rownum <=9
) where r > 6;

/*一个完整的select 语句格式如下
	select 字段
	from 表名
	where ……
	group by ……
	having ……
	order by ……
以上语句的执行顺序
	1. 首先执行where 语句过滤原始数据
	2. 执行group by 进行分组
	3. 执行having 对分组数据进行操作
	4. 执行select 选出数据
	5. 执行order by 排序
*/


--查询出员工的名称长度为5的--length
select d.dname from dept d where length(d.dname)=5;

--查询所有以M开头名字的员工
select e.ename from emp e where substr(e.ename,1,1)=upper('m');

select d.deptno,e.deptno from emp e,dept d where d.deptno=e.deptno; --条件连接
select d.deptno,e.deptno from emp e left join dept d on d.deptno=e.deptno; --左连接
select d.deptno,e.deptno from emp e right join dept d on d.deptno=e.deptno; --右连接
select d.deptno,e.deptno from emp e inner join dept d on d.deptno=e.deptno; --内连接
--order by
select d.deptno,e.deptno from dept d ,emp e  where d.deptno=e.deptno order by d.deptno asc ;--asc升序
select d.deptno,e.deptno from dept d ,emp e  where d.deptno=e.deptno order by d.deptno desc ;--desc 降序
select d.deptno from dept d ,emp e  where d.deptno=e.deptno group by d.deptno order by d.deptno desc ;
select e.deptno from dept d ,emp e  where d.deptno=e.deptno group by e.deptno order by e.deptno desc ;
select e.deptno from dept d ,emp e  where d.deptno=e.deptno group by e.deptno having avg(e.sal)>200 order by e.deptno desc ;

select e.job from emp e group by e.job having avg(e.sal)>400 ;
select e.ename from emp e group by e.ename having avg(e.sal)>400 ;  --对那个列分组就查询那个列出来

select to_char(hiredate,'fmyyyy-mm-dd') from emp; --1981-2-20格式化
select to_char(hiredate,'yyyy-mm-dd') from emp; --1981-02-20


delete --删除所有记录,表结构还在,写日志,可以恢复的,速度慢
   |savepoint p;--在删除数据之前创建一个点p,用于回滚你删除的数据
   |delete from 表名; --在删除这个表时,commit命令又无法回滚了
   |rollback to p;    --当你回滚这个点的时候就报你savepoint 'P' never established;	
drop   --删除表的结构和数据
   |drop table  表名
truncate --删除表中的所有记录,表结构还在,不写日志,无法找回删除的记录,速度快。
   |truncate table 表名
   
   
   
SET TIMING ON; --打开显示操作时间的开关,在下面显示查询时间。


select * from t_xiaoxi where rowid in 
( 
 select rid from (
    select rownum rn, rid from(
		select rowid rid, cid from t_xiaoxi order by cid desc
	) where rownum<10000
  ) where rn>9980
) order by cid desc;

 

0
6
分享到:
评论

相关推荐

    深入解析ORACLE初始化

    深入解析Oracle初始化还需要关注以下几个关键知识点: 1. **内存结构**:Oracle的System Global Area (SGA) 和 Program Global Area (PGA) 分别是共享和私有内存区域,它们的大小由初始化参数决定,直接影响性能。 ...

    Oracle 12c 静默安装(脚本自动化).docx

    1. 在初始化 CDB 过程中,如果出现 No options to container mapping specified, no options will be installed in any containers 信息,不是报错。 2. 在 Centos 7.x 系统上测试通过。 3. 如果出现其他问题,请...

    Linux-Oracle安装脚本

    接下来,Oracle数据库的安装通常包括以下几个阶段: 1. 下载Oracle数据库软件:可以是从Oracle官网下载的二进制文件,或者通过yum/dnf仓库安装。 2. 解压和配置:运行解压命令,如`gunzip`和`tar`,将软件解压到...

    jeecms的oracle数据库脚本及初始化数据

    总结,Jeecms的Oracle数据库脚本和初始化数据是系统部署的关键环节,理解其工作原理和执行流程,能有效提高Jeecms的安装效率和系统稳定性。务必谨慎操作,确保每个步骤都准确无误,以便于Jeecms能够顺利运行并提供...

    quartz-2.2.3版本的quartz初始化sql语句

    在Quartz 2.2.3版本中,初始化数据库是使用Quartz的关键步骤,因为Quartz依赖于一个持久化存储来保存作业和触发器的信息。这个过程通常涉及执行一系列SQL语句来创建必要的表结构。 Quartz的初始化SQL语句主要用于...

    jimu_report-oracle.zip

    积木报表与Oracle数据库的集成主要体现在以下几个方面: 1. 数据源连接:积木报表支持Oracle数据库作为数据源,用户需要配置相关的数据库连接信息,包括数据库服务器地址、端口号、数据库服务名、用户名和密码等,...

    Oracle安装配置文档

    首先,Oracle安装通常包括几个主要阶段:环境准备、软件下载、安装过程、配置服务以及最后的验证测试。环境准备至关重要,确保操作系统(如Windows或Linux)满足Oracle的硬件和软件要求,包括内存、磁盘空间、操作...

    oracle服务启动和关闭脚本

    在启动和关闭脚本中,它可能会被用来检查数据库状态或执行特定的初始化和关闭脚本。 8. **数据库启动模式**:Oracle数据库可以以多种模式启动,如nomount、mount和open。nomount模式不加载数据文件,mount模式加载...

    oracle Unix安装指南

    数据库建立完毕后,还需要作为root用户执行一些收尾工作,如确认环境设置正确,创建必要的数据库服务和启动脚本,以及配置初始化参数文件。 总的来说,安装Oracle数据库在Unix系统上是一项繁琐的过程,涉及到多个...

    oracle常用基本命令脚本

    根据提供的文件信息,我们可以归纳总结出以下几个重要的Oracle数据库管理和操作相关的知识点: ### 一、用户管理 #### 1.1 创建用户 ```sql CREATE USER XXX IDENTIFIED BY XXX DEFAULT TABLESPACE tablespaceName...

    Oracle 12C 首次安装

    在首次安装Oracle 12C的过程中,我们需要关注几个关键的步骤和注意事项,确保安装过程顺利进行。 首先,安装前的准备工作至关重要。确保你的系统满足Oracle 12C的硬件和软件要求,特别是操作系统版本。在这个例子中...

    windows 2008 r2安装oracle

    根据提供的日志文件 `%ORACLE_HOME%\cfgtoollogs\dbca\orcl\emConfig.log` 和 trace 文件 `%ORACLE_HOME%\&lt;HOSTNAME&gt;_&lt;SID&gt;\sysman\log\emagent.trc` 可以看出,问题主要集中在以下几个方面: 1. **等待服务启动...

    Linux环境下的oracle安装

    **安装过程**分为几个阶段。首先,使用`runInstaller`脚本启动图形化安装程序,按照提示选择安装类型(如企业版或标准版)、组件、安装路径等。然后,配置数据库实例的参数,如SID(系统标识符)、监听端口、管理...

    安装oracle-19c依赖base.zip

    安装完成后,还需要进行数据库的初始化、网络配置、安全设置等一系列操作,才能使Oracle 19c完全投入生产使用。 总之,"安装oracle-19c依赖 base.zip"是Oracle 19c安装过程中不可或缺的一部分,它确保了系统的软件...

    oracle安装所需rpm安装包

    最后,安装完所有必要的RPM包后,你可以继续进行Oracle数据库的下载、解压、配置和初始化步骤。这通常涉及到创建数据库实例、设置环境变量、配置监听器、创建用户和权限等操作。在这一过程中,遵循Oracle官方文档的...

    ubuntu14、16安装Oracle数据库的详细文档

    安装Oracle数据库可以分为几个主要步骤,首先是系统准备和软件安装,接着是安装Oracle数据库所需依赖包,最后是Oracle数据库的安装。 在系统准备阶段,需要确保服务器满足安装Oracle数据库的系统要求。这包括了安装...

    oracle 10g 安装步骤

    12. **初始化数据库**:安装完成后,还需要对新创建的数据库进行初始化,如创建表空间、数据文件、用户等。这通常通过Oracle Database Configuration Assistant (DBCA) 或手动运行SQL脚本完成。 13. **安全更新注册...

    tsm备份oracle+配置过程和备份脚本

    - 备份脚本需要包含实际执行备份的命令,如“dsmc backup”命令,以及一些用于初始化备份操作的命令。 - 在备份脚本中,还可以设置备份策略,包括备份的开始时间、备份保持的时长以及备份失败时的处理方式等。 - ...

    oracle statspack安装配置

    这通常包括创建Statspack的表空间、存储过程和初始化参数。 3. **创建Statspack概要文件**:概要文件定义了Statspack收集性能数据的频率和其他参数。你可以根据实际需求定制这些设置。 4. **创建Statspack会话**:...

    Oracle 19C安装的补充包 oracle-database-preinstall

    8. **脚本支持**:预安装包通常包含一些初始化脚本,这些脚本在安装过程中会被调用,用于执行上述的各种设置和配置。 9. **离线安装**:对于没有互联网连接或者网络环境受限的环境,预安装包尤其有用。用户可以提前...

Global site tag (gtag.js) - Google Analytics