oracle数据库
文章平均质量分 52
mlovelcottage
公无渡河,公竟渡河
展开
-
oracle数据库计算两个时间类型字段值的时间差,并转换为合适的时间格式显示(按时分秒展示)
1.背景 数据库表名为tablename。其中两个字段为startdate(开始时间),closedate(结束时间)。2.需求 建立试图,查询出间隔时间并显示为自定义的格式。3.sql语句 select t.*, round(to_number(t.closedate-t.startdate)*24*60*60)||'秒' "在线时长(秒)",(decode((trunc(to_numb...原创 2018-03-19 20:48:17 · 4642 阅读 · 0 评论 -
9 数据库完整性控制
1.数据完整性(Data Integrity) ORACLE提供了丰富的数据完整性控制措施来保证数据的可靠性。数据完整性(Data Integrity)是指数据的精确性(Accuracy)和可靠性(Reliability)。2.方法及实现(1)防止从表无效数据被插入数据表中 或 防止删除已有数据造成数据失效 可创建主外键约束,具体语句见该系列第二篇文章。(...原创 2019-01-26 23:11:53 · 1263 阅读 · 0 评论 -
10 PL/SQL控制语句和存储过程
1.背景与SQL Server采用T-SQL语言类似,Oracle也拥有自己的控制语言PL/SQL。2.应用场景及代码实现(1)比较两个值的大小并输出(if else endif),条件嵌套循环(多重if else endif)(case when then),--比较值并输出DECLARENUMBER1 INTEGER:=9;NUMBER2 INTEGER:=10;BE...原创 2019-01-30 17:13:48 · 205 阅读 · 0 评论 -
4 数据查询中的函数使用
(1)查找并替换字符串 REPLACE(FIELD,oldValue,newValue)--查询并将SDEPT字段的值‘计算机’改为‘COMPUTER’SELECT REPLACE(SDEPT,'计算机','COMPUTER') 所在班级FROM STU;(2)获取字符的ASCII码 ASCII(char)--分别输出‘A’‘Z’‘0’‘ ’四个字符的ASCII码值SELEC...原创 2019-01-16 23:16:08 · 220 阅读 · 0 评论 -
5 高级查询和子查询
1.主要包含筛选,分组,排序,将多表连接查询等操作 以及子查询2.实例和语句(1)group by分组 (CUBE,ROLLUP,GROUPING,HAVING)--分组 使用CUBE汇总数据 (显示了所选列中值的所有组合的聚合)SELECT SDEPT,SNO,MAX(SAGE)FROM STU GROUP BY CUBE(SNO,SDEPT);--使用ROLLUP汇总数据...原创 2019-01-20 22:48:34 · 197 阅读 · 0 评论 -
11 触发器
一。背景简介 触发器是一种特殊类型的存储过程,类似于其它编程语言的时间函数,当有操作影响到触发器保护的数据时,触发器就自动发生。触发器主要是通过事件进行触发而被执行的,而存储过程可以通过存储过程名字而被直接调用。Oracle提供了如下5种类型的触发器:语句触发器、行触发器、INSTEAD OF触发器、系统条件触发器和用户事件触发器。二。应用场景以及代码实现(1)创建语句触发...原创 2019-02-11 16:59:03 · 294 阅读 · 0 评论 -
12 事务处理和并发控制
1.背景简介 事务是Oracle中进行数据库操作的基本单位。当需要一次性执行SQL语句块中的所有语句时,可以采用事务的方式,用以保证数据的一致性和完整性。2.应用场景及代码(1)对事务的操作sqlserver中事务通过BEGIN TRANSACTION来标记开始,而oracle采用隐式事务。即从执行DML语句时事务开始,显式提交事务,使用COMMIT,或者在之后执行DC...原创 2019-02-13 17:01:24 · 168 阅读 · 0 评论 -
14 数据库备份与还原
一。语句及操作以下操作都在sqlplus中执行。如何使用打开sqlplus的2.(2)1.备份数据库(1)EXP USER/PASS@DBNAME FILE=... FULL=Y; --FULL=Y导出整个数据库的结构。(2)导出用户所有数据 EXP USER...原创 2019-02-18 16:26:00 · 277 阅读 · 0 评论 -
15 ORACLE简单性能优化
一。仅是简单调优,并非专业1.避免过多使用通配符“*”来查询,如果有明确的列查询目标的话。可以在sqlplus中‘SET TIMING ON’来显示sql执行时间,也可以直接在plsql中看到语句执行时间。2.尽可能减少记录集行数。 使用where ... order by,然后rownum3.使用ROWID高效删除重复记录。DELETE FROM STU A WHERE A....原创 2019-02-18 17:00:15 · 351 阅读 · 0 评论 -
16 oracle其它实用技巧(1)
一。背景及代码实现1.查看oracle版本,表所占用空间,最大连接数,活动用户和表空间占用情况,数据文件存放路径等(有些查询需要管理员的权限)--查看版本select * from V$VERSION;--查看表所占用的空间SELECT TABLE_NAME, NUM_ROWS,BLOCKS*8/1024/1024 "Size M"FROM DBA_TABLESWHERE ...原创 2019-02-19 16:31:11 · 331 阅读 · 0 评论 -
13 游标
1.背景 游标,是指一种能从包括多条数据记录的结果集中每次提取一条记录的机制。简单地说,游标提供了一种在服务器内部处理结果集的方法,它可以识别一个数据集合内部指定的工作行,从而可以有选择地按行采取操作。游标是映射在结果集中一行数据上的位置实体,有了游标,用户就可以访问结果集中的任意一行数据了,将游标放置到某行后,即可对该行数据进行操作,如提取当前行的数据等。2.应用场景及语句...原创 2019-02-18 15:07:37 · 195 阅读 · 0 评论 -
17 oracle其它实用技巧(2)
1.插入全年的日期INSERT INTO TABSELECT TO_DATE('20190101','YYYYMMDD')+ROWNUM-1 FROM ALL_OBJECTSWHERE ROWNUM<= TO_CHAR(TO_DATE('20191231','YYYYMMDD'),'DDD')2.找到某列第N大的记录SELECT * FROM(SELECT SNO ...原创 2019-02-20 15:07:07 · 370 阅读 · 0 评论 -
8 数据库用户权限及角色
1.对用户的操作--创建用户CREATE USER TEST IDENTIFIED BY TIGER;--查询创建的用户SELECT * FROM ALL_USERS;--删除用户 可选参数【CASCADE】,用来表示删除用户的同时删除其建立的实体DROP USER TEST [CASCADE];--修改用户的密码ALTER USER system IDENTIFIED BY...原创 2019-01-26 22:54:15 · 1104 阅读 · 0 评论 -
7 索引,视图,同义词,序列,表空间
1.重要性索引提供对数据标的快速访问,视图给表提供了另外一种数据组织方式,应用相当广泛。2.具体事例及sql(1)对索引的操作(增删查改) 以及相关知识点--创建唯一索引(唯一索引列上的值不为空)(普通索引不加UNIQUE即可)CREATE UNIQUE INDEX UN_SNO ON TABLE(SNO ASC);--创建复合索引CREATE INDEX INDEX_SN...原创 2019-01-25 17:29:45 · 254 阅读 · 0 评论 -
oracle数据库备份与还原语句
1.导入语句(1)全导入:imp 用户名/密码@实例名 full=y file=数据库备份文件路径 ignore=y;(2)单表导入:imp username/password@ip:port/servername file="E:\dmppath.dmp" tables=(emp) ignore=y;(3)只导入表结构:imp username/password@ip:port/s...原创 2018-09-29 13:30:58 · 17338 阅读 · 0 评论 -
通过语句新建数据库表空间,新建用户及对用户授权(oracle)
1.新建表空间(地址类比进行更换)CREATE TABLESPACE 表空间名字 LOGGING DATAFILE 'D:\app\Administrator\oradata\XZGFSPC/QISDATA.ora' SIZE 3000M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ; //...原创 2018-09-29 15:11:36 · 129 阅读 · 0 评论 -
oracle数据库触发器使用 trigger
1.//更新前触发,不允许周日修改create or replace trigger auth_secure before insert or update or DELETEon tb_empbegin IF(to_char(sysdate,'DY')='星期日') THEN RAISE_APPLICATION_ERROR(-20600,'不能在周末修改表tb_e...原创 2018-09-29 15:48:57 · 320 阅读 · 0 评论 -
数据库关键字,函数及语句使用
一.数据库关键字union,unon all(重复也显示)select intoConstraint 几种约束 (check index) 二.几种函数关键字(因数据库的不同,会不一样)AVG() //UCASE()转换为大写 //lcase()mid(column_name,start,len)start起始从1开始 len() round(字段名,保留小数的位数)...原创 2018-09-29 16:35:06 · 1537 阅读 · 0 评论 -
oracle使用dblink进行数据库直连操作
1.若多个数据库之间有业务连接的需求,最简单的办法是进行数据库的直连(DbLink)(而非采用程序代码开发)】 (1)oracle连接sqlserver 有两张方案可选:在服务器建立透明网关,或建立关于sqlserver的数据源,具体配置如下: https://www.cnblogs.com/jameslif/p/4047802.html(网关的方式,建议使用) ...原创 2018-09-29 17:15:56 · 2393 阅读 · 0 评论 -
数据库函数,游标,存储过程等的使用(oracle)
1.定义并输出declarepname table.field%type;beginselect field into pname from table t where t.field_b=x;dbms_output.put_line(pname);end; 2.ifelse循环的使用declareage number(3);marry boolean ...原创 2018-09-30 00:51:09 · 584 阅读 · 0 评论 -
.Net 使用dapper访问mysql数据库
1.问题(1)在项目组,需要oracle数据库直连访问对方mysql数据库。mysql中的大文本(text类型),应该对应oracle的clob,但是在实际建立link,建立视图得到数据后发现,该大文本未取到值,所以使用接口的方式,程序无人值守拉取存储数据。(2)程序访问时,存在mysql时间为空,而程序报错的情况。Error Parse column: ** - Object. ...原创 2018-12-27 21:34:04 · 892 阅读 · 0 评论 -
1 初识Oracle PL/SQL
1.简介。 Oracle数据库知识庞杂,不仅需要掌握一定的理论(三级模式二级映像,范式,ER等),还需要熟悉实际使用操作。在对各个方面的知识有了一定掌握之后,了解到了Oracle作为关系数据库的一种,它的基本原理,和同为关系数据库的sqlserver之间的差异性等(如Oracle实例名,表空间,用户 sqlserver实例,架构,用户)。 这时候就需要系统的总结以...原创 2019-01-13 21:37:50 · 188 阅读 · 0 评论 -
2 操作数据库表
1.简介sql语句可以分为DDL(数据定义),DML(数据操作),DCL(数据控制)三类。此篇主要记录对数据表结构操作(属于DDL)。2.使用以及语句(1)增加表字段,修改表字段,删除表字段 创建表语句(在plsql中可进行图形化操作,并展示出建表语句),删除表--增加表字段ALTER TABLE TABLENAMEADD FIELD1 VARCHAR2 (20)DEFA...原创 2019-01-13 22:29:53 · 174 阅读 · 0 评论 -
3 简单数据查询
1.说明最简单的常用select查询形式,已经烂熟,笔记不再记录。烂笔头记录一些略有陌生的东西。2.案例以及sql程序(1)根据查询结果创建表,使用PLSQL提供的ROWNUM游标查询并创建--筛选记录值创建表CREATE TABLE TABLE1ASSELECT FIELD1,FIELD2,FIELD3FROM TABLE2WHERE FIELD1=22;--该句只...原创 2019-01-14 22:23:03 · 160 阅读 · 0 评论 -
6 数据操纵语言DML
1.主要为增删改语句(insert,update,delete)--INSERTINSERT INTO TABLE VALUES(...);INSERT INTO TABLE(字段) VALUES(对应值);INSERT INTO TABLE(字段) VALUES(SELECT .... FROM TABLE1 ...);--UPDATEUPDATE TABLE SET FIEL...原创 2019-01-20 23:36:27 · 217 阅读 · 0 评论 -
18 oracle其它实用技巧(3)
1.创建执行脚本文件(.sql)创建文件时注意,脚本文件的最后一行,一定要添加‘/’符号,不能用‘;’代替。--执行START F:\DATA.SQL2.加密存储过程在CMD中,“WRAP INAME='待加密PATH' ONAME='加密后PATH'” 这是系统级命令。3.找出某段时间的具体日期--查找当前月份所有周一的日期SELECT TO_CHAR(T.D,...原创 2019-02-20 16:09:17 · 343 阅读 · 0 评论