Oracle序列生成器
在实际开发中,设计数据表的时候会把某些字段定义成一个自动增长的、唯一的流水号,例如记录编号、日志编号等,MySQL和SQL Server采用的是自增字段,Oracle和PostgreSQL采用了更灵活的序列生成器。在本文中,把序列生成器简称为序列。
一、创建序列
创建序列的语法如下:
12345678create sequence 序列名 [minvalue n] [maxvalue n] [increment by n] [start with n] [cache n|nocache] [order|noorder] [cycle|nocycle];
参数说明:
Oracle的序列分为递增序列和递减序列,递减序列极少使用(二十年我从未用过),为了方便介绍,本文假设序列是递增序列。
序列名:序列名是标志符,建议以SEQ_打头,例如为T_OPERLOG表的logid字段创建一个序列,可以把它命名为SEQ_OPERLOG(或SEQ_OPERLOG_LOGID),增加数据结构的可读性,这是我的个人经验,并不 ...
Oracle虚表
Oracle数据库中存在一个特别的表dual,它是一个虚拟表,用来构成select的语法规则。Oracle对dual虚表的操作做了一些特别的处理,保证dual表里面永远只有一条记录。dual虚表存在给程序员带来了一些方便。
一、测试dual虚表
dual虚表只有一个字段,有一条记录。
1、dual虚表的结构
2、查询dual虚表中的记录
3、对dual虚表做增、删、改操作
普通用户对dual虚表只有查询权限,没有增、删、改的权限。DBA对dual虚表有全部的权限,但是,我不建议采用DBA对dual虚表进行操作,没什么意义,大家可以玩玩,但是,某些操作(删除表)可能造成数据库无法启动,请慎重,一定不能在生产环境中折腾。
二、dual虚表的用途
利用dual虚表可以调用Oracle的函数和获取序列生成器的值,虽然还可以用来做一些其它的事情,比如说计算,但是对程序员来说利用dual虚表做计算毫无意义。
1、执行Oracle的函数
1)查看当前登录用户。
2、获取数据库的日期时间
2、获取序列生成器的值
123create sequence SEQ_FREECPLUS; ...
Oracle的order by关键字
order by关键字用于对查询的结果集进行排序。
我们通过示例来介绍order by关键字的用法。
一、生成测试数据
用以下SQL创建超女基本信息表(T_GIRL),插入一些测试数据。
1234567891011121314151617181920212223create table T_GIRL( id char(4) not null, -- 编号 name varchar2(10) not null, -- 姓名 yz varchar2(10) null, -- 颜值 sc varchar2(10) null, -- 身材 weight number(4,1) not null, -- 体重 height number(3) not null, -- 身高 birthday date not null, -- 出生时间 memo varchar2(1000) ...
Oracle的where子句
where子句用于从表中或临时数据集中查找满足指定条件的记录,可用于select、update和delete语句中的条件。
一、生成测试数据
用以下SQL创建超女基本信息表(T_GIRL),插入一些测试数据。
1234567891011121314151617181920212223242526create table T_GIRL( id char(4) not null, -- 编号 name varchar2(10) not null, -- 姓名 yz varchar2(10) null, -- 颜值 sc varchar2(10) null, -- 身材 weight number(4,1) not null, -- 体重 height number(3) not null, -- 身高 birthday date not null, -- 出生时间 memo va ...
Oracle事务
一、事务的基本概念
在数据库中事务是工作的逻辑任务,一个事务是由一个或一组SQL语句组成,通过事务机制确保这一组SQL语句的操作要么全部成功执行成功,完成整个工作任务,如果任何一条SQL执行失败,对数据表所做的操作全部撤销。
事务的目的就是为了保证数据的完整性,以银行转换业务为例:
A用户向B转账1000元,步骤如下:
1)A用户账户余额减少1000元;
2)B用户账户余额增加1000元;
3)记录A用户的交易日志。
4)记录B用户的交易日志。
一笔转帐交易将产生四次数据库操作,要么全部都成功,如果有一个失败,其它操作也应该全部被撤销。
转账交易有四次数据库操作,即四条SQL语句,第一条SQL执行的时候是事务的开始,如果全部的SQL语句执行成功,提交事务,如果有任何一条SQL语句执行失败,回滚事务。
12commit; -- 提交事务。rollback; -- 回滚事务。
二、事务的特征
对一组SQL语句操作构成的事务,数据库系统必须保证这些操作的原子性、一致性、隔离性和持久性,即ACID原则。
1、原子性(Atomicity)
事务的原子性是指事务中包含的所有操 ...
Oracle的表
一、表的概念
表是数据库最基本的逻辑结构,一切数据都存放在表中,其它数据库对象(索引、视图、同义词等)都是为了更方便的操作表中的数据。Oracle数据库是由若干个表组成,每个表由列和行组成,如下表所示。
编号
姓名
颜值
身材
体重
身高
出生时间
备注
0101
西施
漂亮
火辣
48.5
170
2000-01-01 01:12:35
这是一个非常漂亮姑娘,老公是夫差,男朋友是范蠡。
0102
貂禅
漂亮
火辣
45.2
168
1997-08-02 12:20:38
王允真不是男人,干不过董卓就把美人往火坑里推,千古罪人啊。
0103
妲已
漂亮
丰满
53.6
172
1998-03-03 10:50:33
如果商真的因我而亡,您们男人做什么去了?
0104
芙蓉 姐姐
猪扒
膘肥 体壮
85.8
171
1980-05-05 10:11:55
如果不努力学习技术,将来就会娶个芙蓉姐姐,哼哼。
0105
神密 猫女
48.5
171
1989-12-08 12:10:35
不知道是什么人,她脸上有一个%符号,很神密。
1、表的列
表的 ...
Oracle数据类型
Oracle的数据类型有二十多种,包括字符串类型、数字类型、日期类型、LOB类型、LONG RAW& RAW类型、ROWID & UROWID类型。太多的数据类型很容易让初学者感到迷茫,在本文中,我将以程序员的视角,结合实际开发的需求来介绍Oracle的数据类型。
Oracle的数据类型虽然很多,但实用的只有以下几种:
1)字符串类型:char和varchar2,可表达任何字符串。
2)数字类型:number(m,n),可表达任何数字,m是数字的总长度,n是小数点后的位数,如果n为0则表示是一个整数。
3)日期类型:date,存放日期和时间,包括年(yyyy)、月(mm)、日(dd)、小时(hh24)、分(mi)、秒(ss)。
4)clob类型,存放单字节字符串或多字节字符串数据,如文本文件、xml文件。
5)blob类型,存放非结构化的二进制数据,如图片、音频、视频、office文档等。
6)rowid类型,存放表中记录在数据库中的物理地址。
一、字符串类型
在C/C++语言中用,字符串用双引号包含起来,在Oracle数据库中,字符串用单引号包含起来的,如下:
‘w ...
Oracle环境变量
一、Oracle环境变量
Oracle数据库的安装和运行都需要环境变量,常用的Oracle环境变量如下。
1、ORACLE_HOME
Oracle软件安装的根目录,存放了Oracle的可执行程序、管理工具、函数库、java虚拟机、帮助文档、示例代码等。
2、ORACLE_BASE
Oracle实例(数据库)的根目录,存放了实例的控制文件、数据文件、日志文件、审计日志、错误报告等。
3、ORACLE_SID
Oracle的实例名。
4、NLS_LANG
Oracle客户端的字符集,必须与服务端的Oracle实例保持一致,否则会出现中文乱码。
5、PATH
PATH是Linux操作系统的环境变量(可执行程序的搜索目录),在PATH中增加$ORACLE_HOME/bin是为了方便执行Oracle的应用程序。
6、LD_LIBRARY_PATH
LD_LIBRARY_PATH是Linux操作系统的环境变量(动态链接库文件的搜索目录),在LD_LIBRARY_PATH中增加$ORACLE_HOME/lib。只有C/C++程序员才关心LD_LIBRARY_PATH环境变量。
7、C ...
Oracle11g客户端安装配置
Oracle数据库管理员和开发者一定希望在自己台式电脑的Windows系统中搭建Oracle客户端工作环境。
Oracle客户端工作环境主要包括两个部分:1)Oracle数据库客户端软件,提供了Oracle客户端驱动和配置工具;2)PL/SQL
Developer软件,在该软件中,可以很方便的查看和管理Oracle数据库对象,编写、调试和运行SQL语句。
一、Oracle数据库客户端的安装
1、下载软件安装包
Oracle数据库客户端软件包名是 win64_11gR2_client.zip ,可以从Oracle公司的官网下载,链接如下:
https://www.oracle.com/database/technologies/112010-win64soft.html
或者登录C语言技术网,在资源下载栏目中可以下载。
安装Oracle数据库客户端软件不需要软件授权license,不存在破解版的说法。
2、解压运行安装程序
1)运行安装程序。
点击sertup运行后,会弹出一个DOS窗口,可能需要等几十秒。
2)如果出现了以下窗口,选“是(Y)”继续。
3)安装类型选择“管理员 ...
Oracle11g数据库快速安装
关于Oracle数据库安装的文章网上到处都是,百度一下就能找到很多,例如:
能百度到的Oracle安装是常规的方法,我就不讲了,本文向大家介绍一种更简单的非常规的安装方法,这种方法适用于初学者。
一、Oracle安装存在的问题
Oracle数据库系统对服务器的硬件和软件要求比较严格,一般来说,用于Oracle生产环境的服务器配置非常好,内存在16GB以上,在图形界面中安装Oracle非常容易,极少失败。
但是,对初学者来说,学习资源有限,一般是在VMWare虚拟机上安装CentOS操作系统,或租用最低配置的云服务器(1核1G/2G内存),不可能有那么好的服务器来安装Oracle,也可能没有图形界面。在虚拟机或低配置的云服务器上安装Oracle问题很多,莫名其妙,根本找不到问题的原因和解决方法,困难重重,让人欲哭无泪。
二、如何解决Oracle安装的问题
解决虚拟机或低配置的云服务器上安装Oracle的方法有两种:
1)不用图形界面,采用静默方式安装,这种方法的技术难度比较大,Oracle的DBA经常采用这种方法,而普通程序员很难掌握。
2)把已经安装好的Oracle软件、数据库实 ...