`
繁华依旧
  • 浏览: 1799 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

常用Oracle语句集合

阅读更多

博客新开,闲来无事,总结一下常用sql语句,做数据仓储的别喷.

-Oracle 基本管理语句

conn scott/scott;

show user; --查看用户

set linesize 300; --设置每行显示字数

set pagesize 100; --设置每页显示行数

set timing on;--还有set timing off 显示完成命令需要的时间

select sysdate from dual; --显示系统时间oracle时间的格式为 23-7月 -10

select * from tab; --显示所有的表

desc emp; --显示表的结构

disc;--退出窗口exit
 

 

 

-Oracle 基本sql 和函数

select distinct job from emp; --用于返回唯一不同的值"distinct"

select distinct job,deptno from emp; -- 有两列以上只需在第一个字段后跟","第二个字段就ok了

select * from emp where (sal>800 and sal<2000) and (job='CLERK' or deptno=20);

--"where","<",">","and","or"地球人都知道

select * from emp order by job ; --order by 语句用于根据指定的列对结果集进行排序

select * from emp order by job asc,sal desc; --默认的是升序"asc",如果要倒序用关键字"desc"

select * from emp order by sal,job; --上下两个不一样

select * from (select rownum rn,emp.*  from emp where rownum < 10) where rn>5

--oracle中的rownum时能用"<"来定义用子查询分页,sqlserver用top,mysql用limit

select * from emp where job like 'A%'; --like的用法,注意通配符'%,_'的区别和用法

select * from emp where sal in (3000,800,1500); --in的用法,多说一句in后的()中看以跟一个字段的子查询

select * from emp where sal between 800 and 2500; --between的用法,800-2500之间是带上800和2500的

select * from emp where sal not between 800 and 2500; --not between的用法;

select * from emp,dept where emp.deptno = dept.deptno; -- 多表连接 等价于 iner join;

select * from emp inner join dept on emp.deptno = dept.deptno; --inner join 如果表中有至少一个匹配,则返回行

select * from emp left join dept on emp.deptno = dept.deptno;  --left join: 即使右表中没有匹配,也从左表返回所有的行

select * from emp ,dept where emp.deptno = dept.deptno(+); --(+)是Oracle特有的符号,(+)定义在那个表中,另一张表为基表.

select * from emp right join dept on emp.deptno = dept.deptno; --right join: 即使左表中没有匹配,也从右表返回所有的行

select * from emp ,dept where emp.deptno(+) = dept.deptno; --不用多少和上面的效果一样.

select * from emp full join dept on emp.deptno = dept.deptno;  --full join: 只要其中一个表中存在匹配,就返回行

select * from emp union select * from emp; --union操作符用于合并两个或多个select语句的结果集

select * from emp union all select * from emp; -- union all 不合并重复项;

select empno,ename,(sal+nvl(comm,0))*13 年薪 from emp; --nvl()如果为空,就设为0,此函数每一个数据库不一样.

select avg(sal) ,min(sal) ,max(sal) ,sum(sal) ,count(*) from emp;--avg平均,min最小,max最大,sum求和,count统计

select avg(sal) ,min(sal) themin,max(sal) ,sum(sal), count(*) ct from emp group by job having count(*)>2;

--group by having 不能使用别名,因为sql从左向右执行,编译器并不知道ct是什么.

select length(job) from emp; --字符长度.

select upper(lower(job)) from emp; --lower转小写,upper转大写

select initcap(lower(job)) from emp; --initcap首字母大写
 

 

- 用户的管理(1)

conn sys/sys as sysdba; --连接数据库

create user xiaoming identified by xiaoming; --创建用户(需要权限)

passw xiaoming; --修改用户密码()   

grant connect to xiaoming;

--把"connect"的角色授予xiaoming(其他角色例如:dba(系统管理员),resource(可以在表空间建立表))

grant resource to xiaoming; --授权建立表的权利

grant resource to xiaoming with admin option;-- 授权权限的传递(系统权限加with admin option)

grant all on scott.emp to xiaoming ; --对表进行授权(有多种种权限select insert update delete all)

grant all on scott.emp to xiaoming with grant option; --授权对象的传递(对象权限加with grant option)
 

 

- 表数据管理

conn xiaoming; --连接到xiaoming

create table test (id varchar(30), name varchar(30)); --创建一个test表

insert into test values('1002','xiaoming'); --向表中插一个数据

create table emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) as (select * from scott.emp);

--拷贝一个表,或者就是create table emp as (select * from scott.emp);

insert into test (select empno,ename from emp); --向表中插入一个查询结果,没有values

insert into emp (empno,ename) values (1001,'xiaoming'); --增加一条数据

delete from emp where sal>2500; --删除满足某个条件的表中的数据

update emp set empno=1009, deptno=90 where empno =1001; --通用sql语句

update emp set (job,mgr,sal)=(select job,mgr,sal from emp where empno=7934) where empno=1009;      

--Oracle特有的语句

drop table test; --删除一个test表;
 

 

- 用户管理(2)

conn sys/sys as sysdba; --登录

create profile lock_one limit failed_login_attempts 3 password_lock_time 2; --创建一个profile "lock_one"

alter user xiaoming profile lock_one; --更改用户,将lock_on 概要文件加载到xiaoming上。

alter user xiaoming account unlock; --解锁用户

alter user xiaoming account lock; --锁定用户

drop profile lock_one cascade; --删除一个profile,如果profile已经被分配到用户上注意加上cascade

revoke resource from xiaoming; --回收系统权限,系统权限不会被回收.(对象权限级联,系统权限不级联)

revoke connect from xiaoming; --回收系统权限,系统权限不会被回收.(对象权限级联,系统权限不级联)

revoke all on emp from xiaoming;

--收回xiaoming对emp的对象权限(回收xiaoming的权利,xiaoming授权出去的对象权限都会被收回)  

drop user xiaoming cascade; --删除一个对象

exit; --关闭窗口
 

 

 

 

 

 

 

 

 

 

 

 

 

 

1
2
分享到:
评论

相关推荐

    整合的ORACLE最常用的语句集合

    自己受益最大的语句集合。在每次面试前看看,数据库的问题不在话下了!!!!!!!!!!!!!!!!

    Oracle数据库维护常用SQL语句集合(3)-PLSQL

    Oracle数据库维护常用SQL语句集合(3)-PLSQL

    oracle常用监控SQL语句集合

    "oracle常用监控SQL语句集合"提供了这样的工具集,旨在帮助用户解决在编写Oracle SQL语句时遇到的问题。 1. **V$视图**: Oracle提供了大量的动态性能视图(如V$SESSION, V$INSTANCE, V$PROCESS等),它们提供了...

    Oracle数据库维护常用SQL语句集合

    13. **存储过程和函数**:存储过程是预编译的SQL语句集合,可封装复杂的业务逻辑。函数则返回一个值,常用于查询中。 14. **权限管理**:Oracle提供GRANT和REVOKE语句来控制用户对数据库对象的访问权限。 15. **...

    oracle常用的语句集合

    根据提供的文件信息,我们可以整理出一系列Oracle数据库中的常用语句及其功能说明。下面将详细介绍这些语句,并解释其用途及应用场景。 ### 1. 查询Oracle参数设置 - **语句**: - `select value from v$parameter...

    oracle性能监控常用语句集合

    本资料集包含了Oracle性能监控的一些常用语句,旨在帮助用户更好地理解和优化数据库性能。以下是这些语句的主要类别及其详解: 1. **V$视图查询**: Oracle提供了大量的动态性能视图(V$视图),通过查询它们可以...

    oracle常用查询语句示例

    本篇文章将基于"oracle常用查询语句示例"这一主题,深入探讨在Oracle中执行多表查询和单表中复杂查询的方法。 首先,我们来看单表查询。在Oracle中,基础的SELECT语句用于从单个表中检索数据。例如: ```sql ...

    Oracle常用sql语句整理.zip

    - 存储过程是预编译的SQL语句集合,可封装复杂业务逻辑。 12. **触发器(TRIGGER)** - 触发器自动执行特定事件(如INSERT、UPDATE、DELETE)时的代码。 13. **分区表(PARTITIONING)** - 大表可以通过分区...

    Oracle常用SQL语句复习

    - 存储过程是预编译的SQL语句集合,可以封装复杂的业务逻辑。`CREATE PROCEDURE proc_name (...) AS ... BEGIN ... END;` - 函数是返回值的存储过程,如`CREATE FUNCTION func_name (...) RETURN datatype AS ... ...

    Oracle数据库常用sql语句的分类和常用函数.docx

    根据提供的文档信息,本文将详细解析Oracle数据库中的关键SQL语句分类、常用SQL语句以及Oracle函数的应用场景。此外,还将简要介绍Oracle数据库的一些基本管理命令,如启动与关闭服务、用户管理等。 ### 一、Oracle...

    oracle sql语句学习

    2. 存储过程和函数:预编译的SQL语句集合,可包含流程控制逻辑,提高代码复用和性能。 3. 触发器:在特定数据库事件发生时自动执行的代码。 4. 分区表和物化视图:用于大数据管理和快速查询。 5. 面向对象的特性...

    oracle常用监控SQL语句集合.rar

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,对于DBA和开发人员来说,了解并掌握一些常用的监控SQL语句是十分必要的。这些语句可以帮助我们实时了解数据库的运行状态,及时发现并解决性能问题。以下...

    常用SQL语句oracle

    ### 常用Oracle SQL语句详解 在Oracle数据库管理中,熟练掌握SQL语句是进行数据查询、分析和管理的基础。以下是从标题、描述、标签以及部分内容中提炼出的关键SQL知识点,涵盖了一系列用于Oracle数据库的基本操作...

    Oracle数据库常用语句实例和经典面试题总结

    这份资料是关于Oracle数据库常用语句的实例和经典面试题的总结,旨在帮助学习者巩固基础,提升技能。 一、数据查询 在Oracle中,基本的数据查询语句是SELECT,它用于从表中获取数据。例如: ```sql SELECT column1...

    oracle 常用sql语句和常见问题

    本资料集主要涵盖了Oracle中的常用SQL语句以及在实际应用中可能遇到的常见问题及其解决策略。 1. **SQL基本操作**: - **SELECT语句**:用于从表中选择数据。例如,`SELECT * FROM table_name;` 将获取表中的所有...

    oracle常用sql查询语句部分集合

    提供oracle 对emp表的查询,多表连接查询,复杂查询。

    Oracle常用函数集合

    以下是对"Oracle常用函数集合"的详细解析: 1. **数值函数**:Oracle提供了多种处理数字的函数,如`ROUND()`用于四舍五入,`TRUNC()`用于截断小数,`MOD()`计算余数,`DECODE()`用于条件判断,以及`POWER()`和`SQRT...

    oracle10g常用查询语句

    ### Oracle 10g常用查询语句 #### 1. 查询当前用户 `select user from dual;` 此查询语句用于获取当前连接数据库的用户名。`dual`表是一个特殊表,每个Oracle数据库都包含它,主要用于执行简单的计算或返回单行...

Global site tag (gtag.js) - Google Analytics