博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
部分Oracle命令(随时更新)
阅读量:5080 次
发布时间:2019-06-12

本文共 7922 字,大约阅读时间需要 26 分钟。

如有错误 请多多指教

/*--通过SQLPLUS登录数据库1  如果只是单一数据库   运行cmd  回车   然后运行 sqlplus  回车   根据提示输入用户名和密码登录2  运行cmd   回车   然后运行 sqlplus username/password 回车   或者   运行cmd   回车   然后运行 sqlplus /nolog   然后  connect  username/password3  如果有多个数据库实例   则可以先设置自己需要用的数据库实例为当前实力   运行cmd     然后运行 set oracle_sid=DBname  回车   然后可根据上边的1 , 2 登录*/
CREATE TABLE student(  SID   NUMBER(2,0) NOT NULL ,  SNAME VARCHAR2(12) NOT NULL)--插入数据INSERT INTO student VALUES(2,'s2',22)--更新数据--利用子查询来更新数据UPDATE STUDENTSET  (    SID  ,    SNAME,    SAGE  )=( SELECT * FROM student WHERE sid=2 ) WHERE SID=4;  --删除数据DELETE FROM student WHERE SID=--提交数据COMMIT ;--查询SELECT * FROM student;--查询中使用运算表达式SELECT SID,SNAME,SAGE+10 FROM student;--使用列别名SELECT SID AS "编号", SNAME AS "姓名", SAGE AS "年龄" FROM student;--连接字符串(在sqlplus中可以看到结果)SELECT SNAME||'的年龄是'|| SAGE AS "学生信息" FROM student WHERE SID =2 ;--修改表结构  ALTER TABLE student RENAME COLUMN StudentID TO SID ;ALTER TABLE student RENAMECOLUMN StudentName TO SNAME;ALTER TABLE student RENAMECOLUMN StudentAge TO SAGE;--查询表结构DESC student;--修改表结构 增加列ALTER TABLE student ADD( SAGE NUMBER(2));--查询前N行 相当于SQL Srever中的 top--sql: select top 4  from tablenameSELECT * FROM student WHERE ROWNUM<=1;-- like 查询SELECT SNAME FROM student WHERE sname LIKE '%1%';--IN 子句SELECT * FROM student WHERE SID IN(1,3);--COUNT函数 统计行数SELECT COUNT(*) FROM student ;--avg函数 平均值SELECT AVG(SID) FROM student;--sum 函数 求和SELECT SUM(SID) FROM student;--MAX MIN 函数SELECT MAX(SID),MIN(SID) FROM student;--PL/SQL块DECLARE  v_age NUMBER(2);  --以上为定义一个整形变量BEGIN  v_age := 60;                          -- 给整形变量赋值  dbms_output.put_line('测试输出:'||v_age); --输出变量的值END;--SQL/PL 语句块在 sql plus中的编写/*VAR AGE NUMBERBEGINSELECT SGAE INTO :AGE FRON STUDENT WHERE SID=2;END;/PRINT AGE ;*/--if else 语句DECLARE  v_x NUMBER(2);  v_y NUMBER(2);BEGIN  v_x   :=3;  IF v_x <2 THEN    v_y :=1;  ELSE    v_y := 0;  END IF;  DBMS_OUTPUT.put_line('V_X:'||v_x);  DBMS_OUTPUT.put_line('V_Y:'||v_y);END;
--创建和被复制的表结构相同的表 但是不会想新表中写入数据  where 1=2create table table_name(新表) as select * from table_name(被复制的表) where 1=2--修改用户密码ALTER USER "UserName" IDENTIFIED BY "NewPwd"

 

SELECT A.*, CASE    WHEN sage= 12 THEN '等于12' WHEN  sage>12  THEN '大于12'  ELSE 'UNKNOW' END FROM testtable  ASELECT A.*, CASE  sage WHEN  12  THEN '等于12' WHEN  24  THEN '等于24'  ELSE 'UNKNOW' END FROM testtable  A--注意二者的区别 一个需要在case后边加上字段名 另一个不需要

 

--取两日期之间的差(天数)select  to_date('2012-05-04','YYYY-MM-DD')-trunc(sysdate) from dual--trunc 的用法  --一、用于date类型 SELECT trunc(sysdate,'mm')FROM dual --返回当月的第一天 SELECT trunc(sysdate,'yyyy')FROM dual --返回当年第一天 SELECT trunc(sysdate,'day')FROM dual --返回当周第一天 SELECT trunc(sysdate,'dd')FROM dual --返回当天 SELECT trunc(sysdate)FROM dual --返回当天 --二、用于number类型 select trunc(1.1415926) from dual --截掉小数部分 select trunc(1.1415926,2) from dual --保留两位小数(不做四舍五入处理) select trunc(1.1415926,-1) from dual --返回零 截取整数部分第一位,并以零代替

 

