oracle SQL命令大全

delete 删除一张大表时空间不释放,非常慢是因为占用大量的系统资源,支持回退操作,空间还被这张表占用着。
truncate table 表名 (删除表中记录时释放表空间)
DML 语句:
表级共享锁: 对于操作一张表中的不同记录时,互不影响
行级排它锁:对于一行记录,oracle 会只允许只有一个用户对它在同一时间进行修改操作
wait() 等到行级锁被释放,才进行数据操作
drop一张表时也会对表加锁,DDL排它锁,所以在删除一张表时如果当前还有用户操作表时不能删除表
alter table 命令用于修改表的结构(这些命令不会经常用):
增加约束:
alter table 表名 add constraint  约束名 primary key (字段);
解除约束:(删除约束)
alter table 表名 drop primary key(对于主键约束可以直接用此方法,因为一张表中只有一个主键约束名, 注意如果主键此时还有其它表引用时删除主键时会出错)
alter tbale father drop primary key cascade ; (如果有子表引用主键时,要用此语法来删除主键,这时子表还存在只是子表中的外键约束被及联删除了)
alter table 表名 drop constraint 约束名;
(怎样取一个约束名:1、人为的违反约束规定根据错误信息获取!
2、查询示图获取约束名!)
alter table 表名 disable from primary key ; (相当于把一个表的主键禁用)
alter table 表名 enable primary key ;(enable 时会自动去检查表的记录是不是符合要求,如果有脏数据时必须要先删除脏数据才可以 enable)

*******************************************************************
增加字段:
alter table   表名   add(字段字 字段类型)
删除字段:
alter table   表名 drop(字段)
alter tbale 表名 drop column 字段 ; (8i 以后才支持)
给列改名:920才支持
alter table 表名 rename column 旧字段名 to 新字段名;
修改字段
(此时应注意的问题,更改时要看具体值情况之间的转达换, 改为字符类型时,必须要为空)
alter table  表名 modify( 字段,类型)
更改表中的字段:
update 表名 set 字段 = 值 where 条件
更改表名
rename 旧表名 to    新表名 ;
删除表:
trucate table 表名:(表结构还在,数据全部删除,释放表所占的空间,不支持回退,常用删除大表)

