`
whoosh
  • 浏览: 233783 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

Oracle SQL语句实例

阅读更多

alter user scott account unlock;--给用户解锁
connect sys/bjsxt as sysdba; --以系统超级管理员登陆
drop user liuchao cascade; --删除用户liuchao
exp -- 导出用户的相应信息
create user liuchao identified by liuchao default tablespace users quota 10M on users--  用户名是liuchao密码也是liuchao
																	--默认的表空间是users大小为10M
grant create session, create table, create view to liuchao; --create session 是登陆的权限。
imp --导入数据用的


/**
 * 第一大类:select语句
 */
desc emp;--描述表emp
select ename from emp where rownum<=5; --在Oracle取数据的时候,其实尾部都带了一行rownum
select enanem from (select rownum r, ename from emp) where r>10; --当用大于号的时候,只能这么操作,直接向上面那样操作不行。
select ename, sal*12 from emp;
select 2*3 from emp; -- 表里面有多少行就显示多少行
desc dual;
select 2*3 from dual;-- 只有一个结果
select sysdate from dual;--显示系统时间
select ename, sal*12 annual_sal from emp;--起个别名,annual_sal中间不能有空格,如果想有空格先用" "套起来。
					 					 --加双引号还有个作用,可以区分大小写。不加的话都会转换为大写。
select ename, sal*12+comm from emp;--任何含有空值的数学表达式,最后结果都是空值。
select ename, sal*12+nvl(comm,0) from emp;--处理掉空值
select ename || 'asdfgg' from emp;--在sql语句中连接字符串都用 || 符号。
select ename || 'asd''fgg' from emp;--可以用两个单引号代表一个单引号。
select ename, sal, comm from emp where comm is null;--对于空值的处理不能用=符号,而要用is。
select ename, sal, comm from emp where comm is not null;
select ename, sal, comm from emp where sal in(800, 1500, 2000);--in 语句:取其中的一个值
select ename, sal, comm from emp where ename in('SMITH', 'KING', 'ABC');--in 语句也可对字符串进行操作
select ename, sal, hiredate from emp where hiredate > '20-2月-81';--必须按照相关的格式,但是年份可写成'20-2月-1981'
select ename from emp where ename like "_A%";--_代表一个字母,%代表多个字母
select ename from emp where ename like "%\%";--使用转义字符来处理特殊符号。
select ename from emp where ename like "%$%" escape '$';--可以自己指定转义字符。
--常用的单行函数upper() lower() 
select substr(ename,2,3) from emp; --从第二个字符开始截取,一共截取三个字符。
select chr(65) from dual; --将一个数字转换为相对应的字母。
select ascii('A') from dual; --将一个字母转换为ASCII码。
select round(23.652) from dual; --四舍五入,24
select round(23.652,2) from dual; --四舍五入到小数点后面二位,23.65
select round(23.652,-1) from dual; --20
select to_char(sal,'$99,999.9999') from emp; --转换格式
select to_char(sal,'L99,999.9999') from emp; --L代表本地货币,8111会转换为¥8,111,0000
select to_char(sal,'L00,000.0000') from emp; --L代表本地货币,8111会转换为¥08,111,0000
select to_char(hiredae,'YYYY-MM-DD HH:MI:SS') from emp; --这个比较重要
select to_char(hiredae,'YYYY-MM-DD HH24:MI:SS') from emp; --24进制的小时
select ename, hiredate, from emp where hiredate > to_date('1981-2-20 12:34:56','YYYY-MM-DD HH24:MI:SS');
select sal from emp where sal>to_number('$1,250.00','$9.999.99');
--常用的组函数AVG() 	MIN() MAX() 组函数很重要,比单行函数重要。
select count(*) from emp; --查询表里面有多少条记录。
select count(distinct deptno) from emp; --有多少个唯一的单独的部门编号。
select e1.ename ,e2.ename from emp e1, emp e2 where e1.mgr = e2.empno; --自连接 sql1992的标准
select e1.ename ,e2.ename from emp e2 join emp e2 on (e1.mgr=e2.empno);--自连接 sql1999的标准
select ename, dname from emp cross join dept; --交叉连接,笛卡尔积
grant create table, create view to scott; --给用户权限。
create view v$_count as select count(distinct deptno) from emp; --创建视图。
--视图就是一个子查询或者一张表,只不过这是一张虚表。

/**
 * 第二大类:DML语句:insert update delete
 */
create table emp2 as select * from emp; --备份 emp 表
update emp2 set sal=sal*2, ename=ename || '-' where deptno=10; --update语句
delete from emp2; -- 删除整个表的数据。
delete from emp2 where ename='aaa'; -- 删除某几行。

--transaction(DML语句会产生)自动提交: 当用户正常断开连接的时候,遇到DDL(create table)语句 或者 DCL(grant user)的时候。
--varchar2:没有长度限制 char:定长,定长字符串效率更高一点,但是会浪费空间。很多的算法比如说Hashtale就是拿空间换时间。
--long也是变长的,最大的字节数可以达到两个G,VARCHAR2最多可以规定到4K也就是4096。

--五个约束条件:非空,唯一,主键,Check,缺省。约束在数据库里面也是一种对象,我们可以给他起名字,如果不给他起,数据库会默认产生一个名字。
create table stu(
	id number(6),
	name varchar2(20) constraint stu_name_nn not null,--字段级的约束
	sex number(1),
	age number(3),
	sdate date,
	grade number(2) default 1,
	class number(4) references class(id),--外键约束被参考的字段必须是主键
	email varchar2(50),
	constraint stu_name_email_uni unique(email,name)-- 表级约束,对好几个字段的合集加约束。email 和 name 两个字段合起来需要是唯一的。
)

--ID比Email更适合做主键,ID是数字类型,email是字符串类型,当你建一个主键的时候会随着主键建立一个索引,索引对数字的查询速度更快。
--语法上来说主键约束相当于非空和唯一约束的组合,在逻辑意义上代表着单独的每条记录。
--check约束用的并不是很多,大多数时候我们写数据校验是在java程序里面。

--alter table 语句对于程序员来说用的并不多,对于数据库管理员用的很多
alter table stu add(addr varchar2(100));
alter table stu drop addr;
alter table stu modify(addr varchar2(90));--修改精度
alter table stu drop constraint stu_class_fk;

drop table stu;--删除一张表

/**
 *下面查出来的叫做数据字典表
 */
select table_name from user_tables;--查询当前用户目录下有哪些表
select view_name from user_views;--查询当前用户目录下有哪些表
select constraints_name from user_constraints; 
select constraints_name,table_name from user_constraints; 

--ORACLE存储了所有数据字典表的表
desc dictionary;

create index idx_stu_email on stu(email);--建立索引
drop inext idx_stu_email;

/**
 * 当我们对某张表加了主键约束或者唯一约束,Oracle会帮你给这两个字段加索引。
 * 索引的作用:为某个字段建立索引之后,别人去访问某个字段的数据时,效率会更高。
 * 但是建立索引之后向某个字段插入或者更改数据的效率会变低:
 * 因为插入数据的同时还要向索引表插数据。
 * 所以不要轻易建立索引,一般是某个字段访问速度很慢的时候。
 * 
 * 视图的作用:1、简化我们的查询,但是会增加我们维护的支出。
 *            2、给一些第三方的客户看产品信息,屏蔽了一些关键信息。
 * 				  比方说更改了某张表结构,那视图也得跟着改。
 * 视图可以用来更新数据,但是我们很少这么去用他。
 */

create sequence seq;
insert into article values(seq.nextval,'a','b');--自动递增
分享到:
评论
1 楼 小建枫叶 2011-07-20  
好,正需要这些。

相关推荐

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

    本文将深入探讨如何利用压力测试工具来评估和优化Oracle数据库中的SQL语句性能。 标题"压测Oracle的SQL语句的性能情况"暗示了我们关注的是在高负载情况下,Oracle数据库处理SQL查询的能力。压力测试(Pressure ...

    oracle 查询语句实例

    在这个"oracle查询语句实例"的压缩包中,你将找到一系列实用的查询示例,帮助你深入理解和熟练掌握Oracle SQL的用法。 1. **基础查询** - `SELECT`语句:用于从表中检索数据,基本格式是`SELECT column1, column2 ...

    Oracle SQL语句跟踪

    Oracle SQL语句跟踪是数据库管理员和开发人员在优化SQL性能、定位问题或调试查询时常用的一种技术。在Oracle数据库系统中,SQL语句跟踪能够帮助我们收集关于SQL执行的详细信息,包括执行计划、资源消耗、等待事件等...

    sql语句实例(Oracle SqlServer)

    【SQL语句实例详解】 ...理解并熟练掌握这些SQL语句实例,可以帮助你更好地在Oracle和SqlServer数据库中执行各种数据操作。在实际工作中,你可以根据具体需求灵活运用这些语句,提升数据库管理和数据处理的效率。

    学生成绩管理系统Oracle全部SQL语句.txt

    (1)选定某一主题,创建一个oracle数据库,对其进行日常管理及应用(全部用SQL语句实现): 1、创建数据库实例,数据库表空间,创建管理员,普通用户,并分别授予相应权限; 2、至少建立5个表,以及表间关系,使用...

    oracle sql语句详解

    在算术运算符方面,文档提到了加(+)、减(-)、乘(*)、除(/)四种基本运算符,并通过实例说明如何在SQL语句中使用它们。例如,在SELECT语句中可以直接进行简单的数学运算。 文档进一步介绍了SQL语句中运算符的...

    oracle pl sql 实例精解 源代码

    本资料集是"Oracle PL/SQL实例精解",提供了丰富的源代码示例,帮助读者深入理解和应用这一技术。 首先,我们来看End_of_Chapter_Exercises.zip,这可能包含了每个章节结束时的练习题或项目。这些练习通常设计得...

    oracle常用监控SQL语句集合

    在Oracle数据库管理中,了解和掌握一些常用的监控SQL语句是至关重要的,这些语句能够帮助DBA(数据库管理员)实时了解数据库的运行状态、性能瓶颈以及资源使用情况。"oracle常用监控SQL语句集合"提供了这样的工具集...

    oracle sql语句优化

    Oracle SQL语句优化是数据库管理中的重要环节,它涉及到如何高效地执行SQL查询,从而提高数据库性能和响应速度。在Oracle数据库系统中,SQL优化主要包括以下几个方面: 1. **优化器(Optimizer)**:优化器是Oracle...

    ORACLE_SQLDeveloper使用教程

    本文详细介绍了如何使用 Oracle SQL Developer 和其他开发工具,包括 Oracle Database Home Page 的使用方法、如何在 Oracle 中使用 SQL*Plus、如何使用 SQL Developer 操作 Oracle 数据库以及如何执行 SQL 语句等...

    Oracle PL/SQL 实例精解(第4版涵盖Oracle 11g)+源码脚本

    在"Oracle PL/SQL 实例精解(第4版涵盖Oracle 11g)+源码脚本"中,读者可以深入理解PL/SQL的各种概念和实践技巧。 本书详细讲解了Oracle 11g版本中的PL/SQL语言,这涵盖了从基础语法到高级特性的广泛范围。PL/SQL是...

    ORACLESQL性能优化.pptx

    通过对 SQL 语句执行的过程、Oracle 优化器、表之间的关联、如何得到 SQL 执行计划、如何分析执行计划等内容的讨论,可以逐步掌握 SQL 优化的过程。 在 SQL 优化过程中,需要了解性能管理、性能问题、调整的方法、...

    Oracle PL/SQL实例精解 数据库建立代码

    在"Oracle PL/SQL实例精解 数据库建立代码"中,我们将深入探讨如何在Oracle数据库中使用PL/SQL来构建一个名为"student"的模式,这包括创建数据库对象如表、索引,以及填充样本数据。 首先,"student"模式可能包含一...

    《精通Oracle SQL 第2版》PDF版本下载.txt

    Oracle SQL不仅支持标准SQL语句,还提供了许多扩展功能,使其成为处理复杂数据查询的强大工具。 ### 《精通Oracle SQL 第2版》书籍概述 《精通Oracle SQL 第2版》是一本全面介绍Oracle SQL的高级指南,适合已经...

    Oracle SQL优化实例讲解.pdf

    V$SQL视图提供了当前数据库实例中所有SQL语句的统计信息。通过分析该视图中的数据,可以获得执行效率低下SQL语句的详细信息,便于优化。 10. 基于成本的优化CBO 成本基础优化器(CBO)是Oracle SQL优化器的一种,它...

    Oracle使用SQL语句创建用户及表空间

    Oracle使用SQL语句创建用户和表空间,比进EM创建更方便,更好控制,特别是对于不是自己创建的实例,对服务器也没有取得完全控制权的时候很方便。

    oracle语句实例教程

    【Oracle语句实例教程】是针对Oracle 10g数据库初学者的一份详细教程,旨在帮助读者掌握SQL的基础知识和应用。SQL(Structured Query Language)是用于管理关系数据库的标准语言,具有广泛的应用和通用性。Oracle...

    oracle SQL讲义

    1. **SQLPLUS**:SQLPLUS是Oracle提供的一种命令行接口,用于执行SQL语句和PL/SQL块。它可以用来连接到Oracle数据库,执行查询,以及进行各种数据库管理任务。 - **常规登录**:通过输入`sqlplus`后跟空格,然后是...

Global site tag (gtag.js) - Google Analytics