表操作

-- 截断表

TRUNCATE TABLE TABLE_NAME;

-- 删除表

DROP TABLE TABLE_NAME;

-- 查询表

SELECT * FROM TABLE_NAME;

-- 添加一条记录

INSERT INTO TABLE_NAME(COLUMN) VALUES(VALUE);

-- 删除记录

DELETE FROM TABLE_NAME WHERE COLUMN=VALUE;

-- 修改记录

UPDATE TABLE_NAME SET COLUMN1='VALUE1' WHERE COLUMN2=VALUE2;

-- 锁表查询

SELECT SESS.SID,SESS.SERIAL#,LO.ORACLE_USERNAME,LO.OS_USER_NAME,AO.OBJECT_NAME,LO.LOCKED_MODE FROM V$LOCKED_OBJECT LO,DBA_OBJECTS AO,V$SESSION "SESS" WHERE AO.OBJECT_ID=LO.OBJECT_ID AND LO.SESSION_ID=SESS.SID;

-- 解除锁表

ALTER SYSTEM KILL SESSION 'XXX,XXX';

时间

-- 查询系统时间

SELECT SYSDATE FROM DUAL;
SELECT CURRENT_DATE FROM DUAL;
SELECT SYSTIMESTAMP FROM DUAL;

-- 字符串转时间

SELECT TO_DATE('1970-01-01 01:00:00','SYYYY-MM-DD HH24:MI:SS') FROM DUAL;

-- 拼接当天第一秒和当天最后一秒

SELECT TO_DATE(TO_CHAR(SYSDATE,'yyyy-mm-dd') || ' 00:00:01','yyyy-mm-dd hh24:mi:ss') FROM DUAL; -- 当天第一秒
SELECT TO_DATE(TO_CHAR(SYSDATE,'yyyy-mm-dd') || ' 23:59:59','yyyy-mm-dd hh24:mi:ss') FROM DUAL; -- 当天最后一秒

-- 查询系统数据库时区

SELECT DBTIMEZONE FROM DUAL;

-- 修改系统数据库时区为 +8:00

ALTER DATABASE SET TIME_ZONE='+8:00';

-- 查看session所属时区

SELECT SESSIONTIMEZONE FROM DUAL;

-- 修改session所属时区

ALTER SESSION SET TIME_ZONE='+8:00'; --原本为-UTC

系统

-- 查询数据库版本

SELECT * FROM V$VERSION;

-- 系统游标修改

ALTER SYSTEM SET OPEN_CURSORS =2000 SCOPE=BOTH; --改为2000

-- 查询当前SID

SELECT NAME FROM V$DATABASE;

-- 查看连接数

SELECT COUNT(*) FROM V$PROCESS;

-- 查看最大连接数

SELECT VALUE FROM V$PARAMETER WHERE NAME = 'processes';

-- 修改最大连接数 sqlplus 需要重启

ALTER SYSTEM SET PROCESSES = 650 SCOPE = SPFILE;

用户

-- 查询用户信息

SELECT * FROM DBA_USERS;
SELECT * FROM DBA_USERS WHERE ACCOUNT_STATUS='OPEN';
SELECT USERNAME FROM DBA_USERS WHERE ACCOUNT_STATUS='OPEN';

-- 查看当前登录用户

-- SHOW USER;

-- 创建用户

CREATE USER USERNAME IDENTIFIED BY USERPASSWORD;

-- 用户授权

GRANT CONNECT,RESOURCE,DBA TO USERNAME; --连接权限,资源访问权限,DBA权限

-- 存储过程授权

GRANT CREATE ANY PROCEDURE TO USERNAME; --创建权限
GRANT EXECUTE ANY PROCEDURE TO USERNAME; --执行权限
GRANT DEBUG ANY PROCEDURE,DEBUG CONNECT SESSION TO USERNAME; --DEBUG权限
GRANT SELECT ON SYS.V_$SESSION TO USERNAME; --对单一用户打开
GRANT SELECT ON SYS.V_$SESSTAT TO USERNAME; --对单一用户打开
GRANT SELECT ON SYS.V_$STATNAME TO USERNAME; --对单一用户打开
GRANT SELECT ANY DICTIONARY TO PRACTICE; --不采用
GRANT SELECT ON V$SESSION TO PUBLIC; --对所有用户打开,所有用户生效
GRANT SELECT ON V$SESSTAT TO PUBLIC; --对所有用户打开,所有用户生效
GRANT SELECT ON V$STATNAME TO PUBLIC; --对所有用户打开,所有用户生效
SELECT * FROM DBA_ROLE_PRIVS WHERE GRANTEE='USERNAME'; --查询角色权限
SELECT * FROM ROLE_SYS_PRIVS; ----系统权限
SELECT * FROM ROLE_TAB_PRIVS; --对象权限
SELECT * FROM ROLE_ROLE_PRIVS; --角色权限