--修改时间的显示格式select  sysdate from dual;ALTER SESSION SET NLS_language=american;ALTER SESSION SET NLS_DATE_FORMAT='YYYY-mm-DD';

 

--修改列名 但是已经有数据 不能直接修改alter table table_name add  temp varchar2(300) ;update table_name set  temp = old_cloumn;alter table table_name rename column old_cloumn to temp2; alter table table_name rename column temp to old_cloumn ; --删除之前注意数据是否已经复制成功 temp2保存原始数据 alter table table_name drop column temp2;

 

关于数据的导入导出

-----------------------------------创建虚拟目录  该命令并不会在物理磁盘上创建该目录  需要手动创建  --BACK_DIR 目录名称  as 后的为目录路径create directory BACK_DIR as 'E:\Work\Backoracle_dump';--查询创建了那些目录select * from dba_directories--删除目录DROP directory  BACK_DIR ;--导出数据--BU_USER/bu13991@bu13991   uid/pwd@dSID  --DIRECTORY=EXPDP_DIR       如上创建的目录名--DUMPFILE=S_SPXX_73.dump   导出之后的文件名--VERSION=10.2.0.1.0        版本    --TABLES=S_SPXX_73          从哪个表导出Expdp BU_USER/bu13991@bu13991 DIRECTORY=EXPDP_DIR DUMPFILE=S_SPXX_73.dump VERSION=10.2.0.1.0    TABLES=S_SPXX_73--  参数基本与导出数据相同impdp bu_user/bu13991@bu13991  directory=EXPDP_DIR  dumpfile= S_UNION_COUNT_LOG_73.dump table_exists_action = replace ---------------------------------------------------------------------------------ExpDB_Impdb导入导出数据表-- 一  创建要导出的目录CREATE DIRECTORY DRI_Backup AS 'E:\Work\Backoracle_dump';-- E:\Work\Backoracle_dump 该目录需要手动创建 -- 二  在dos中执行以下命令    --导入表和库--表:  Impdp USER/PWD@SID DIRECTORY=DRI_Backup  DUMPFILE=S_SPXX_73.dump  VERSION=10.2.0.1.0 TABLE_EXISTS_ACTION = replace   LOGFILE=ImpdbTableLog.log    --Impdp bu_user/bu13991@bu13991 DIRECTORY=DRI_Backup  DUMPFILE=S_CONFIG_73.dump    table_exists_action = replace   LOGFILE=ImpdbTableLog.log--S_SPXX_73.dump
<导出后文件名>
VERSION=10.2.0.1.0
<版本>
TABLES=S_SPXX_73
<要导出的表名>
--库: Impdp USER/PWD@SID DIRECTORY=DRI_Backup DUMPFILE= BU13991_20120418.DUMP TABLE_EXISTS_ACTION = replace LOGFILE=ImpdbDBLog.log--Impdp bu_user/bu13991@bu13991 DIRECTORY=DRI_Backup DUMPFILE= BU13991-20120418.DUMP table_exists_action = replace LOGFILE=ImpdbDBLog.log--导出表和库--表: Expdp USER/PWD@SID DIRECTORY=DRI_Backup DUMPFILE=S_SPXX_73.dump TABLES=S_SPXX_73 LOGFILE=ExpdbTableLog.log--Expdp bu_user/bu13991@bu13991 DIRECTORY=DRI_Backup DUMPFILE=S_CONFIG_73.dump TABLES=S_CONFIG_73 LOGFILE=ExpdbTableLog.log--S_SPXX_73.dump
<导出后文件名>
VERSION=10.2.0.1.0
<版本>
TABLES=TABLE_NAME
<要导出的表名>
--库: Expdp USER/PWD@SID DIRECTORY=DRI_Backup DUMPFILE= BU13991_20120218.DUMP FULL=Y LOGFILE=ExpdbDBLog.log --全库导出--Expdp bu_user/bu13991@bu13991 DIRECTORY=DRI_Backup schemas=BU_USER DUMPFILE= BU13991_20120418.DUMP LOGFILE=ExpdbDBLog.log -- 只导出该用户

 

以下是来自网络的更详细的解释

