0 常见对象有:
对象 | 描述 |
表 | 基本存储单位 |
视图 | 在表基础上抽取出逻辑相关的数据集合 |
序列 | 提供有规律的数值 |
索引 | 提供高效的查询 |
同义词 | 给对象起别名 |
1 表字段类型
数据类型 | 描述 |
char(size) | 定长字符 |
varchar2(size) | 可变长字符 |
clob | 字符数据,最大可4G |
BLOB | 二进制数据,最大可4G |
number(n) | 可变长数值类型 |
long | 可变长字符数据,最大可2G |
rowid | 行地址 |
bfile | 存储外部文件的二进制数据,最大可4G |
date | 日期 |
eg: create table testsavepoint (tid number,tname varchar2(20));
2 DDL语句:
1 参考原来表结构的基础上创建新表,同是将原表部分数据赋值到新表中:
create table emp20
as
select * from emp where deptno=20; (创建表的同时将部门号为20的记录赋值到新表emp20中)
如果仅仅是创建表,写成如下:
create table emp20
as
select * from emp where 1=2;
2 修改表: (追加新列 修改列 删除列 重名列)
2.0 create table test1(tid number,tname varchar2(20),hiredate date);
2.1 alter table test1 add image blob;
2.2 alter table test1 modify tname varchar2(40);
2.3 alter table test1 drop column image;
2.4 alter table test1 rename column tname to username;
3 删除表:
drop table test1;
3 约束(表级别的限制,关键词constraint,可以不加此关键词)
约束类型:
a) not null
b) unique
c) primary key
d) foreign key
e) check
检查性约束:
create table test2
(tid number,
tname varchar2(20),
gender varchar2(4) check (gender in ('男','女')),
sal number check (sal > 0)
);
外键约束几个关键字:
a) foreign key: 在子表中定义了一个表级的约束
b) references: 指定表和父表的列
c) on delete cascade: 当删除父表时,级联删除子表记录
d) on delete set null: 当删除父表时,将子表的相关记录外键值为null
eg: 见下面创建表的同时创建约束并给约束赋值,最后一行就是设置外键约束写法
create table myperson
(pid varchar2(18) constraint myperson_PK primary key,
pname varchar2(40) constraint myperson_Name_notnull not null,
gender varchar2(4) constraint myperson_Gender check (gender in ('男','女')),
email varchar2(40) constraint myperson_Email_unique unique
constraint myperson_Email_notnull not null,
deptno number constraint myperson_FK references dept(deptno) ON DELETE CASCADE
); 创建表myperson字段deptno ,给这个字段增加外键约束myperson_FK,关联父表dept字段deptno,并当
删除父表时,级联删除子表myperson记录。
4 视图
a) 视图是一张续虚表
b) 建立在已有表的基础上的一种封装查询
c) 仅仅是提供数据展示的一种形式而已,对于开发人员而言,就是带有业务功能的select查询的预定义,终极目的是为了简化查询而生(这个简化是相对于开发人员而言,对于oracle而言是一点简化都没有)
d) 只能创建/删除/替换, 如果修改的话,就相当于替换
e) 非常不建议通过视图对表的数据进行 插入/修改/删除
f) 建议创建视图时候就增加上 read only
创建视图和快捷创建表写法类似,如下
create view empview
as
select e.empno,e.ename,e.sal,e.sal*12 annlsal,d.dname
from emp e,dept d
where e.deptno=d.deptno with read only;
创建好了后,直接执行: select * from empview; 实际上就是让oracle根据视图名称 empview去执行
视图名称对应的 那一大堆select查询,仅仅是让操作人员操作起来少些一些代码而已(类似于一个预定义功能,或者理解为面向对象的封装)
5 序列:(产生唯一数值的数据库对象,多用于生成主键)
序列就是数组,并被装载在内存中。
两个属性:
a) nextval---> 返回序列中下一个有效的数值,任何用户都可以引用
b) currval---> 存放序列的当前值
序列初始化后,当前值是指向第一个数值之前的那个位置(类似于游标),因此第一个数值
创建: create sequence myseq;
得到序列的第一个数值:
错误写法:
select myseq.currval from dual *
第 1 行出现错误:
ORA-08002: 序列 MYSEQ.CURRVAL 尚未在此会话中定义
正确写法:
select myseq.nextval from dual;
1 |
使用序列作为主键向表中插入数值:
create table tableA(tid number,tname varchar2(20));
insert into tableA values(myseq.nextval,'aaa' );
如果你创建的序列作为所有表的主键来共同使用,那么每个表的主键必定会造成不连续结果,
tableA 1
tableA 2
tableB 3
tableA 4
因此在开发中,每个表对应一个此表专有的序列对象。
序列修改后,只会影响将来的值,已经被使用的数值不会改变。
alter sequence xxx increment by xx maxvalue xxx;
删除序列: drop sequence xxx;
6 索引(和表记录的关系类似于 字典目录和字典里面详细内容)
如果针对创建索引的列字段经常被更新(eg:sal) 那么不建议创建索引,否则 数据库经常维护这个索引表,效率也不会提高到多少。
创建索引:
create index myindex on emp(deptno);
create index myindex on emp(deptno,ename);
删除索引:
drop index myindex ;
相关推荐
第1章 ORACLE数据库基础知识 1 1.1 产品概述 1 1.1.1 产品简介 1 1.1.2 基本概念 1 1.2 ORACLE系统结构 2 1.2.1 ORACLE物理结构 2 1.2.2 系统全局区 4 1.2.3 进程 6 1.3 存储管理 7 1.3.1 逻辑结构 8 1.3.2 表...
主要写一些oracledb的基础知识; 二、数据库的安装。 1. 找安装文件:oracle 11g 这是个简化版,里面什么都没有,没有任何测试数据存在 2. DOS登录命令 sqlplus 登录名/密码 例如: sqlplus system/tiger 成功...
第6章 性能优化基础知识 82 §5.1 理解ORACLE性能优化 82 §5.1.1 响应时间与吞吐量的折衷 82 §5.1.2 临界资源 83 §5.1.3 过度请求的影响 83 §5.1.4 调整以解决问题 83 §5.2 优化的执行者 84 §5.3 设置性能目标...
全书分为7个部分,共15 章,内容包括Oracle基础知识、例程的日常管理、21种方案对象的管理、数据库安全性管理、存储的管理、数据库和网络的配置、系统备份与恢复、性能分析与调整等等。 本书内容全面、思路流畅、...
ORACLE用户是学习ORACLE数据库中的基础知识,下面就介绍下类系统常用的默认ORACLE用户: 1. sys用户:超级用户,完全是个SYSDBA(管理数据库的人)。拥有dba,sysdba,sysoper等角色或权限。是oracle权限最高的用户,...
2.1 Oracle架构基础 25 2.2 SGA-共享池 27 2.3 库高速缓存 28 2.4 完全相同的语句 29 2.5 SGA-缓冲区缓存 32 2.6 查询转换 35 2.7 视图合并 36 2.8 子查询解嵌套 39 2.9 谓语前推 42 2.10 使用物化视图...
* [OracleJdk与OpenJdk的区别](#oraclejdk与openjdk的区别) * [Java与C 的异同](#java与c的异同) * [JVM,JDK和JRE的区别](#jvmjdk和jre的区别) * [Java语言的特点](#java语言的特点) * [面向对象的特征](#面向...
4.6 书4.6节的SQL录入数据命令范例 4.7 书4.7节的SQL删除数据命令范例 4.8 书4.8节的SQL更新数据命令范例第5章 Jinit11810.exe,基于Web的管理客户机程序第6章 初始化参数文件init.ora第7章 常见方案对象的SQL命令...
ORACLE 基础知识..24 1.1 ORACLE OLAP 与OLTP 介绍..................24 1.1.1 什么是OLTP ....25 1.1.2 什么是OLAP....26 1.1.3 在OLAP 系统中,常使用分区技术、并行技术....26 1.1.4 分开设计与优化...
对象:适合所有与数据库应用相关的人员。 内容:1.Sql语句的基础知识。 2.Sql的基础优化规则。 3.日常问题的sql解决方法。 4.常见的sql错误写法。
常见的操作系统:Windows Unix Linux Solaris(Sun) 跨平台:用java开发出来的应用程序不受底层操作系统的限制 底层的功臣:JVM = java虚拟机 = 1 + 2 + 3 = 秘书 + 保镖 + 翻译 = 秘书 = 类加载器 = ...
ORACLE 基础知识 ............................................................................................. 1.1 ORACLE OLAP 与 OLTP 介绍 ...............................................................
2023最新整理,java基础面试题,涵盖基础概念与常识、基本语法、基本数据类型、面向对象基础、Java常见类、异常、泛型、反射、注解、SPI、序列化和发序列化等知识点,目录清洗,共有近60个基础知识面试题以及详细...
本课程从概念、实战和原理三方面深入的讲解了Oracle数据库的方方面面,课程内容涵盖了Oracle数据库中的绝大部分基础知识,以及高级编程中的常见案例和应用。大家既可以全部学习,掌握整个oracle体系知识,也可以选择...
程序员Java互联网求职个人简历 2018.09-2019.12 浙江XX网络科技...4、熟悉MySQL,Oracle等常见的数据库,熟悉常见缓存技术如Redis,Memcached应用; 5、有良好的软件工程知识和编码规范意识,熟练应用web软件分层设计。
Java基础知识:包括Java语言的特性、面向对象编程、异常处理、集合框架、多线程等。确保你对Java核心概念和相关的API有很好的理解。 数据结构和算法:了解常见的数据结构(如数组、链表、栈、队列、树、图等)以及...
使用者应具备以下基础知识: 熟悉Windows XP、Windows NT、Windows 2000或Windows 7平台 熟悉Oracle、Microsoft SQL Server 熟悉Microsoft Internet Explorer的使用 熟悉HTML基本知识和相关的HTML页面...
5.5 Oracle开发常见问题 240 5.5.1 Oracle和SQL Server的常用函数对比 240 5.5.2 Oracle和SQL Server的语句区别 244 5.5.3 ASP.NET连接Oracle失败的解决方法 245 本章常见技术面试题 246 常见面试技巧之经典问题巧...