`
tudou721
  • 浏览: 61414 次
  • 性别: Icon_minigender_2
  • 来自: 河南
社区版块
存档分类
最新评论

oracle数据操作语句

阅读更多

--desc 表名 描述表的内容     
desc emp;  
 
--加上数学表达式和列名  ""保持格式  
select ename "name space", sal*12 year_sal from emp;      
 
select 2*3 from dual;  
 
select sysdate from dual;  
 
--空值的数学表达式 结果都是空值  
select ename, sal*12 + comm from emp;     
 
--"||"字符串连接 单引号中的是字符串,字符串中的单引号,''表示  
select ename||sal from emp;       
 
--distinct 修饰两个字段  
select distinct deptno, job from emp;  
 
select ename, sal from emp where sal between 800 and 1500;  
select ename, sal from emp where sal >= 800 and sal <= 1500;  
 
select ename, sal from emp where comm is null;  
 
 
--一个事务开始于一条ddl语句,结束语rollback commit ddl数据定义语句 dcl数据控制语句语句  
--正常断开连接 提交 非正常断开连接 回滚  
 
select ename, sal from emp where sal not in (800 ,1500);  
 
-- 模糊查询  
select ename, sal from emp where ename like '_A%';  
select ename, sal from emp where ename like '%\%%';  
 
--转义字符  
select ename, sal from emp where ename like '%$%%' escape '$';  
 
--排序  
select * from dept order by deptno desc;  
select ename, sal from emp order by deptno asc, ename desc;  
 
--函数  
select lower(ename) from emp;  
select substr(ename,1,3) from emp;  
select round(23.652, 1) from dual;  
select to_char(sal, '$99,999.999') from emp;  
select to_char(sal, 'L000,000.000') from emp;  
select to_char(hiredate, 'yyyy-mm-dd hh:mi:ss') from emp;  
select to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss') from dual;  
select ename, hiredate from emp  
    where hiredate > to_date('1982-09-11 12:44:44', 'YYYY-MM-DD HH24:MI:SS');  
select sal from emp where sal > to_number('$1,250.000', '$9,999.000');  
select ename,sal*12 + nvl(comm, 0) from emp;  
 
--组函数  多行输入,只有一行输出 select ename, max(sal) from emp; 结果不能保证只有一行  
select max(sal) from emp;  
select sum(sal) from emp;  
select count(distinct deptno) from emp;  
 
--分组函数  
select deptno,avg(sal) from emp group by deptno;  
select deptno, job, max(sal) from emp group by deptno, job;  
 
--出现在select后,不是组函数的,必须出现在group by里  
--where语句对单挑记录进行过滤,分组后过滤用having  
 
--子查询 把一次查询结果当成表  
select ename from emp where sal = (select max(sal) from emp);  
select ename, sal from emp  
    join (select max(sal)max_sal, deptno from emp group) t  
    on(t.max_sal = emp.sal and t.deptno = emp.deptno);  
 
--自连接  
select t1.ename, t2.ename from emp t1, emp t2 where t1.mgr = t2.empno;  
 
 
select ename, dname, grade from emp e, dept d, salgrade s where e.deptno = d.deptno and   
 
e.sal between 
s.losal and s.hisal and job <> 'CLERK';  
 
--SQL 1999  链接条件不写在where中,where只负责过滤数据  
select ename, dname from emp cross join dept;  
select ename, dname from emp join dept on (emp.deptno = dept.deptno);  
select ename, dname from emp join dept using (deptno);  
 
select ename, grade from emp e join salgrade s on (e.sal between s.losal and s.hisal);  
select e1.ename, e2.ename from emp e1 join emp e2 on (e1.mgr = e2.empno);  
 
--左外连接  
select e1.ename, e2.ename from emp e1 left join emp e2 on (e1.mgr = e2.empno);  
--右外连接  
select ename, dname from emp e right join dept d on (e.deptno = d.deptno);  
select ename, dname from emp e full outer join dept d on (e.deptno = d.deptno);  
 
--求部门中那些人薪水最高  
select ename, sal  from emp   
join (select deptno, max(sal) max_sal from emp group by deptno) t   
on (emp.sal = t.max_sal and emp.deptno = t.deptno);  
 
--求部门平均薪水的等级  
select deptno, grade from salgrade s   
join (select avg(sal) avg_sal, deptno from emp group by deptno) t   
on (avg_sal between losal and hisal);  
 
--求平均薪水最高的部门的部门标号  
select deptno, avg_sal from 
(select avg(sal) avg_sal, deptno from emp group by deptno)  
where avg_sal =  
(select max(avg(sal)) from emp group by deptno);  
 
--平均薪水的等级最低的部门的部门名称  
select dname, t1.deptno, grade, avg_sal from 
(  select deptno, grade, avg_sal from 
  (select deptno, avg(sal) avg_sal from emp group by deptno) t  
  join salgrade s on (t.avg_sal between s.losal and s.hisal)  
) t1  
join dept on (t1.deptno = dept.deptno)  
where t1.grade =   
(  
  select min(grade) from 
  (  select deptno, grade, avg_sal from 
    (select deptno, avg(sal) avg_sal from emp group by deptno) t  
    join salgrade s on (t.avg_sal between s.losal and s.hisal)  
  )  
)  
 
--建立视图  
create view v$_dept_avg_sal_info as 
select deptno, grade, avg_sal from 
  (select deptno, avg(sal) avg_sal from emp group by deptno) t  
join salgrade s on (t.avg_sal between s.losal and s.hisal);  
 
--变简单了  
select dname, t1.deptno, grade, avg_sal from 
v$_dept_avg_sal_info t1  
join dept on (t1.deptno = dept.deptno)  
where t1.grade =   
(  
  select min(grade) from v$_dept_avg_sal_info  
)  
 
--求部门平均薪水的等级  
select deptno, avg_sal, grade from 
  (select avg(sal) avg_sal, deptno from emp group by deptno)  
join salgrade s  
on (avg_sal between s.losal and s.hisal);  
 
--求部门平均的薪水等级  
select avg(grade), deptno from 
(  
  select deptno, ename, grade from emp  
  join salgrade s  
  on emp.sal between s.losal and s.hisal  
)   
group by deptno  
 
--雇员中有哪些人是经理人  
select ename from emp where empno in 
(select distinct mgr from emp);  
 
--不使用组函数,求薪水的最高值  
select distinct sal from emp where sal not in 
(select distinct e1.sal from emp e1 join emp e2 on (e1.sal < e2.sal));  
 
--平均薪水最高的部门的部门名称  
select dname from dept where deptno =  
(  
  select deptno from 
    (select avg(sal) avg_sal, deptno from emp group by deptno)  
  where avg_sal =  
  (select max(avg_sal) from 
    (select avg(sal) avg_sal, deptno from emp group by deptno)  
  )  
)  
 
--求比普通员工的最高薪水还要高的经理人名称  
select ename from emp   
where empno in (select distinct mgr from emp where mgr is not null) and sal >  
(  
  select max(sal) from emp where empno not in 
  (select distinct mgr from emp where mgr is not null)  
)  
 
--rownum只能和小于等于号联合使用  
--使用rownum 要关联表  
select ename from 
(select rownum r, ename from emp) where r > 10;  
 
--薪水最高的5个人  
select ename, sal from 
(select ename, sal from emp order by sal desc)  
where rownum <= 5;  
 
--薪水最高的第六个到第十个雇员  
select ename, sal from 
  (  
  select ename, sal, rownum r from 
    (select ename, sal from emp order by sal desc)  
  )  
where r >= 6 and r <= 10  
 
 
--SQL面试题  
--找出没选过“黎明”老师的所有学生姓名。   
select sname from s   
join sc on (sc.sno = s.sno)  
join c on (c.cno = s.cno)   
where c.cteacher <> 'liming';  
 
--列出2门以上(含2门)不及格学生姓名及平均成绩。   
select sname where sno in   
  (  
  select sno from sc where scgrade < 60  
  group by sno having count(*) >= 2  
  )  
 
--即学过1号课程有学过2号课所有学生的姓名  
select sno from sc where cno = 1 and sno in 
(  
  select sno from sc where cno = 2  
);  
 
--一个事务开始于一条ddl语句,结束语rollback commit ddl数据定义语句 dcl数据控制语句语句  
--正常断开连接 提交 非正常断开连接 回滚 



Oracle安装完后,其中有一个缺省的数据库,除了这个缺省的数据库外,我们还可以创建自己的数据库。

    对于初学者来说,为了避免麻烦,可以用'Database Configuration Assistant'向导来创建数据库。

    创建完数据库后,并不能立即在数据库中建表,必须先创建该数据库的用户,并且为该用户指定表空间。

    下面是创建数据库用户的具体过程:



    1.假如现在已经建好名为'news'的数据库,此时在F:\oracle\product\10.1.0\oradata\目录下已经存在news目录(注意:我的Oracle10g安装在F:\oracle下,若你的Oracle安装在别的目录,那么你新建的数据库目录就在*\product\10.1.0\oradata\目录下)。



    2.在创建用户之前,先要创建表空间:

    其格式为:格式:  create tablespace 表间名 datafile '数据文件名' size 表空间大小;

    如:

    SQL> create tablespace news_tablespace datafile 'F:\oracle\product\10.1.0\oradata\news\news_data.dbf' size 500M;

    其中'news_tablespace'是你自定义的表空间名称,可以任意取名;'F:\oracle\product\10.1.0\oradata\news\news_data.dbf'是数据文件的存放位置,'news_data.dbf'文件名也是任意取;'size 500M'是指定该数据文件的大小,也就是表空间的大小。



    3.现在建好了名为'news_tablespace'的表空间,下面就可以创建用户了:

    其格式为:格式:  create user  用户名 identified by 密码  default tablespace 表空间表;

    如:

    SQL> create user news identified by news default tablespace news_tablespace;

    默认表空间'default tablespace'使用上面创建的表空间。



    4.接着授权给新建的用户:

    SQL> grant connect,resource to news;  --表示把 connect,resource权限授予news用户

    SQL> grant dba to news;  --表示把 dba权限授予给news用户

    授权成功。

0
0
分享到:
评论

相关推荐

    Oracle导出INSERT语句

    在数据库管理中,有时我们需要将数据从一个环境迁移到另一个环境,或者备份某些表的数据,这时“Oracle导出INSERT语句”的工具就显得非常实用。 这个小工具的核心功能是将Oracle数据库中的数据转换为一系列的INSERT...

    oracle操作数据DML语句.ppt

    DML 语句是 Data Manipulation Language(数据操作语言)的缩写,主要用于对数据库中数据的操作,包括插入、更新和删除数据。 DML 语句的主要特点是可以对数据库中的数据进行增删改查操作。DML 语句可以分为三类:...

    Oracle数据查询语句执行过程分析.pdf

    Oracle 数据查询语句执行过程分析 Oracle 数据库是当前关系型数据库市场的主流产品,广泛应用于各种行业信息化系统。 Oracle 数据查询语句执行过程是了解 Oracle 数据库性能的关键。本文将详细分析 Oracle 数据查询...

    Oracle导出INSERT语句V1.1

    在日常数据库管理和开发过程中,有时我们需要将Oracle数据库中的数据导出为INSERT语句,以便在其他环境或者备份恢复时使用。"Oracle导出INSERT语句V1.1"是一个专门为此目的设计的实用工具。 这个工具的主要功能是...

    oracle常用SQL语句(汇总版).docx

    在本文中,我们将详细介绍 Oracle 中常用的 SQL 语句,包括数据控制语句(DML)、数据定义语句(DDL)和其他相关知识点。 一、数据控制语句(DML) 数据控制语句用于操作数据库中的数据,包括插入、删除、更新等...

    oracle操作数据库语句与数据泵使用

    oracle 用户表空间的创建,数据泵如何导入数据库

    Oracle_基本建表语句-操作语句

    在Oracle数据库管理系统中,建表语句是进行数据存储和管理的基础操作。Oracle支持SQL标准的CREATE TABLE语句,用于创建新的数据库表。本篇将深入探讨Oracle中的基本建表语句及其相关操作。 首先,建表语句的基本...

    Oracle数据库sql语句 跟踪器

    2. **性能指标**:显示每个SQL语句的执行时间、CPU使用率、I/O操作、缓冲区命中率等关键指标,帮助定位性能问题。 3. **等待事件分析**:分析SQL语句等待的事件类型,如 latch、buffer busy waits等,揭示可能导致...

    oracle数据操作和控制语言详解

    "Oracle 数据操作和控制语言详解" 本资源提供了 Oracle 数据操作和控制语言的详细解释,涵盖了 SQL 语言的四大类:数据查询语言 DQL,数据操纵语言 DML,数据定义语言 DDL,数据控制语言 DCL。文章着重介绍了 DML ...

    Oracle Sql语句转换成Mysql Sql语句

    1. **数据类型**:Oracle支持的数据类型如NUMBER、LONG、RAW等在MySQL中可能需要转换为DECIMAL、TEXT或BLOB。例如,Oracle的NUMBER可以转换为MySQL的DECIMAL或FLOAT,LONG可以转换为TEXT。 2. **分页查询**:Oracle...

    Java操作Oracle数据库(建表,插数据,删除)

    插入数据操作 在上面的代码中,我们使用了以下语句来插入数据: ```java String sql = "insert into MYFIRST values('1','liming')"; String sql1 = "insert into MYFIRST values('2','mm')"; ``` 这两个语句使用了...

    oracle数据库常用操作语句

    以下是一些Oracle数据库的常用操作语句及其详细解释: 1. **查看帮助信息**: - `help show`:显示特定命令的帮助信息。 - `show all`:列出所有系统变量的当前值。 2. **查看系统状态**: - `show user`:显示...

    压测Oracle的SQL语句的性能情况

    文件名"Oracle_Sqltest"可能包含了各种用于测试的SQL语句,这些语句可能是常见的查询、插入、更新或删除操作,也可能包括复杂的联接、子查询和聚合函数,这些都是性能测试中的常见场景。 在进行Oracle SQL语句的...

    oracle的SQL语句的一些经验总结

    3. **连接(JOIN)操作**:当需要从多个表中获取数据时,JOIN语句至关重要。INNER JOIN返回两个表中匹配的行,LEFT JOIN返回左表的所有行和右表匹配的行,RIGHT JOIN反之,FULL JOIN返回两个表的所有行。 4. **子...

    Oracle数据控制语句详解

    Oracle 数据控制语句详解 在 Oracle 数据库管理系统中,SQL 语言主要分为四大部分:数据查询语言(DQL)、数据操纵语言(DML)、数据定义语言(DDL)以及数据控制语言(DCL)。本篇文章主要关注的是 DML 和 DCL ...

    通过xlrd读取excel生成oracle的建表语句

    在IT行业中,数据管理和操作是至关重要的任务,尤其是在大型企业或组织中,Oracle数据库系统因其高效、稳定和可扩展性而被广泛采用。本话题主要关注如何利用Python的xlrd库来读取Excel文件,并根据其中的数据生成...

    Oracle基本sql语句

    Oracle数据库是全球最广泛使用的数据库管理系统之一,它遵循SQL标准,提供了一套强大的SQL语句,使得数据库操作变得高效和灵活。在Oracle数据库中,SQL语句是与数据库进行交互的主要方式。本文将总结一些Oracle基本...

    Oracle恢复误删除数据,解除锁定的等SQL语句

    在日常操作中,有时可能会发生误操作,如误删除数据或锁定问题,本篇文章将详细讲解如何在Oracle中恢复误删除数据以及解锁相关操作。 1. **恢复误删除数据** 当你不小心删除了数据库表中的数据时,Oracle提供了一...

    Oracle查询语句大全-精华版

    查询数据文件的大小是使用 Oracle 的一个基本操作,使用以下语句可以查询数据文件的大小: select tablespace_name from user_tables where table_name='TEST'; 二十二、快速备份表 快速备份表是使用 Oracle 的一...

Global site tag (gtag.js) - Google Analytics