/*一、创建逻辑目录,该命令不会在操作系统创建真正的目录,最好以system等管理员创建。create directory dpdata1 as 'd:\test\dump';二、查看管理理员目录(同时查看操作系统是否存在,因为Oracle并不关心该目录是否存在,如果不存在,则出错)select * from dba_directories;三、给scott用户赋予在指定目录的操作权限,最好以system等管理员赋予。grant read,write on directory dpdata1 to scott;四、导出数据1)按用户导expdp scott/tiger@orcl schemas=scott dumpfile=expdp.dmp DIRECTORY=dpdata1;2)并行进程parallelexpdp scott/tiger@orcl directory=dpdata1 dumpfile=scott3.dmp parallel=40 job_name=scott33)按表名导expdp scott/tiger@orcl TABLES=emp,dept dumpfile=expdp.dmp DIRECTORY=dpdata1;4)按查询条件导expdp scott/tiger@orcl directory=dpdata1 dumpfile=expdp.dmp Tables=emp query='WHERE deptno=20';5)按表空间导expdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=temp,example;6)导整个数据库expdp system/manager DIRECTORY=dpdata1 DUMPFILE=full.dmp FULL=y;五、还原数据1)导到指定用户下impdp scott/tiger DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=scott;2)改变表的ownerimpdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp TABLES=scott.dept REMAP_SCHEMA=scott:system;3)导入表空间impdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=example;4)导入数据库impdb system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y;5)追加数据impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=system TABLE_EXISTS_ACTION=append;使用exclude,include导出数据1、Include导出用户中指定类型的指定对象--仅导出lttfm用户下以B开头的所有表,包含与表相关的索引,备注等。不包含过程等其它对象类型:expdp lttfm/lttfm@fgisdb dumpfile=include_1.dmp logfile=include_1.log directory=dir_dp job_name=my_job include=TABLE:\"LIKE \'B%\'\"--导出lttfm用户下排除B$开头的所有表:expdp lttfm/lttfm@fgisdb schemas=lttfm dumpfile=include_1.dmp logfile=include_1.log directory=dir_dp job_name=my_job include=TABLE:\"NOT LIKE \'B$%\'\"--仅导出lttfm用户下的所有存储过程:expdp lttfm/lttfm@fgisdb schemas=lttfm dumpfile=include_1.dmp logfile=include_1.log directory=dir_dp job_name=my_job include=PROCEDURE;   2、Exclude导出用户中指定类型的指定对象--导出lttfm用户下除TABLE类型以外的所有对象,如果表不导出那么与表相关的索引,约束等与表有关联的对象类型也不会被导出:expdp lttfm/lttfm@fgisdb schemas=lttfm dumpfile=exclude_1.dmp logfile=exclude_1.log directory=dir_dp job_name=my_job exclude=TABLE;--导出lttfm用户下排除B$开头的所有表:expdp lttfm/lttfm@fgisdb dumpfile=include_1.dmp logfile=include_1.log directory=dir_dp job_name=my_job exclude=TABLE:\"LIKE\'b$%\'\";--导出lttfm用户下的所有对象,但是对于表类型只导出以b$开头的表:expdp lttfm/lttfm@fgisdb dumpfile=include_1.dmp logfile=include_1.log directory=dir_dp job_name=my_job exclude=TABLE:\"NOT LIKE \'b$%\'\";*/
 

转载于:https://www.cnblogs.com/ShuiMu/articles/2442493.html

你可能感兴趣的文章
Redis Cluster高可用集群在线迁移操作记录【转】
查看>>
二、spring中装配bean
查看>>
VIM工具
查看>>
javascript闭包
查看>>
@Column标记持久化详细说明
查看>>
创建本地yum软件源,为本地Package安装Cloudera Manager、Cloudera Hadoop及Impala做准备...
查看>>
mysql8.0.13下载与安装图文教程
查看>>
站立会议08(冲刺2)
查看>>
url查询参数解析
查看>>
http://coolshell.cn/articles/10910.html
查看>>
[转]jsbsim基础概念
查看>>
DIV和SPAN的区别
查看>>
第一次使用cnblogs
查看>>
C#语法糖之 session操作类 asp.net
查看>>
2015 Multi-University Training Contest 3
查看>>
使用Gitblit 在windows 上部署你的Git Server
查看>>
217. Contains Duplicate
查看>>
vue2.0 关于Vue实例的生命周期
查看>>
jenkins 更换主数据目录
查看>>
Silverlight中恼人的g.i.cs错误
查看>>