--部门表 --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;
相关推荐
深入解析Oracle初始化还需要关注以下几个关键知识点: 1. **内存结构**:Oracle的System Global Area (SGA) 和 Program Global Area (PGA) 分别是共享和私有内存区域,它们的大小由初始化参数决定,直接影响性能。 ...
1. 在初始化 CDB 过程中,如果出现 No options to container mapping specified, no options will be installed in any containers 信息,不是报错。 2. 在 Centos 7.x 系统上测试通过。 3. 如果出现其他问题,请...
接下来,Oracle数据库的安装通常包括以下几个阶段: 1. 下载Oracle数据库软件:可以是从Oracle官网下载的二进制文件,或者通过yum/dnf仓库安装。 2. 解压和配置:运行解压命令,如`gunzip`和`tar`,将软件解压到...
总结,Jeecms的Oracle数据库脚本和初始化数据是系统部署的关键环节,理解其工作原理和执行流程,能有效提高Jeecms的安装效率和系统稳定性。务必谨慎操作,确保每个步骤都准确无误,以便于Jeecms能够顺利运行并提供...
在Quartz 2.2.3版本中,初始化数据库是使用Quartz的关键步骤,因为Quartz依赖于一个持久化存储来保存作业和触发器的信息。这个过程通常涉及执行一系列SQL语句来创建必要的表结构。 Quartz的初始化SQL语句主要用于...
积木报表与Oracle数据库的集成主要体现在以下几个方面: 1. 数据源连接:积木报表支持Oracle数据库作为数据源,用户需要配置相关的数据库连接信息,包括数据库服务器地址、端口号、数据库服务名、用户名和密码等,...
首先,Oracle安装通常包括几个主要阶段:环境准备、软件下载、安装过程、配置服务以及最后的验证测试。环境准备至关重要,确保操作系统(如Windows或Linux)满足Oracle的硬件和软件要求,包括内存、磁盘空间、操作...
在启动和关闭脚本中,它可能会被用来检查数据库状态或执行特定的初始化和关闭脚本。 8. **数据库启动模式**:Oracle数据库可以以多种模式启动,如nomount、mount和open。nomount模式不加载数据文件,mount模式加载...
数据库建立完毕后,还需要作为root用户执行一些收尾工作,如确认环境设置正确,创建必要的数据库服务和启动脚本,以及配置初始化参数文件。 总的来说,安装Oracle数据库在Unix系统上是一项繁琐的过程,涉及到多个...
根据提供的文件信息,我们可以归纳总结出以下几个重要的Oracle数据库管理和操作相关的知识点: ### 一、用户管理 #### 1.1 创建用户 ```sql CREATE USER XXX IDENTIFIED BY XXX DEFAULT TABLESPACE tablespaceName...
在首次安装Oracle 12C的过程中,我们需要关注几个关键的步骤和注意事项,确保安装过程顺利进行。 首先,安装前的准备工作至关重要。确保你的系统满足Oracle 12C的硬件和软件要求,特别是操作系统版本。在这个例子中...
根据提供的日志文件 `%ORACLE_HOME%\cfgtoollogs\dbca\orcl\emConfig.log` 和 trace 文件 `%ORACLE_HOME%\<HOSTNAME>_<SID>\sysman\log\emagent.trc` 可以看出,问题主要集中在以下几个方面: 1. **等待服务启动...
**安装过程**分为几个阶段。首先,使用`runInstaller`脚本启动图形化安装程序,按照提示选择安装类型(如企业版或标准版)、组件、安装路径等。然后,配置数据库实例的参数,如SID(系统标识符)、监听端口、管理...
安装完成后,还需要进行数据库的初始化、网络配置、安全设置等一系列操作,才能使Oracle 19c完全投入生产使用。 总之,"安装oracle-19c依赖 base.zip"是Oracle 19c安装过程中不可或缺的一部分,它确保了系统的软件...
最后,安装完所有必要的RPM包后,你可以继续进行Oracle数据库的下载、解压、配置和初始化步骤。这通常涉及到创建数据库实例、设置环境变量、配置监听器、创建用户和权限等操作。在这一过程中,遵循Oracle官方文档的...
安装Oracle数据库可以分为几个主要步骤,首先是系统准备和软件安装,接着是安装Oracle数据库所需依赖包,最后是Oracle数据库的安装。 在系统准备阶段,需要确保服务器满足安装Oracle数据库的系统要求。这包括了安装...
12. **初始化数据库**:安装完成后,还需要对新创建的数据库进行初始化,如创建表空间、数据文件、用户等。这通常通过Oracle Database Configuration Assistant (DBCA) 或手动运行SQL脚本完成。 13. **安全更新注册...
这通常包括创建Statspack的表空间、存储过程和初始化参数。 3. **创建Statspack概要文件**:概要文件定义了Statspack收集性能数据的频率和其他参数。你可以根据实际需求定制这些设置。 4. **创建Statspack会话**:...
8. **脚本支持**:预安装包通常包含一些初始化脚本,这些脚本在安装过程中会被调用,用于执行上述的各种设置和配置。 9. **离线安装**:对于没有互联网连接或者网络环境受限的环境,预安装包尤其有用。用户可以提前...
安装完所需软件包后,还需要关注其他几个关键的系统配置,例如: 1. **硬件兼容性**:确保你的硬件与Oracle 10g兼容,可能需要调整CPU架构或内存设置。 2. **用户和组**:创建专门用于Oracle的用户(如oracle)和组...