Oracle(三)

原创 2012年03月21日 22:42:19

31.SQL语句的类型;

DML(Data Manipulation Language 数据操作语言): select update insert delete

DDL(Data Definition Language 数据定义语言):  create table,alter table, drop table, create user

DCL(Data Control Language 数据控制语言): commit rollback

32.read only oracle 自己实现的事务,支持规范中的两种,默认为read commit

33.  隐式插入空值

显式插入空值

insert into emp(empno,ename,sal,deptno) values(1002,'Mike',null,10);

34. 地址符 &

insert into emp(empno,ename,sal,deptno) values(&empno,&ename,&sal,&deptno);

可以字符忘记加引号

insert into emp(empno,ename,sal,deptno) values(&empno,'&ename',&sal,&deptno);

也可以是表

select * from &a;

35.根据一个表创建另一个表

   create table emp10 as select * from emp where 1=2; 此时只创建表结构

一次性将emp10号部门的员工插入到emp10

insert into emp10 select * from emp where deptno=10;

36. 子查询实现一次插入多条记录(DML语句均可嵌套子查询)

create table emp20 as select empno,ename,sal from emp where 1=2;

37. deletetruncate的区别:

delete逐条删除;truncate摧毁,再重建

delete会产生碎片;truncate不会

 delete不会释放空间;truncate

delete可以闪回;truncate不可以

oracle deletetruncate 效率高

38. set feedback off 关闭提示

39set feedback off 开启显示sql执行的时间

40. Oracle中的事务:

             事务的起始标志:DML语句为起始标志(自动开启事务)

             事务的结束标志:提交:显式提交:commit

                      隐式提交: DDL,exit(正常退出)

                 回滚: 显式回滚:rollback

                       隐式回滚:宕机,掉电,非正常退出

      savepoint a ;设置保存点

      rollback to savepoint a; 回滚到保存点

41. rowid:行地址:行数据在磁盘上地址

              select rowid,empno,ename from emp;

42. 使用子查询创建表

        create table empincome

        as

        select empno,ename,sal,sal*12 annlsal,sal*12+nvl(comm,0) total from emp;

43    create table empincome2

        empno,ename,sal,annlsal,total)

        as

        select empno,ename,sal,sal*12,sal*12+nvl(comm,0) from emp;

44. 追加新列,修改列 删除列 重命名列

alter table test2 modify tname varchar2(30);

alter table test2 drop column image;

alter table test2 rename column tname to username;

45. 删除表

drop table EMPINCOME2; 并没有真正删除,还在回收站(只有普通用户才有回收站)

查看回收站

show recyclebin

清空回收站

purge recyclebin

彻底删除表

drop table empincome purge;

46.check约束

          create table test4

          (tid number,

          tname varchar2(20),

          gender varchar2(4) check (gender in ('','')))

47.给约束取名:有助于找错

   create table myperson

   (personID varchar2(18) constraint myperson_PK primary key,

   name     varchar2(20) constraint myperson_name not null,

   gender   varchar2(4)  constraint myperson_gender check (gender in ('','')),

   email    varchar2(40) constraint myperson_email_U unique

                          constraint myperson_email_N not null,

  deptno   number constraint myperson_FK references dept(deptno) ON DELETE CASCADE);

48.视图:

  create view empincomeview

  as

  select empno,ename,sal,sal*12 annlsal,sal*12+nvl(comm,0) total from emp;

create view empincomeview

49.序列:

create sequence myseq;

insert into testseq values(myseq.nextval,'aaa');

 50.索引:通过索引可以将不连续的数据看成连续的

        create index myindex on emp(deptno);

 51. 同义词:

        create synonym hremp for hr.employees;

create synonym hremp for hr.employees

三表关联查询、更新

查询语句 select issue.id,issue.area,issue.insert_uid,`user`.school_id,school.`name`,school.area as area...
  • u011781769
  • u011781769
  • 2015年02月04日 16:46
  • 776

三表左外连接的实例

String hql="select js_product_warehouse.c_id,js_product_warehouse.c_product_id,js_product_warehouse....
  • wangdianyong
  • wangdianyong
  • 2015年03月09日 17:11
  • 1344

三表联合查询的sql语句

String sql = "select DISTINCT T.SEGMENTID ,S.SEGMENT_NAME,R.ROAD_NAME " + "from DIM_BAYONET_DETECTO...
  • kccacmilan
  • kccacmilan
  • 2012年12月28日 10:41
  • 634

Oracle的存储的三大物理文件

一、控制文件(Control File):保存有关数据库的结构信息!    控制文件是一个小型的二进制文件,可以记录数据库的物理结构。包括:     * 数据库名称     * 数据文件和日志文件的名...
  • hhb200766
  • hhb200766
  • 2010年05月14日 14:06
  • 3619

Oracle 启动的三个步骤

Oracle 数据库的启动需要三个步骤,当我们直接输入Startup进行启动时,实际上数据库已经隐含的将三个步骤一起执行。 而实际上,Oracle的启动过程包括了启动例程,装载数据库,打开数据库。每...
  • li21wei
  • li21wei
  • 2011年05月25日 04:43
  • 3379

Oracle的三大范式

目前,数据库的范式主要分为6种:第一范式,第二范式,第三范式,BC范式(巴斯-科德范式),第四范式和第五范式。 第一范式: 关系模型的所有属性都是不可分割的基本数据项,即每个属性都只包含单一的值。...
  • Evan_QB
  • Evan_QB
  • 2017年06月01日 19:42
  • 804

Oracle条件分支语句和循环语句举例

--流程控制 --条件分支 BEGIN IF 2 = 2 THEN dbms_output.put_line('aaa'); END IF; END; BEGIN IF 1 = ...
  • xm393392625
  • xm393392625
  • 2018年01月23日 09:35
  • 27

Oracle的索引(3) 索引再好,不用也是白搭

抛开前面所说的,假设你设置了一个非常好的索引,任何傻瓜都知道应该使用它,但是Oracle 却偏偏不用,那么,需要做的第一件事情,是审视你的 sql 语句。   Oracle 要使用一个索引,有一些最基...
  • CSKnight
  • CSKnight
  • 2007年04月18日 13:10
  • 603

oracle的Top-N获取数据结合的前n条记录,如(价格排行前三的水果信息)

水果表:CREATE TABLE fruits (   f_id  char(3),     s_id  number(4),   f_name varchar2(20),   f_pric...
  • u011768325
  • u011768325
  • 2014年08月06日 23:57
  • 810

oracle 3个实用统计sql场景

我们使用oracle做一些统计的时候,时常碰到如下场景: 1.竖列转横列 2.分组并合并某列作为结果集 3.分组排序取首条记录   我们使用一个简化的业务场景,来展示这三个场景如何使用sql...
  • HUXU981598436
  • HUXU981598436
  • 2014年07月27日 03:40
  • 1304
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Oracle(三)
举报原因:
原因补充:

(最多只允许输入30个字)