关于oralce中产生序列(sequence):
create sequence 序列名alter system flush shared_pool;
(不带参数时默认为从1 开始每次递增 1,oracle中为了提高产生序列的效率一般一次性产生20个序列放入当前会话的序列池中备用以加快效率,序列会出现不连续的动作回退操作不会影响序列取值)
sequence 的参数:
increment by n 起始值, start with n 递增量, maxvalue n 最大值, minvalue n 最小值,cycle | no cycle 轮回, cache n 绶存(第一次取时会一次取多少个id存起来)
查看 sequence 示图:
desc user_sequences ;
select sequence_name , cache_size , last_number from user_sequences where sequence_name like 's_';
select 序列名.currval from dual 查看当前的序列数
select 序列名.nextval from dual 查看下一个序列数,它会自动给当前的序列加1
为列:nextval currval
(开另一个session时取当前值不成功时,应该先取下一个值,再取当前值)
清空当前会话的内存:
alter system flush shared_pool;(执行此命令要有DBA权限,一般用户执行出错)
修改序列:(此命令不常用,只需了解就行不必深究)
alter sequence 序列名 修改项;
删除序列sequence
drop sequence 序列名;
创建示图: creating views(属于了解知识)
desc user_views;
select text from user_views where view_name='TEST1_V1' ;
示图就相当于一条select 语句,定义了一个示图就是定义了一个sql语句,示图不占空间,使用view 不会提高性能,但是能简单化sql语句
(扩展知识: oracle 8i 以后的新示图)MV 物化视图(占存储空间,把select 结果存在一个空间,会提高查询视图,增强实时性,但是存在刷新问题, 主要应用在数据仓库中用要用于聚合表)
使用示图的好处:控制数据访问权限.
如何创建一个示图:
create or replace views test_vi as select * from test1 where c1=1;
此时往表test1(base table 基表)中插入数据时:表中没能变化,示图中的数据发生改变
从示图中插数据时相对应的表会发生改变:
往示图中插数据时,会直接插进基表中,查看示图中的数据时,相当于就是执行创建时的select语句。
简单示图:能进行DML操作。
复杂示图:来源于多张表,不能执行DML操作。
关于rownum:
rownum 有个特点要么等于1 要么小于某个值, 不能直接等于某个值, 不能大于某个值。rownum常用于分页显示。
练习:查询出第5条数据和第10条数据之间:
select first_name , rnum from ( select rownum rnum , first_name from s_emp where rownum <=10 ) where rnum between 5 and 10 ;
分面显示:
SELECT * FROM (SELECT a.*, rownum r FROM S_EMP a WHERE r between 5 AND 10 );
练习:哪些员工的工资比本部门的平均工资高?
select first_name , salary , avgsal from s_emp e , ( select dept_id , avg (salary ) avgsal from s_emp group by dept_id ) a where e.dept_id =a.dept_id and e.salary > a.avgsal;
在示图上加一个 with check option 就相当于给示图加上了约束
create view test_v as select * from test where c =1 with check option ;
同义词:相当于别名的作用(***只需了解***)系统自建的同义词: user_tables
create synonym asd_s_emp for asd_0607.s_emp ;
目的就是为了给asd_0607_s_emp表起另一个代替的名称asd.s_emp;注意这个同义词只能自己使用;
create public synonym p_s_emp fro asd_0607.s_emp; 创建公共的同义词,但是要权限.
删除同义词:
drop synonym 同义词名称
创建索引: Creating indexes(概念很重要对系统的性能影响非常大)
建索引的目的就是为了加快查询速度。
索引就相于一本的书的目录。索引点系统空间,属于表的附属物。删除一个表时,相对应的索引也会删除。truncate 表时索引结构在,但是数据不存在。
full table scan 全表扫描
用索引就是为了快速定位数据:(理解时就以字典的目录为例)
查看表的rowid:
select rowid , first_name from s_emp;
rowid 定义的信息有: object block table
每条记录都有自己的rowid
索引由谁创建:用户,建索引后会使DML操作效率慢,但是对用户查询会提高效率,这就是我们建索引的最终目的,
创建一个索引:
create index 索引名 on 表名 ( 字段名);
create insex testindex on test(c1, c2);
哪些字段应该建索引:
经常要用where的子句的地方,所以要用索引.用不用索引,关键要看所查询的数据与所有数据的百分比,表越大,查询的记录越少,索引的效率最高.
替换变量:用&符号来定义替换变量支持交互性提示,对于字符性的数字,一定要写在单引号之间
set verify on
set verify off;
相当于开关变量,用于控制是否显示新旧的sql语句
select id ,last_name ,salary from s_emp where title='&job_title';
更改交互的提示信息:
accept p_dname prompt ' 提示信息';
定义变量:
define p_dname='abc';
分页的实现语句:(可以正常运行)
select * from ( select rownum rnum , a.* from (select * from s_emp) a ) where rnum between 5 and 10 ;

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/andymu077/archive/2009/06/24/4293261.aspx

(0)

