部分Oracle命令(随时更新)
如有错误 请多多指教
/* --通过SQLPLUS登录数据库 1 如果只是单一数据库运行cmd 回车然后运行 sqlplus 回车根据提示输入用户名和密码登录 2 运行cmd 回车然后运行 sqlplus username/password 回车或者运行cmd 回车然后运行 sqlplus /nolog然后 connect username/password 3 如果有多个数据库实例则可以先设置自己需要用的数据库实例为当前实力运行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 STUDENT SET(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 RENAME COLUMN StudentName TO SNAME;ALTER TABLE student RENAME COLUMN StudentAge TO SAGE;--查询表结构 DESC student;--修改表结构 增加列 ALTER TABLE student ADD( SAGE NUMBER(2));--查询前N行 相当于SQL Srever中的 top --sql: select top 4 from tablename SELECT * 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块 DECLAREv_age NUMBER(2);--以上为定义一个整形变量 BEGINv_age := 60; -- 给整形变量赋值dbms_output.put_line('测试输出:'||v_age); --输出变量的值 END; --SQL/PL 语句块在 sql plus中的编写 /*VAR AGE NUMBER BEGIN SELECT SGAE INTO :AGE FRON STUDENT WHERE SID=2; END; / PRINT AGE ; */ --if else 语句 DECLAREv_x NUMBER(2);v_y NUMBER(2); BEGINv_x :=3;IF v_x <2 THENv_y :=1;ELSEv_y := 0;END IF;DBMS_OUTPUT.put_line('V_X:'||v_x);DBMS_OUTPUT.put_line('V_Y:'||v_y); END;
--创建和被复制的表结构相同的表 但是不会想新表中写入数据 where 1=2 create 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 sageWHEN 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)并行进程parallel expdp scott/tiger@orcl directory=dpdata1 dumpfile=scott3.dmp parallel=40 job_name=scott3 3)按表名导 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)改变表的owner impdp 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
部分Oracle命令(随时更新)相关推荐
- Oracle命令结束,更新语句oracle - ORA-00933:SQL命令未正确结束
2 个答案: 答案 0 :(得分:0) Oracle不允许您加入更新声明.您需要使用相关子查询,例如: UPDATE TABLE1 TOP_A SET EARLIEST_STARTDATE = ( S ...
- Ubuntu 命令(随时更新)
安装软件: apt-get install <appName> whereis <appName>: 查看软件安装位置: wget <web:url软件下载地址>: ...
- 认识oracle的update更新
这两天给新同事安排了一个工作,即做一个update 的级联更新,在实际操作中发现了一个问题.就是对于oracle的更新的语法,大部分人尤其是学过SqlServer的人在使用oracle的时候对于ora ...
- 完美解决MSSQL安装问题“Polybase要求安装Oracle JRE 7更新51(64位)”方案
阅文时长 | 0.72分钟 字数统计 | 1164.8字符 主要内容 | 1.问题起因及解决方案 2.安装jdk-8u241-windows-x64 3.取消PolyBase查询服务 4.四.声明与参 ...
- java后端面试2021知识点大总结(超广范围全包含,随时更新)
博主最近重新复习梳理了一下Java后端的技术栈知识,大多都是时下面试很常问的知识点,纯手打整理了好久,现在粘出来供大家一起学习交流,有很多个人可能模棱两可的知识点,也谨慎的去查阅了很多博客,文章中也会 ...
- stata代码笔记,随时更新
stata代码笔记 名言 All knowledge is, in final analysis, history; All sciences are, in the abstact, mathema ...
- linux vim 命令无效,【工匠大道】一些Vim(Linux)不常见但很逼格的命令(不断更新中)...
分享提纲: 普通的vim的移动,编辑等命令就不再赘述.这里主要是记录一些不常见但是很逼格的命令,使你瞬间感到精神为之一振的命令 1. :Tlist 1)该命令是列出当前文件中的类名,变量名和函数名,移 ...
- C#编码简单性之语义篇(如何编写简短的C#代码,随时更新)
以前写C++的时候曾经在自己网站上发表过一个编码"简单性"之文章,现在编写C#了才发现自己无意之间就会写下一些浪费屏幕的代码. 下面是自己编码中偶然发现的一些案例,欢迎中等水平的编 ...
- linux的网络命令整理 更新中
linux的网络命令整理 更新中 1.安装包: net-tools 主要命令: netstat , ifconfig , route , iptunnel iproute 主要命令: ss , ip ...
- python3.8安装pip-MAC本安装python3.8后,pip3命令无法更新问题
开始学习python,因为MAC本自带2.7,版本较低,下载了python3.8,安装后按照之前博文的方法进行了升级.目前敲入python, 直接进入了python3.8. 但是发现pip3命令无法更 ...
最新文章
- 单片机如何实现大数据的串口传输_获客成本日益增加,企业如何实现大数据精准获客?...
- LIVE555再学习 -- FFmpeg + live555实现RTSP直播
- Android构建流程——篇三
- 亲历2013年TED大会:全球最潮灵感大会
- FinalTest 基于web的登录口令修改设计
- 前端学习(168)全局事件属性
- js 多个定时器_JS中的同步/异步编程
- visual studio installer 卸载时不能删除安装目录问题
- Swagger 教程
- 使用XShell连接Cygwin
- java进账和转账需要锁吗,Spring与Java中的锁
- 简单常用的10个excel公式
- 指数退避和AIMD为什么都青睐数字2
- 神舟K650D-G4D2安装ubuntu18.04出现的[Firmware Bug]
- 六万播放量的B站单细胞课程
- 我的2014--菜鸟慢慢在长大
- 开水团2023届实习笔试
- vmware不显示usb图标解决办法
- 企业信用代码等常用的正则验证
- java缺陷管理系统_简述:一款优秀的缺陷管理系统有哪些功能特点!