-- 撤销用户授权

REVOKE CONNECT,RESOURCE,DBA FROM USERNAME;

-- 用户空间分配

ALTER USER USERNAME QUOTA UNLIMITED ON USERS; --不做用户空间资源限制
ALTER USER USERNAME QUOTA 300M ON USERS; --限制用户最大空间资源为300M

-- 查询用户密码过期策略

SELECT * FROM DBA_PROFILES WHERE PROFILE='DEFAULT' AND RESOURCE_NAME='PASSWORD_LIFE_TIME';

-- 修改用户密码过期策略

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; --设置密码永不过期

-- 查询用户密码失败策略

SELECT * FROM DBA_PROFILES WHERE PROFILE='DEFAULT' AND RESOURCE_NAME='FAILED_LOGIN_ATTEMPTS';

-- 修改用户密码失败策略

ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED; --不限制认证失败次数
ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS 30; --30累计认证失败锁定账户

-- 查询 CONNECT_TIME 所在资源文件名

SELECT RESOURCE_NAME,PROFILE FROM DBA_PROFILES;

-- 修改资源限制

ALTER PROFILE DEFAULT LIMIT CONNECT_TIME UNLIMITED; --不限制连接超时
ALTER PROFILE DEFAULT LIMIT CONNECT_TIME 60; --限制连接60分钟超时
ALTER PROFILE DEFAULT LIMIT IDLE_TIME UNLIMITED; --不限制会话超时
ALTER PROFILE DEFAULT LIMIT IDLE_TIME 20; --限制会话最长连续空闲时间为20分钟

-- 查询资源限制值

SELECT RESOURCE_NAME,LIMIT FROM DBA_PROFILES WHERE PROFILE='DEFAULT';

-- 查询用户使用PROFILE文件

SELECT USERNAME,PROFILE FROM DBA_USERS;

-- 查询用户资源使用监控是否开启

SELECT NAME,VALUE FROM GV$PARAMETER WHERE NAME='resource_limit';

-- 开启用户资源使用监控

ALTER SYSTEM SET resource_limit=TRUE;

存储过程

-- 创建存储过程

CREATE OR REPLACE PROCEDURE PROCNAME
AS
BEGIN
DBMS_OUTPUT.PUT_LINE('STORED PROCEDURE PROCNAME'); --控制台输出
END;

-- 查看存储过程

SELECT TEXT FROM USER_SOURCE WHERE NAME = 'PROCNAME' ORDER BY LINE;

-- 调用存储过程

CALL PROCNAME();

BEGIN
PROCNAME;
END;

-- 删除存储过程

DROP PROCEDURE PROCNAME;

视图

-- 创建视图

CREATE VIEW VIEW_NAME AS
SELECT SYSDATE FROM DUAL
WITH READ ONLY;

-- 查看视图

SELECT * FROM VIEW_NAME;

-- 视图授权

GRANT SELECT ON VIEW_NAME TO USERNAME;

-- 撤销视图授权

REVOKE SELECT ON VIEW_NAME FROM USERNAME;

-- 删除视图

DROP VIEW USERNAME;

外部ORACLE连接

-- 创建一个外部ORACLE连接

create database link dblink_name
connect to USERNAME identified BY "USERPASSWORD"
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = "IPADDR")(PORT = "PORT"))
)
(CONNECT_DATA =
(SERVICE_NAME = "ORCL")
)
)';

-- 查询数据库相关连接

SELECT OWNER,OBJECT_NAME FROM DBA_OBJECTS WHERE OBJECT_TYPE='DATABASE LINK';
SELECT * FROM DBA_DB_LINKS;

-- 删除数据库连接

DROP DATABASE LINK dblink_name;

-- 从外部ORACLE连接查询数据

SELECT * FROM USERNAME.TABLENAME@dblink_name;
SELECT * FROM TABLENAME@dblink_name;