相关推荐

  • 如何用SQL命令查看Mysql数据库大小

    要想知道每个数据库的大小的话,步骤如下:1.进入information_schema 数据库(存放了其他的数据库的信息)use information_schema; 2.查询所有数据的大小:select concat(round(sum(data_length/1024/1024),2),'MB') as data from tables; 3.查看指定数据库的大小:比如查看数据库home的大小select concat(round(sum(data_length/1024/1024),2),

  • MSSQL ISQL命令详解

    比如做一些高级的配置,还比如在客户端或远程执行数据库操作等工作时,ISQL是很方便的.比如入侵一台有SQL服务的主机,入侵SQL Server后都能干什么?最好的工具的就是ISQL了. 不 光是微软的SQL支持ISQL,还有Sybase的Enterprise版本的数据库也支持,Sybase的Unix版本,ISQL等工具更是有用武之地 了.ISQL依赖DB-Library API的应用程序不支持 SQL Server 2000 版的某些功能.例如,isql无法访问用ntext数据类型定义的列,并截

  • SQL命令大全-中英文对照第1/3页

    SQL命令大全-中英文对照--语 句 功 能 --数据操作 SELECT --从数据库表中检索数据行和列 INSERT --向数据库表添加新数据行 DELETE --从数据库表中删除数据行 UPDATE --更新数据库表中的数据 --数据定义 CREATE TABLE --创建一个数据库表 DROP TABLE --从数据库中删除表 ALTER TABLE --修改数据库表结构 CREATE VIEW --创建一个视图 DROP VIEW --从数据库中删除视图 CREATE INDEX --为

  • oracle SQL命令大全

    delete 删除一张大表时空间不释放,非常慢是因为占用大量的系统资源,支持回退操作,空间还被这张表占用着. truncate table 表名 (删除表中记录时释放表空间) DML 语句: 表级共享锁: 对于操作一张表中的不同记录时,互不影响 行级排它锁:对于一行记录,oracle 会只允许只有一个用户对它在同一时间进行修改操作 wait() 等到行级锁被释放,才进行数据操作 drop一张表时也会对表加锁,DDL排它锁,所以在删除一张表时如果当前还有用户操作表时不能删除表 alter tabl

  • 日常收集整理的oracle常用命令大全(收藏)

    一.Oracle的启动和关闭 1.在单机环境下 要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle a.启动ORACLE系统 oracle>svrmgrl SVRMGR>connect internal SVRMGR>startup SVRMGR>quit b.关闭ORACLE系统 oracle>svrmgrl SVRMGR>connect internal SVRMGR>shutdown SVRMGR>quit 启动

  • mysql数据库操作_高手进阶常用的sql命令语句大全 原创

    mysql数据库操作sql命令语句大全:三表连表查询.更新时批量替换字段部分字符.判断某一张表是否存在.自动增长恢复从1开始.查询重复记录.更新时字段值等于原值加上一个字符串.更新某字段为随机值.复制表数据到另一个表.创建表时拷贝其他表的数据和结构.查看当前查询缓存相关参数状态.清理查询缓存内存碎片.导出数据到pc指定目录... 1.三表连表查询 select a.aid,a.title,b.url,c.content from dq_article_content c inner join c

  • oracle 中 sqlplus命令大全

    1.简介: Oracle的sql*plus是与oracle进行交互的客户端工具.在sqlplus中,可以运行sqlplus命令与sqlplus语句,我们通常所说的DML.DDL.DCL语句都是sqlplus语句,它们执行完后,都可以保存在一个被称为sql buffer的内存区域中,并且只能保存一条最近执行的sql语句,我们可以对保存在sql buffer中的sql 语句进行修改,然后再次执行,sqlplus一般都与数据库打交道. 2.常用命令 sqlplus username/password

  • Mssql,Access的sql经典SQL语句大全

    下列语句部分是Mssql语句,不可以在access中使用. SQL分类: DDL-数据定义语言(CREATE,ALTER,DROP,DECLARE) DML-数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL-数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1.说明:创建 数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份

  • 常用的Oracle doc命令(收藏)

    1.连接数据库 普通用户连接数据库: conn scott/tiger –(默认的用户名/密码).conn 即"connection"连接数据库的意思 超级管理员连接: Conn sys/sys as sysdba–oracle数据库不区分大小写 2.sql文件 保存sql文件 save c:\test.txt 编辑sql语句,用记事本编辑 ed c:\1.txt –编辑 SQL 语句 ed –直接打开上一次缓存sql语句 描述数据表的结构 desc employee; –打开empl

  • MySQL与Oracle SQL语言差异比较一览

    数据类型 编号 ORACLE MYSQL 注释 1 NUMBER int / DECIMAL DECIMAL就是NUMBER(10,2)这样的结构INT就是是NUMBER(10),表示整型: MYSQL有很多类int型,tinyint mediumint bigint等,不同的int宽度不一样 2 Varchar2(n) varchar(n) 3 Date DATATIME 日期字段的处理 MYSQL日期字段分DATE和TIME两种,ORACLE日期字段只有DATE,包含年月日时分秒信息,用当前

  • Oracle SQL tuning 数据库优化步骤分享(图文教程)

    SQL Turning 是Quest公司出品的Quest Central软件中的一个工具.Quest Central是一款集成化.图形化.跨平台的数据库管理解决方案,可以同时管理 Oracle.DB2 和 SQL server 数据库. 一.SQL Tuning for SQL Server简介 SQL语句的优化对发挥数据库的最佳性能非常关键.然而不幸的是,应用优化通常由于时间和资源的因素而被忽略.SQL Tuning (SQL优化)模块可以对比和评测特定应用中SQL语句的运行性能,提出智能化的

  • dos命令大全 黑客必知的DOS命令集合

    一般来说dos命令都是在dos程序中进行的,如果电脑中安装有dos程序可以从开机选项中选择进入,在windows 系统中我们还可以从开始运行中输入cmd命令进入操作系统中的dos命令,如下图: 严格的说,windows 中的命令窗口并不是真正意义上的dos操作界面,其功能并不全面,真正的dos程序是在电脑中没进入系统而进入的dos界面,如下图: 如上图,我们只要在dos界面中输入各种dos命令,即可实现相应的命令,下面分享下dos命令大全: net use ipipc$ " " /us

随机推荐