
3.2) Database
数据库,Oracle, SQL Server, MySQL
聪明的笨蛋
这个作者很懒,什么都没留下…
展开
-
Java函数转换成Oracle中的函数
Oracle中有个非常强大的功能就是可以把Java编写的函数转换成Oracle数据库中的函数.转换之后我们可以像一般的函数那样用它.因为Oracle本身就是Java开发的,所以自然能很好的和Java兼容.我们就来说下具体怎么操作.就举一个简单例子,创建一个生成文件的函数.1.第一步,建创java resource对象,它和function,procedure等对象一样都是Oracle中的obje...原创 2012-09-07 16:49:08 · 129 阅读 · 0 评论 -
Oracle触发器(trigger):view,schema,database
视图trigger, instead of我们知道如果一个view只是由一个table构成,那在view上做啥操作没太多限制.如果view是由多个table组成那在view上做啥unpdate,insert,delete都会出错.但有时又确实要做这些操作该咋办呢.这就需要用到trigger,然后通过instead of关键字来指定一些替代操作.举个简单例子,如果有view, my_view原创 2013-06-27 13:42:56 · 3115 阅读 · 0 评论 -
Oracle触发器(trigger):一般用法
trigger和procedure,function类似,只不过它不能被显示调用,只能被某个事件触发然后oracle自动去调用.常用的一般是针对一个表或视图创建一个trigger,然后对表或视图做某些操作时触发trigger.当然除此之外还有,schema,database级别的trigger. 什么样的操作触发trigger常见的是DML(insert,update,delete)原创 2013-06-26 17:46:07 · 42924 阅读 · 1 评论 -
SQL Server与Oracle对比:package
开发人员关注的数据库特性作为一个开发人员而不是DBA我们对数据库关注的侧重点肯定不一样.我们不太需要知道备份,配置,优化,维护数据库.我们关注的是应用程序中需要的数据是怎么保存在数据库中的(被保存成一个个的表),以及怎么存储读取表中数据,表自然也是数据库最最重要的东东了.当然为了更好的操作表中的数据,保证数据的完整性.又衍生出些其他功能机制.比如trigger(触发器),function(函数...原创 2013-06-21 11:24:34 · 3373 阅读 · 1 评论 -
Oracle权限管理(三):查找用户具有的权限
我们知道Oracle的权限划分的很细,所以做很多操作如果没有相应的权限就会出错.只有创建数据库后默认生成的用户sys是权限最高的,也拥有的有的权限.假如有用户Arwen,我们怎么查找该用户拥有的所有权限呢?我们知道最常见有系统权限和对象权限.不过实际上还有些特殊的权限严格来说不归为这两类. 系统权限(System Privileges)所谓系统权限指允许用户执行特定的操作.该操作一原创 2013-06-09 16:43:43 · 11078 阅读 · 0 评论 -
SQL Server与Oracle对比学习:权限管理(一)
我们发现我们现在的生活中到处是涉及到密码,你要记各种各样的密码.比如银行卡,邮件,QQ,微博,游戏,各种网站会员.使用数据库自然也不例外,得先整个用户名和密码才能登进去使用里面的数据啊.虽然也有啥windows验证不用你输密码了,但那实际上也是需要你登陆windwos的用户名和密码. Oracle权限管理 创建用户 create user ar...原创 2012-10-20 12:59:13 · 1936 阅读 · 0 评论 -
Oracle物理结构与逻辑结构
实例与数据库 Oracle Server = Oralce Instance + Oracle Databse DBMS(Data Base Management System)数据库管理系统,顾名思义是一个管理数据的系统,那么首先得有数据,然后管理就是通过Instance(实例)来体现,实例就是一些内存结构和后台进程,其实简单的说就是一个在运行的程序,程序在操作系统上运行时会生成原创 2012-03-08 15:31:04 · 1979 阅读 · 0 评论 -
衡量服务器性能的标准TPC
我们平时买个人电脑时一般会看CPU,内存,硬盘,显卡,操作系统等一些信息,但这样只能有一个直观的感觉.没有一个统一的标准来衡量这台电脑是好还是坏,性价比高不.不过个人电脑就自己用用,价钱也不贵,也不用太较真.但要买服务器(server)就不同了,不仅价钱昂贵,而且是很多人用,影响重大,必须得慎重考虑...这时我们自然也会考虑Server的硬件,操作系统等信息.但同样这不容易有个客观的...原创 2012-07-26 11:54:42 · 2876 阅读 · 0 评论 -
Oracle包XMLDOM创建XML文件及其缺点
Oracle有一个包XMLDOM,可以很方便的创建XML文件.举个简单的例子.生成Test.xml,内容如下 Arwen 123 Tom 456 -----------原创 2011-12-26 20:01:13 · 5350 阅读 · 7 评论 -
令人迷糊的Oracle递归查询(start with)
写代码时碰到要弄清楚Oracle的role之间的传递关系,就是有role A的话,可以通过grant A to B,把A赋予给B,又通过grant B to C .那我想知道所有role中,有哪些role具有A的权限.上网一查发现有个递归查询,不过都讲的不是太详细,而那Oracle整的那用法实在太怪异了,跟我们平时用的SQL差的太远,所以琢磨了好一阵子脑子才转过弯呢.树形结构可能一看到原创 2012-11-23 22:03:06 · 43711 阅读 · 7 评论 -
数据库产生的背景
市场上出现某个产品往往是为了满足大家啥需求.只有在某个需求背景下才会产生相应的产品来.当然也有人说再厉害点的公司是创造一种需求出来,但实际上也要人在潜意识里有那种需求才行的,人可能在潜意识里有很多需求,只不过他自己也不确切的知道,你通过一个产品帮助他发现罢了.说到这里就忍不住想来聊点题外话了,我们经常听到这样一种说法,把公司分为三种境界. 题外话,公司和程序员等级划分 ...原创 2012-10-20 18:47:39 · 4641 阅读 · 0 评论 -
Oracle分区表用法
分区表的用处我们oracle中的表数据最终是保存到磁盘文件中.默认情况下表中的数据都是放到一起的,但表中的数据一多,对表的操作就会变得较慢.而分区表是把一个表中的数据保存到不同地方去.这样会带来如下好处.1.减小表中数据损坏的可能性,数据分散到不同地方了嘛.另外可以单独对不同的分区做备份与恢复操作.2.提高IO性能,表分我后可能就保存到不同的磁盘上去了.这样可以并行的读取表中数据.原创 2013-06-27 17:17:07 · 5245 阅读 · 0 评论 -
sql语句分类
1.数据查询语言:select例如:select * from scott.emp;2.数据操纵语言(DML,Data Manipulation Language)包括insert ,update,delete.有时把select也归于此类.DML操作后必须提交(即commit;)才能真正将改变应用到数据库中.1.insert:INSERT INTO 表名称 VAL原创 2011-11-01 09:38:40 · 1043 阅读 · 0 评论 -
Oracle ACL(Access Control List)
在oralce 11g中假如你想获取server的ip或者hostname,执行如下语句SELECT utl_inaddr.get_host_address FROM dual; //获取IPSELECT utl_inaddr.get_host_name FROM dual;//获取host 名字如果在oracle 9i中能够正常执行,但在11g中你可能会得到一个莫名其妙的错误原创 2013-07-15 16:27:02 · 6942 阅读 · 0 评论 -
衡量服务器性能的标准TPC
我们平时买个人电脑时一般会看CPU,内存,硬盘,显卡,操作系统等一些信息,但这样只能有一个直观的感觉.没有一个统一的标准来衡量这台电脑是好还是坏,性价比高不.不过个人电脑就自己用用,价钱也不贵,也不用太较真.但要买服务器(server)就不同了,不仅价钱昂贵,而且是很多人用,影响重大,必须得慎重考虑...这时我们自然也会考虑Server的硬件,操作系统等信息.但同样这不容易有个客观的标准,因为单独...原创 2012-09-07 16:50:14 · 306 阅读 · 0 评论 -
Oracle回收站(recyclebin)
我们都比较熟悉windows中的回收站,文件删除后放到回收站里还可以再复原.Oracle回收站的原理完全一样,只是实现的细节方面有些差异.另外回收站中只能回收表和相关的对象包括索引、约束、触发器、嵌套表、大的二进制对象(LOB)段和LOB索引段.从Orace 10g开始有回收站的功能.1.回收站启动和关闭回收站默认是开启的.不过我们可以通过参数recyclebin来关闭和开启.如果只是针对每...原创 2012-09-07 16:51:24 · 223 阅读 · 0 评论 -
面向对象思想在Oracle表中的应用
我们知道现在大部分流行的编程语言都是面向对象的.面向对象里一切皆是对象.也就是说一个个的class.在Oracle数据中其实也用到这种思想.我们大部分时候创建一个表时指定每一列的类型都是系统默认的类型.但是有时候为了更加直观,方便我们也可以自定义一些类型,然后建表时指定一列为自定义的类型.这样的表叫对象表例如我创建一个部门信息表,包括员工姓名,年龄,部门.一般情况都是这样建表:CREATE ...原创 2012-09-07 16:55:06 · 189 阅读 · 0 评论 -
C++调用SQLite简单示例
先去SQLite的官方网站,下载源码.http://www.sqlite.org/然后编译后(我用的微软的VS),生成sqlite3.lib 和 sqlite3.dll两文件.然后在VS中新建一个Win32 project. 把sqlite3.h ,sqlite3.lib,sqlite3.dll三个文件拷贝到project的目录下.把自动生成的的代码全部删掉 在项目中添加一个CPP...原创 2013-01-30 15:01:19 · 1978 阅读 · 0 评论 -
C#操作MySql,PostgreSQL
我们都对MySql比较熟悉,相较而言PostgreSQL就没那么出名.其实它们是两个比较类似的关系型数据库.PostgreSQL原来的名字叫Postgres,做了一些改进后就改名为PostgreSQL了.详细介绍可以去官方网站看看MySQL官网:http://www.mysql.com/PostgreSQL官网:http://www.postgresql.org/MySQL装好后一般没...原创 2012-09-13 16:37:04 · 2872 阅读 · 0 评论 -
SQLite简介,C#调用SQLite
当我们用到海量数据时一般会用Oracle,SQL Server,DB2,Sybase,MySQL等数据库来保存和管理数据.如果只是程序中需要保存少量数据的话直接整到注册表里,或者保存到一个XML文件中.那如果数据量刚好不多不少,用Oracle这样的数据库有点小题大作,没有必要.有个XML保存的话存取速度又比较慢.咋整呢?这时用SQLite这个小型的嵌入式数据库就是非常理想的选择.它用起来...原创 2012-09-13 16:07:56 · 16079 阅读 · 1 评论 -
Sybase简介
八卦一下 刚开始Sybase的数据库一般叫作Sybase SQL Server,你没仔细瞧还以为是微软的SQL Server呢.实际上两者是有很大关联的.SQL Server最初是由Microsoft ,Sybase与Ashton-Tate三有公司共同研发的.到最后大家合不来就散伙了啊.微软自己单独整去了,而由于它的名气大,整出的数据库使用也广.所以现在说到SQL Server就是指的微软...原创 2013-05-21 15:15:44 · 3960 阅读 · 0 评论 -
DB2简介
IntroDB2是IBM的数据库产品,现在较常用的版本是DB2 UDB (DB2 Universal Database). DB2的客户端也有图形界面的管理工具.哎这年头啥软件都想着使用户用着方便点,人天生的视觉动物啊,记那么多的命令行命令可没可视化界面来的爽啊.DB2客户端最主要的界面工具叫Control Center,打开之后公看到左边有啥All Systems,All Databas...原创 2013-05-21 17:22:47 · 3752 阅读 · 0 评论 -
Oracle RAT- Real Application Testing
RAT 是Oracle 11g的一个新特性.它的目的是评估数据的性能。当我们对数据库进行升级或改动一些配置,换数据库服务器时可以对改动之前和改动之后的性能进行对比.要使两者的性能具有可比性,并且切合实际。就需要先在生产环境中capture某一个时间段的所有操作。然后把它们在测试环境中进行replay. 一.Capture步骤创建一个系统原创 2011-10-26 11:26:15 · 4452 阅读 · 0 评论 -
Oracle 12C 简介
2013年6月26日,Oracle Database 12c版本正式发布,首先发布的版本号是12.1.0.1.0,率先提供下载的平台有Linux和Solaris:Oracle官方下载地址:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html 像之前10g, 11g里的原创 2013-07-15 16:49:16 · 21344 阅读 · 0 评论 -
SQL Server与Oracle对比学习:权限管理(二) 一些有趣的比喻
SQL Server权限管理 login 与user的区别我玩惯了Oracle刚一来玩SQL Server就被login 和user这样的概念搞的有点迷糊了.因为Oracle中没有这样的区分.就一个用户登进去,然后自己创建了啥表等对象就保存在自个的用户下面.别人想访问你用户下的表得需要额外权限...原创 2012-10-21 12:49:33 · 2646 阅读 · 0 评论 -
SQL Server连接Oracle详细步骤
我们知道SQL Server和Oracle其实很多原理都类似.特别是一些常用的SQL语句都是按照标准来.所以它们也可以有一定的互操作性的.这里讲一下,怎么配置让SQL Server连接一个Oracle.然后你在SQL Server中也能查看Oracle中表的内容.我先说下我使用的环境:操作系统: win7 64 ,SQL Server 2008 ,Oracle Server 11gr1...原创 2012-10-20 15:54:15 · 50185 阅读 · 2 评论 -
Oracle怎么更改用户名
很多人都以为oracle可以很容易的改密码,但不能改用户名字.实际上名字也可以改的.只不过改起来有点麻烦. 改用户名的用处至于改名字的用处嘛,在这样一种情景下非常有用.假如某个公司给每个员工一个账户,用户名就是你的英文名.当某个员工arwen要离职了,那就要删除掉用户arwen了.但是我们知道oracle中用户与此用户下面创建的对象是完全绑定到一起的,而不像sql server中表等对原创 2012-10-21 10:33:23 · 12014 阅读 · 0 评论 -
SQL正则表达式
当我们要进行一些简单的糊涂查询时用百分号(%),通配符(_)就可以了.其中%表达任意长度的字符串,_表示任意的某一个字符.比如select * from emp where ename like 's%' or ename like 's_';但如果在一些复杂的查询中关用这两个符号sql语句就会非常复杂,而且也不一定能实现.从Oracle 10g开始引入了在其他程序语言中普通使用的正则表达原创 2011-11-07 18:31:35 · 95661 阅读 · 1 评论 -
序列(sequence)
1.为啥要用序列:序列可以自动生成递增或递减的不重复的数字.所以用它来做表的主键是一个高效的方法.不然手动去为每一行生成一个主键可是个麻烦的事2.创建序列:语法:CREATE SEQUENCE [schema.]sequence_name[START WITH i] [ INCREMENT BY j] [M原创 2011-11-08 18:10:36 · 981 阅读 · 0 评论 -
SQL_DML语句基础知识(一)
1.去除重复的行:SELECT DISTINCT ename FROM emp;2.连接表达式SELECT ename||'的部门号是'||deptno FROM emp;3.处理NULLSELECT NVL(ename,'noname') FROM emp; --如果某行ename为空则显示noname,不为空则显示ename的值.4.日期类型显示格式如果表arwen原创 2011-11-10 20:09:31 · 1028 阅读 · 0 评论 -
SQL_DML语句基础知识(二)
1.利用查询语句建表CREATE TABLE employe AS SELECT * FROM emp;不过这样建表会把emp表中的数据也都复制过来了.如果只想复制表的结构而不复制数据的话则这样CREATE TABLE employe AS SELECT * FROM emp WHERE 1=2; --此处1=2可以换成任何一个表达式,只要是使WHERE语句后面条件返回FALS原创 2011-11-11 17:56:00 · 3241 阅读 · 0 评论 -
同义词(synonym)
1.为啥要用同义词:同义词,顾名思义就是两个词的意思一样,可以互相替换.那它的作用有哪些呢:a一个最明显的目的就是简化sql.如果某个数据库对象的名字太长了,可以创建一个短一点的同义词.就相当于是缩写呗.b.另外一个目的是隐藏一些对象的信息.比如查找另一个 schema中的某个表,需要在表名前加schema名做为前缀.如果创建一个同义词就可以隐藏schema信息.2.怎么创建同义词原创 2011-11-08 16:32:36 · 1928 阅读 · 0 评论 -
给表和列添加注释
在sql语句中我们可以在语句后加两个连接符,然后写些注释.那怎么对表和列加一些注释呢.这样的注释也是非常有用的,因为我们看到一个表或列时光看名字顾名思义还是比较困难的. 1.对表加注释: 创建注释语法:COMMENT ON TABLE table_name IS 'comment text';查找注释语法:SELECT comments FROM user_tab_原创 2011-11-09 17:52:49 · 2203 阅读 · 0 评论 -
视图(view)
1.为啥使用视图视图是一个表或几个表的映射,是虚表其实我们也可以拿它跟同义词类比下,当然它们还有很多不同 点了.我们可以把视图当作一串串长长的查询语句的同义词来理解.视图有用处主要是1.简化查询,我们可以基于一个复杂的查询语句来建立一个视图,这样我们以后只要直接查询视图就行2.限制数据访问.如果只希望某些用户只能访问表中的某几列数据,则可以用这几个列形成一个视图2.创建视图:语原创 2011-11-09 14:18:36 · 938 阅读 · 0 评论 -
面向对象思想在Oracle表中的应用
我们知道现在大部分流行的编程语言都是面向对象的.面向对象里一切皆是对象.也就是说一个个的class.在Oracle数据中其实也用到这种思想.我们大部分时候创建一个表时指定每一列的类型都是系统默认的类型.但是有时候为了更加直观,方便我们也可以自定义一些类型,然后建表时指定一列为自定义的类型.这样的表叫对象表例如我创建一个部门信息表,包括员工姓名,年龄,部门.一般情况都是这样建表:CREA原创 2011-11-10 17:52:39 · 1065 阅读 · 0 评论 -
约束条件(constraint)
1.为啥使用约束条件:约束条件也叫完整性约束条件,当对表中的数据做DML操作时会验证数据是否违反约束条件.如果违反了DML操作会失败.约束条件可以应用于表中的一列或几列,应用于整个表或几个表之间.约束条件分类:非空(NOT NULL),唯一(UNIQUE),主键(PRIMARY KEY),外键(FOREIGN KEY),检查(CHECK).其中NOT NULL只能应用于列.假如要应用于原创 2011-11-09 16:43:40 · 11366 阅读 · 0 评论 -
索引(index)
1.创建索引 使用索引是为了提高查询效率,主要用在select语句中.像我们的书本前面的目录一样.创建索引的语法:CREATE [UNIQUE] INDEX index_name ON table(column[,column..]);其中index_name是索引名字,推荐的命名规范是idx_tableName_columnNametable是数据库表名.column原创 2011-11-09 11:38:53 · 1147 阅读 · 0 评论 -
Oracle FGA
大家对trigger可能比较熟悉,但Oracle还有一个叫FGA的功能,它的作用和trigger类似,但功能更强大.它的全称是Fine-Grained Audit ,是Audit的一种特殊方式.使用FGA只要调用Oracle的包DBMS_FGA.ADD_POLICY创建一些policy(审计策略)就行.每个policy只能针对一个表或视图.建好策略后所以对表或视图的DML操作(select,ins原创 2011-12-30 19:04:47 · 4546 阅读 · 0 评论 -
Java函数转换成Oracle中的函数
Oracle中有个非常强大的功能就是可以把Java编写的函数转换成Oracle数据库中的函数.转换之后我们可以像一般的函数那样用它.因为Oracle本身就是Java开发的,所以自然能很好的和Java兼容.我们就来说下具体怎么操作.就举一个简单例子,创建一个生成文件的函数.1.第一步,建创java resource对象,它和function,procedure等对象一样都是Oracle中原创 2011-11-22 21:59:46 · 2456 阅读 · 0 评论 -
Oracle时间类型date,timestamp时间差计算
Oracle的时间类型有两种date和timestamp. date精确到秒,timestamp精确到毫秒. 1.计算date类型的时间差 可以先把年,月,日,小时,分,秒用to_char函数拆分出来,再用to_number函数转换成数值类型.有了这些单独分开的时间就好办了.就再一个个的去减,记得考虑单位换算就行.比如都转换成小时或分之类的示例:declarev_d原创 2011-12-30 17:57:51 · 8964 阅读 · 0 评论