Oracle 命令
Oracle基本操作《DOC命令》

系统权限在doc命令中启动Oracle(注意下文中<>为不存在只是为了标识)其中的一些权限为系统权限(都是用超级管理员授予的)1:启动SQL*PLUS:在相应盘符下输入:sqlplus / as sysdba;<默认的用户是SYS>2:启动监听器在相应盘符下输入:lsnrctl start(我的电脑默认在D盘下)3:启动实例在相应盘符下输入:oradim -starup -sid sjbitdb(我的电脑默认在D盘下)4:展示当前用户名在SQL语句中输入:show user;5:创建用户在SQL语句中输入:create user <用户名> identified by <用户密码> ;6:为用户创建会话权限在SQL语句中输入:grant create session to <用户名>;7:使用用户登录在相应盘符下语句中输入:sqlplus <用户名>/<密码> 注意后面没有分号。
8:为用户创建表权限在SQL语句中输入:grant create table to <用户名>;9:为用户创建表空间权限在SQL语句中输入:grant unlimited tablespace to <用户名>;(unlimited是没有任何限制的意思)10:创建表在SQL语句中输入:create table <表名称> (<列名> <数据类型>);(举例)11:向表中插入数据在SQL语句中输入:insert into <表名称> values(<值>);(举例)12:查询表中的数据在SQL语句中输入:select * form <表名称>;13:删除表在SQL语句中输入:drop table <表名称>;14:撤销用户的会话权限在SQL语句中输入:revoke create session fr om <用户名>;15:撤销用户的创建表权限在SQL语句中输入:revoke create table from <用户名>;16:撤销用户的创建表空间权限在SQL语句中输入:revoke unlimited tablespace from <用户名>;17:查询当前用户拥有哪些系统权限在SQL语句中输入:select * from user_sys_privs;(实际上展示的是一个视图) 18:删除用户:在SQL语句中输入:drop user <用户名>;19:把某个系统权限权限授权给所有用户:在SQL语句中输入:grant (create session<会话权限也就是允许某管理员登录的权限>) 、(create table<创建表权限>)、(unlimited tablespace<创建表空间权限>) 、(create any table<创建任意表权限>) to public;对象权限简单来说超级管理员拥有的权限叫做系统权限,普通用户拥有的权限叫做对象权限。
oracle数据库常用的操作命令

