文章分类 - 从实践中学习oracle
摘要:同义词Synonym: 引入同义词Synonym的原因: 有些表名或者其他对象太长,虽然增加了易读性,但是在引用这些表或对象时不方便,容易输入错误。Oracle系统提供的同义词(Synonym)就是用来解决以上的难题的。 怎样创建同义词(Synonym): CREATE SYNONYM s FRO
阅读全文
摘要:序列(Sequence)和同义词(Synonym) 序列的引入: 序列Sequence有什么特点? 它是一个可以由多个用户共享的数据库对象 它是一个序列号产生器,专门为表中的数据行自动产生序列号 序列号是Oracle内部例程产生和维护的 它独立于使用它的表 它通常是用来产生主键 它可以取代产生序列号
阅读全文
摘要:视图 什么是视图? 视图是用户所看到的图像,这个图像并不是真正的数据。是经过转换后的一种数据表示。 为什么引入视图? 维护数据的独立性。 什么是数据的独立性呢? 早期的信息系统的设计与开发多采用模块驱动方式,即设计与开发者首先根据用户的需求建立功能模块(过程和函数),再由这些模块来决定结构和存储。以
阅读全文
摘要:约束 为什么要引入约束? 维护数据库的一致性 Oracle提供以下5种约束: 非空(NOT NULL) 唯一(UNIQUE) 主键(PRIMARY KEY)-- 维护实体完整性 外键(FOREIGN KEY)--用来维护主从表之间的引用完整性 条件(CHECK) 约束时添加在表上的,因为只有表中存有
阅读全文
摘要:索引 为什么引入索引? 索引的概念很简单,类似图书馆的图书目录作用。Oracle为了提高查询效率引入索引。Oracle索引是按照关键字的顺序存放记录的,也叫数据结构。在索引记录中存有索引关键字和指向标中真正数据的指针。由于Oracle所以中值存储索引关键字和指向标中真正数据的指针,因此它的规模比真正
阅读全文
摘要:数据的维护数据的维护包括了数据库操作语言DML(Data Manipulating Language)和事务控制(Transaction Control)两大部分。其实DML只包含了以下3个语句: INSERT/UPDATE/DELETE 准备工作: CREATE TABLE emp_DML( id
阅读全文
摘要:替代变量 前面的SQL语句都有一个共同的特点,即每一次执行SQL语句都会产生相同的结果。这样的SQL语句在商业系统几乎没有什么实际的作用引入替代变量 SELECT empno, ename, sal FROM emp WHERE sal >= 1500; 改变需求要1600以上,你的SQL无法重用。
阅读全文
摘要:创建表 1、创建表的语句和例子 我们用CREATE TABLE 语句来创建表。该语句为数据库定义语言(DDL-Data Definition Language)。 格式: CREATE TABLE [用户名.]表名 (列名 数据类型 [DEFAULT 默认值][,...]); 例子: CREATE
阅读全文
摘要:控制SQL*PLUS的环境和数据字典 控制SQL*PLUS的环境和数据字典 控制SQL*PLUS的环境: 可以通过使用SET命令来设置SQL*PLUS的环境变量,从而达到控制SQL*PLUS环境的目的。 SET命令的格式如下: SET 环境变量 变量的值 可以通过使用SHOW命令来显示SQL*PLU
阅读全文
摘要:子查询 为什么引入单行子查询 查询职位与SMITH相同的员工 SELECT job FROM emp WHERE ename = 'SMITH' --得到CLERK SELECT empno, ename, sal, job FROM emp WHERE job = 'CLERK' 得到结果有点繁琐
阅读全文
摘要:多表连接 减少冗余,规范表产生问题:如何在多个表中得到所需要的信息呢?Oracle使用连接Join来完成查询的。 Oracle提供了4种类型的连接:相等链接(Equijoin)、自连接(Selfjoin)、不等连接(Nonequijoin)和外连接(Outerjoin) 相等链接: SELECT e
阅读全文
摘要:多表查询在前面的例子中,每一个查询语句只针对一个表操作。其实在Oracle系统中,您所查询的数据可以来自多个表,即一个查询语句可以对多个表进行操作。造成这一现象的主要原因是数据库的规范化(对Normalization) 把订单的所有数据放在一个表中:订单号 商品号 商品名 商品描述 单价 供应商号
阅读全文
摘要:综合数据和分组函数 分组函数是对一批(一组)数据进行操作(综合)之后返回一个值 oracle常用的分组语句有以下5个:COUNT、AVE、SUM、MAX、MIN COUNT({*[DISTINCT|ALL]表达式}):该函数返回查询的行数 SELECT COUNT(*) FROM USER_BASE
阅读全文
摘要:什么是空值(NULL) NULL值是一个很特别的值。它既不是零,也不是空格。它的值是没有定义的、未知的、不确定的。 形象比喻:一个英俊的少年向一位妙龄少女求婚。它可能会说:“我将我所有的爱奉献给您”。现在它的市场价值是多少呢?NULL,可能是一文不值的谎言,也可能是价值无限,造成这种现象的主要原因是
阅读全文
摘要:单行函数 什么是函数? 任何东西,只要它能接收输入,对输入进行输出并产生输出,它就可以被称之为函数。 单行函数简介 单行函数的格式:函数名[(参数1,参数2,参数3,...)] 其中的参数可以为: 用户定义的常量、变量、列名、表达式 单行函数支队表中的一行数据进行操作,并且对每一行数据只产生一个输出
阅读全文
摘要:常用的SQL*PLUS命令 当输入SQL语句时,该语句被存在SQL缓冲区中(一个内存区)。这个SQL缓冲区很小,只能存入一个SQL语句,当下一条SQL语句输入时,原来在缓冲区中的SQL语句被覆盖。SQL*PLUS是一个工具(环境)。正像我们所看到的,我们可以用它来输入SQL语句。为了有效地输入和编辑
阅读全文
摘要:1、如何限定所选择的数据行SELECT empno,ename,salFROM empWHERE sal >= 1500;使用WHERE子句来限制哪些行要显示,在关系数据库中称为选择(selection)操作。WHERE子句跟在FROM子句之后。 WHERE是关键字,其后跟限制条件 条件是有列名、字
阅读全文
摘要:1、最简单的查询语句:select * from emp;* :表示所有的列,与在select之后列出所有的列名是一样的。查询语句以分号(;)结束。 2、在查询语句中选中特定的列:SELECT empno, ename, sal FROM emp在查询语句中选择指定的列就是关系数据库中所称的投影(P
阅读全文