ORACLE数据库相关操作的更多相关文章

  1. python访问Oracle数据库相关操作

    环境: Python版本:3.6.6 win系统:64位 Linux系统:64位 首先安装配置时,版本必须一致!包括:系统版本,python版本,oracle客户端的版本,cx_Oracle的版本! ...

  2. mysq数据库相关操作

    (一)常用SQL语句 1.SELECT USER() 得到登陆的用户 2.SELECT VERSION() 得到mysql的版本信息 3.SELECT NOW() 得到当前的时间 4.SELECT D ...

  3. ORACLE数据库误操作执行了DELETE,该如何恢复数据?

    ORACLE数据库误操作执行了DELETE,该如何恢复数据? 原创 2016年08月11日 17:23:04 10517 作为一个程序员,数据库操作是必须的,但是如果操作失误,一般都会造成比较严重的后 ...

  4. eclipse利用sql语句对Oracle数据库进行操作

    对Oracle数据库执行操作的sql语句中表名和列名都需用英文双引号("")括起来. 注(\为转义符) 1.插入数据 sql = "insert into \" ...

  5. oracle数据库相关知识点

    已知表如下:

  6. ADO.Net对Oracle数据库的操作【转载】

    一 ADO.Net简介 访问数据库的技术有许多,常见的有一下几种:开放数据库互联(ODBC).数据访问对象(DAO).远程数据对象 (RDO). ActiveX数据对象(ADO).我们今天主要要学习A ...

  7. 【转】ADO.Net对Oracle数据库的操作

    一 ADO.Net简介 [转自网络,收藏学习] 访问数据库的技术有许多,常见的有一下几种:开放数据库互联(ODBC). 数据访问对象(DAO).远程数据对象(RDO). ActiveX数据对象(ADO ...

  8. Oracle数据库一些操作信息

    Oracle数据库如何查看当前用户角色权限及默认表空间查看当前用户的一些信息,包括用户拥有的角色权限信息.用户表空间以及用户和默认表空间的关系等--查看用户的角色权限1.查看当前用户拥有的角色权限信息 ...

  9. jmeter实现对Oracle数据库的操作

    实现目的 有时候,根据业务需要,可能需要直接对数据库进行性能测试,此时可利用jmeter对Oracle.MySQL等数据库进行相关测试. 脚本实现 添加JDBC Connection Configur ...

  10. Oracle 数据库简单操作

    现在大型企业一般都用Oracle数据库,Oracle数据库在一般采用expdp,impdp 导出导入数据,但是在操作中经常会遇到一些问题.下面来浅析这些问题. 1. 导出数据 一般导出数据的时候需要建 ...

随机推荐

  1. .net core/5/6/7中WPF如何优雅的开始开发

    WPF是微软的.net平台中的一个桌面客户端应用程序框架,经常用于企业开发windows桌面客户端,广泛应用于中小企业快速开发一款工具,本人也是比较喜欢利用WPF开发一些小工具. 目录 知名案例 .n ...

  2. 解决一个mysql报错

    问题描述 insert into btsync (key,title) values ('a','b'); ERROR 1064 (42000): You have an error in your ...

  3. 5V升压12.6V

    产品概述 PW4053 是一款 5V 输入,最大 1.2A 充电电流,支持三节锂离子电池的升压充电管理 IC.PW4053 集成功率 MOS,采用异步开关架构,使其在应用时仅需极少的外围器件,可有效减 ...

  4. ChatGPT能做什么?ChatGPT保姆级注册教程

    最近 OpenAI 发布的 ChatGPT 聊天机器人很火,该聊天机器人可以在模仿人类说话风格的同时回答大量的问题. 在现实世界之中,例如数字营销.线上内容创作.回答客户服务查询,甚至可以用来帮助调试 ...

  5. python多线程批量操作交换机

    import time import socket import threading def device_info(): ip_list = [] name_list = [] user_list ...

  6. TabControl控件的简单使用-添加tab

    1.首先创建一个MFC对话框框架,在对话框资源上从工具箱中添加上一个Tab Control 控件,根据需要修改一下属性,然后右击控件,为这个控件添加一个变量,将此控件跟一个CTabCtrl类变量绑定在 ...

  7. uniapp(vue)实现点击左侧菜单,右侧显示对应的内容

    <template> <view class="container"> <view class="fication-search" ...

  8. Shiro-721反序列化漏洞

    漏洞名称 Shiro-721(Apache Shiro Padding Oracle Attack)反序列化 利用条件 Apache Shiro < 1.4.2 漏洞原理 Apache Shir ...

  9. Spring MVC的运行流程

    Spring MVC的运行流程 摘要:本文档主要结合官方给出的Spring MVC流程图结合一个简单的Spring MVC实例,分析并介绍了Spring MVC的运行流程. 目录 Spring MVC ...

  10. 深入探究Java中的对象类型变量声明操作——在声明对象时,系统究竟做了什么?

    深入探究Java中的对象类型变量声明操作--在声明对象时,系统究竟做了什么? 摘要:本文主要对Java中的对象类型变量的声明的底层原理做了探究. 目录 深入探究Java中的对象类型变量声明操作--在声 ...