问题提出:
1、用户需要对数据库用户下的每一张表都执行一个相同的SQL操作,这时,一遍、一遍的键入SQL语句是很麻烦的
实现方法:
SQL> set heading off --禁止输出列标题
SQL> set feedback off --禁止显示最后一行的计数反馈信息
alter user system indentified by test
~~~~~~~~~~~~~~~~~~~~~~``
Oracle 常用指令 SQL> show all --查看所有68个系统变量值
SQL> show user --显示当前连接用户
SQL> show error --显示错误
列出当前用户下所有同义词的定义,可用来测试同义词的真实存在性
select 'desc '||tname from tab where tabtype='SYNONYM';
查询当前用户下所有表的记录数
select 'select '''||tname||''',count(*) from '||tname||';' from tab where tabtype='TABLE';
(注:a后面跟2个空格)
(c)hange/old/new 在当前行用新的文本替换旧的文本 c/*/tname 结果:select tname from tab;
(c)hange/text 从当前行删除文本 c/tab 结果:select tname from ;
oracle登录命令

4.C: > sqlplus scott/tiger@orcl --非管理员用户使用tns别名登陆
5.C: > sqlplus sys/password@orcl as sysdba --管理员用户使用tns别名登陆
6.C: > sqlplus --不显露密码的登陆方式
2.C: > sqlplus /nolog --不在cmd或者terminal当中暴露密码的登陆方式
SQL> conn /as sysdba
&
SQL> conn sys/password as sysdba
3.C: > sqlplus scott/tiger --非管理员用户登陆
1、运行SQLPLUS工具
C:\Users\wd-pc>sqlplus
2、直接进入SQLPLUS命令提示符
C:\Users\wd-pc>sqlplus e
3、以OS身份连接
C:\Users\wd-pc>sqlplus / as sysdba 或
SQL>connect / as sysdba
4、普通用户登录
C:\Users\wd-pc>sqlplus scott/123456 或
SQL>connect scott/123456@servername
5、以管理员登录
C:\Users\wd-pc>sqlplus sys/123456 as sysdba 或
SQL>connect sys/123456 as sysdba
6、切换用户
SQL>conn hr/123456
注:conn同connect
oracle创建实例命令

oracle创建实例命令Oracle是一种关系型数据库管理系统,用于存储和管理大量的数据。
在使用Oracle之前,首先需要创建数据库实例。
数据库实例是Oracle数据库的一个运行环境,它由内存结构和后台进程组成。
创建数据库实例的过程可以通过一条Oracle命令来完成。
在Oracle中,创建数据库实例的命令是CREATE DATABASE。
下面将详细介绍如何使用这个命令来创建数据库实例。
我们需要登录到Oracle数据库服务器。
可以使用以下命令来登录:```sqlplus / as sysdba```上述命令中的"/ as sysdba"表示使用SYSDBA特权登录。
登录成功后,我们可以开始创建数据库实例。
创建数据库实例的命令格式如下:```CREATE DATABASE [database_name]CONTROLFILE REUSESET [parameter_name]=[parameter_value]...[parameter_name]=[parameter_value];```在上述命令中,[database_name]是要创建的数据库实例的名称。
CONTROLFILE REUSE表示在创建数据库实例时重用现有的控制文件。
SET关键字后面可以设置一些参数,用于配置数据库实例的一些属性。
可以根据需要设置多个参数。
接下来,我们将具体介绍一些常用的参数。
1. DB_NAME:设置数据库实例的名称。
例如,可以使用以下命令将数据库实例的名称设置为“mydatabase”:```SET DB_NAME=mydatabase;```2. DB_BLOCK_SIZE:设置数据库块的大小。
数据库块是Oracle数据库中最小的数据单元。
可以使用以下命令将数据库块的大小设置为8KB:```SET DB_BLOCK_SIZE=8192;```3. DB_CACHE_SIZE:设置数据库缓存的大小。
Oracle常用SQL命令

Oracle常⽤SQL命令创建表空间1.创建默认表空间WLP_DATCREATE TABLESPACE "MYSPACE" DATAFILE'D:\oracle\oradata\orcl\data/WLP_DAT.dbf' SIZE 32M REUSE AUTOEXTEND ON NEXT 32MLOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;2.创建临时表空间WLP_TEMP(⽤于缓存,可以不建)ALTER TABLESPACE "TEMP" ADD TEMPFILE'D:\oracle\oradata\orcl\data/WLP_TEMP.dbf' SIZE 32m REUSE autoextend on next 32m;创建⽤户并授权1CREATE USER "WLPING" PROFILE "DEFAULT"2 IDENTIFIED BY "123456"3DEFAULT TABLESPACE "MYSPACE" //默认指定表空间4TEMPORARY TABLESPACE "TEMP" //指定缓存表空间5 ACCOUNT UNLOCK; //⽤户⾮锁定67GRANT EXECUTE ON dbms_comparison TO "WLPING";8GRANT UNLIMITED TABLESPACE TO "XIR_MD";9GRANT "CONNECT" TO "XIR_MD";10GRANT "RESOURCE" TO "XIR_MD";1112-- GRANT DBA TO XIR_MD;PROFILE:Oracle系统中的profile可以⽤来对⽤户所能使⽤的数据库资源进⾏限制,使⽤Create Profile命令创建⼀个Profile,⽤它来实现对数据库资源的限制使⽤,如果把该profile分配给⽤户,则该⽤户所能使⽤的数据库资源都在该profile的限制之内。
常用oracle数据库命令

常用oracle数据库命令
1. 启动Oracle数据库
$ sqlplus /nolog
SQL> connect / as sysdba
SQL> startup
3. 创建表空间
创建表空间的命令是:
SQL> create tablespace 表空间名 datafile '路径名' size 大小;
6. 创建用户
7. 删除用户
删除用户的命令是:
8. 授权用户
SQL> grant 权限 to 用户名;
9. 撤销用户的权限
11. 查看表结构
查看表结构的命令是:
SQL> desc 表名;
SQL> create table 表名 (列名数据类型, 列名数据类型, …);
13. 删除表
14. 插入数据
插入数据的命令是:
SQL> update 表名 set 列名=新值 where 某条件;
18. 创建索引
20. 查看索引
21. 查询相关信息
查询相关信息的命令是:
SQL> select * from v$session; -- 查看会话 22. 查看数据库版本
24. 备份数据库
$ exp 用户名/密码 file=备份文件路径备注:以上命令均需要在Oracle登录后进行。
oracle查询实例命令

oracle查询实例命令以下是一些Oracle数据库中常用的查询实例命令示例:1.查询表的所有数据:SELECT * FROM table_name;2.查询指定列的数据:SELECT column1, column2, ... FROM table_name;3.查询满足特定条件的数据:SELECT * FROM table_name WHERE condition;4.对结果进行排序:SELECT * FROM table_name ORDER BY column_name [ASC|DESC];5.使用聚合函数进行数据统计:SELECT COUNT(*) FROM table_name; -- 统计行数SELECT SUM(column_name) FROM table_name; -- 求和SELECT AVG(column_name) FROM table_name; -- 平均值SELECT MAX(column_name) FROM table_name; -- 最大值SELECT MIN(column_name) FROM table_name; -- 最小值6.连接多个表进行查询:SELECT t1.column1, t2.column2 FROM table1 t1 JOIN table2 t2 ON t1.id = t2.id;7.使用条件进行分组:SELECT column1, COUNT(*) FROM table_name GROUP BY column1;8.使用LIKE进行模糊查询:SELECT * FROM table_name WHERE column_name LIKE 'keyword%';以上只是一些常见的查询示例,实际查询命令会根据具体的表结构和查询需求而有所不同。
在使用Oracle数据库时,请根据具体情况和需求构建和调整查询语句。
Oracle常用命令大全(很有用,做笔记)

Oracle常⽤命令⼤全(很有⽤,做笔记)⼀、ORACLE的启动和关闭1、在单机环境下要想启动或关闭ORACLE系统必须⾸先切换到ORACLE⽤户,如下su - oraclea、启动ORACLE系统oracle>svrmgrlSVRMGR>connect internalSVRMGR>startupSVRMGR>quitb、关闭ORACLE系统oracle>svrmgrlSVRMGR>connect internalSVRMGR>shutdownSVRMGR>quit启动oracle9i数据库命令:$ sqlplus /nologSQL*Plus: Release 9.2.0.1.0 - Production on Fri Oct 31 13:53:53 2003Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.SQL> connect / as sysdbaConnected to an idle instance.SQL> startup^CSQL> startupORACLE instance started.2、在双机环境下要想启动或关闭ORACLE系统必须⾸先切换到root⽤户,如下su - roota、启动ORACLE系统hareg -y oracleb、关闭ORACLE系统hareg -n oracleOracle数据库有哪⼏种启动⽅式说明:有以下⼏种启动⽅式:1、startup nomount⾮安装启动,这种⽅式启动下可执⾏:重建控制⽂件、重建数据库读取init.ora⽂件,启动instance,即启动SGA和后台进程,这种启动只需要init.ora⽂件。
2、startup mount dbname安装启动,这种⽅式启动下可执⾏:数据库⽇志归档、数据库介质恢复、使数据⽂件联机或脱机,重新定位数据⽂件、重做⽇志⽂件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Oracle 命令Array Oracle用户管理:创建一个用户:create user 用户名identified by 密码(密码必须以字母开头)给用户修给密码:password 用户名修改用户密码:alter user 用户名identified by 新密码删除用户:drop user 用户名[cascade]授权用户登录dba:grant conn(connect) to 用户名授予用户查询emp表权限:grant select on emp to 用户名授予用户修改emp表权限:grant update on emp to 用户名授予用户修改/删除/查修权限:grant all on emp to 用户名收回用户对emp表的权限:revoke select/update on emp from 用户名希望xiaoming用户可以把查询权限授予别的用户:grant select on scott.emp to xiaoming with grant option;(如果收回xiaoming对emp查询的权限,那么xiaoming授予用户也会受到诛连) 用户锁定:指定用户用户登录最多可以输入密码的次数。
例子:指定scott这个用户最多尝试3次登录,锁定时间为2天。
创建profile文件:create profile lock_account limit failed_login_attempts 3 password_lock_time 2;alter user scott profile lock_account;给用户解锁:alter user 用户名account unlock;终止口令:create profile myprofile limit password_life_time 10 password_grace_time 2;alter user 用户名profile myprofile;口令历史:如果希望用户在修改密码时不能用以前的密码。
create profile password_history limit password_life_time 10 password_grace_time 2 password_reuse_time 10 password_reuser_time;//指定口令可重用时间即10天后就可以重用。
删除profile:当不需要某个profile文件时,可是删除该文件。
文件删除后,用这个文件去约束的那些用户通通也都被是放了。
drop profile password_history [casade]\\加了casade,就会把级联的相关东西也给删除掉。
Oracle表的管理:注意:表明和列明的规则必须以字母开头,长度不超过30个字符,不能用oracle的保留字,只能使用如下字符A—Z,a-z,0-9,$,#等。
Oracle支持的数据类型字符型:char 定长最大2000个字符例子:char(10)‘小韩’前四个字符放‘小韩’,后添6个空个补全如‘小韩’(横线表示空格)varchar2(20) 分辨长度最大4000个字符数字型:number 范围-10的38次方到10的38次方。
可以表示证书,也可以表示小树。
number(5,2)\\表示一位小数有5位有效数,2位小数。
范围-999.99-999.99日期类型date 包含年月日时分秒oracle默认格式1-1月-1999创建表例子:--学生表create table student( ---表名xh number(4),--学号xm varchar2(20),--姓名sex char(2),----性别birthday date,---出生日期sal number(7,2) ---奖学金create table class (classId NUMBER(2),cName V ARCHAR2(40));修改表:添加一个字段:ALTER TABLE student add (classId NUMBER(2));修改一个字段的长度:ALTER TABLE student MODIFY (xm VARCHAR2(30));//修改字段的类型/或是名字(不能有数据)不建议做ALTER TABLE student modify (xm CHAR(30));删除一个字段不建议做(删了之后,顺序就变了。
加就没问题,因为加在后面)ALTER TABLE student DROP COLUMN sal;修改表的名字://很少有这种需求RENAME student TOstu;删除表:DROP TABLE student;添加数据:INSERT INTO student V ALUES (‘A001’,‘张三’,‘男’‘01-5月-05’,10);oracle中默认的日期格式‘dd-mon-yy’dd天mon月份yy2位的年‘09-6月-99’1999年6月9日修改日期的默认格式(临时修改,数据库重启后仍未默认;如果修改需要改注册表) ALTER SESSION SET NLS_DATE_FORMA T=‘yyyy-mm-dd’;修改后可以用我们熟悉的格式添加日期类型:INSERT INTO student V ALUES (‘A002’,‘MIKE’,‘男’,‘1905-05-06’,10);插入部分字段:INSERT INTO student(xh,xm,sex) V ALUES (‘A003’,‘JOHN’,‘女’);INSERT INTO student(xh,xm,sex,birthday)V ALUES(‘A004’,‘MARTIN’,‘男’,null);如果要查询student表里birthday为null的记录,怎么写sql呢?select * from student where birthday is null;如果要查询birthday不为null,位应该这样写:select * from student where birthday is not null;修改数据:修改一个字段:UPDATE student SET sex=‘女’WHERE xh=‘A001’;修改多个字段:UPDATE student SET sex=‘男’,birthday=‘1984-04-01’WHERE xh=‘A001’;修改含有null值的数据:SELECT * FROM student WHERE birthday IS null;删除数据:DELETE FROM student;//删除所有记录,表结构还在,写日志,可以恢复的,速度呢慢。
Delete的数据可以恢复。
savepoint a;----创建保存点;DELETE FROM student;rollback to a;---恢复到保存点。
一个有经验的DBA,在确保完成无误的情况下定期创建还原点。
DROP TABLE student;-----删除表的结构和数据;delete from student WHERE xh=‘A001’;----删除一条记录。
truncate TABLE student;----删除表中的所有记录,表结构还在,不写日志,无法找回删除的记录,速度快。
Oracle表查询(1):简单的查询语句:DESC emp;查询所有列:SELECT * FROM dept;//切记动不动就用select *因为查询所有的时间太长。
SET TIMING ON;打开显示操作时间的开关。
INSERT INTO users (userId,Username,userpassword) SELECT * FROM users;//从自己复制,加大数据量,用于测试。
SELECT COUNT(*)FROM users;//统计行数查询指定列:SELECT enamel,sal,job,deptno FROM emp;如何取消重复航DISTINCT:SELECT DISTINCT deptno,job FROM EMP;查询SMITH所在部门,工资薪水?SELECT deptno,job,sal FROM emp WHERE ename=‘SMITH’;注意:oracle对内容的大小是区分的,所以ename=‘SMITH’和ename=‘smith’是不同的使用算数表达式:nvl null问题:如何显示每个雇员的年工资?SELECT sal*13+nvl(comm,0)*13 “年薪”,ename,comm FROM emp;使用列的别名:SELECT ename “姓名”,sal*12 AS“年收入”FROM emp;如何处理null值:使用nvl函数来处理。
如何连接字符串(||):SELECT ename || ‘is a’|| job FROM emp;使用where子句:问题:如何显示工资高于3000的员工?SELECT * FROM emp WHERE sal>3000;问题:如何查找1982.1.1后入职的员工?SELECT ename,hiredate FROM emp WHERE hiredate(.雇用日期....). >‘1--1 月-1982’;问题:如何显示工资在2000到3000的员工?SELECT ename,sal FROM emp WHERE sal >=2000 AND sal <=3000;如何使用like操作符:%:表示0到多个字符__:表示任意单个字符问题:如何显示首字符为S的员工姓名和工资?SELECT ename,sal FROM emp WHERE ename like ‘_0%’;在where条件中使用in:问题:如何显示empno为7844,7839,123,456的雇员情况?SELECT * FROM emp WHERE empnp in (7844,7839,123,456);使用is null的操作符,问题:如何显示没有上级的雇员的情况?SELECT * FROM emp WHERE mgr is null;Oracle表查询(2):使用逻辑操作符号,问题:查询工资高于500或者是岗位为MANAGER的雇员,同时还要满足他们的姓名首字母为大写的J?SELECT * FROM emp WHERE (sal >500 or job =‘MANAGER’)and ename LIKE ‘J%’;使用order by字句默认asc,问题:如何按照工资的从低到高的顺序显示雇员的信息?SELECT * FROM emp ORDER by sal;问题:按照部门号升序而雇员的工资降序排列。