`
a0102051365
  • 浏览: 33856 次
  • 性别: Icon_minigender_1
  • 来自: 哈尔滨
社区版块
存档分类
最新评论

oracle简单笔记学习3

阅读更多
外键
被参照的表是主表

create table major_sun( --(主表,父表)被参照的表
mid number(2) primary key,
manme varchar2(30)
);
insert  into major_sun values(1,'computer');
insert  into major_sun values(2,'music');
insert  into major_sun values(3,'movie');
create table student_sun( --(从表,子表)参照其他表的表
id number(5) primary key,
name varchar2(20),
mid number(2),
constraint student_mid_sun_fk foreign key(mid)
references major_sun(mid)
);

insert into student_sun values(101,'peter',1);
insert into student_sun values(102,'sun',3);
insert into student_sun values(103,'king',2);

select s.name,m.manme //外连接
from student_sun s join major_sun m on s.mid=m.mid
and s.name='sun';
试图增加一个学生记录,指定一个不存在的学生编码
insert into student_sun values(110,'adsd',10);
-----报错,没有找到父项关键字
-------表示在父表中没有编码为10的 专业
ORA-02291: integrity constraint (OPENLAB.STUDENT_MID_SUN_FK) violated - parent key not found
完整性约束 openlan.这个外键被 违反--父键没有找到

delete from major_sun where mid=1; --试图删除1专业
这样会导致数据不完整的,这样的删除是不允许的
ORA-02292: integrity constraint (OPENLAB.STUDENT_MID_SUN_FK) violated - child record found
子记录已经找到

--建立子表时,外键约束增加设定条件 --(从表,子表)参照其他表的表
create table student_sun(
id number(5) primary key,
name varchar2(20),
mid number(2),
constraint student_mid_sun_fk foreign key(mid)
references major_sun(mid)
on delete  cascade
);
cascade  是级联的意思,就是在删除外键的时候会把子表中的相关的元素也删掉
create table student_sun(
id number(5) primary key,
name varchar2(20),
mid number(2),
constraint student_mid_sun_fk foreign key(mid)
references major_sun(mid)
on delete set null
);
删除后把相关的元素设置成null数值
insert/delete/update
create   table mydept_sun(
id number(2) primary key,
name varchar2(20),
locaction varchar2(20)
)
insert into mydept_sun
select  deptno,dname,loc from dept;
create table emp_sun(
id number(4) primary key,
name varchar2(20),
deptno number(20)
)
insert into emp_sun values(1234,'perter',10);
insert into emp_sun(id,name,deptno)
select empno, ename, deptno from   emp where deptno=10;
-------完整复制一个表
create table emp_bak
as
select * from emp;
-----复制表结构 ,不复制数据
create table emp_bak   as
select * from emp
where 1=0;
-----update
update emp_sun set sal=1000
where empno=7369; ---更改多个字段,set后使用,
update emp_sun set sal=1200,deptno=20,job='salesman'
where empno=7369
------delete
delete from emp_sun where deptno=30;
------------->事务 dml与事务相关,, ddl操作会隐式的提交事务
开始于第一条dml语句
下一个事务的开始就是上一个事务的结束
显示的终止一个事务commit , rollback  
事务特性, *原子性 *一致性 *隔离性 *持久性
事务语句commit/rollback/savepoint
create table temp_sun(id numeber primary key)
insert into temp_sun values(1);
savepoint A;
insert into temp_sun values(2);
savepoint B;
insert into temp_sun values(3);
savepoint C;
insert into temp_sun values(4)
savepoint D;
rollback --->全没有了 rollback to B 还剩下两条1,2,之后的信息都没有了
----------数据库的主要对象
表 table
视图 view
索引 index
序列 sequence
约束条件
同义词
---------------视图
create  or  replace  view     v_emp_sun     as    select   ename,sal, deptno   from emp_sun;
--创建视图 create view v_emp_sun  as   select ename,sal, comm from emp_sun;
select * from v_emp_sun;
--->删除视图 drop view v_emp_sun;
desc v_emp_sun;
-----数据字典
user_tables
user_views user_constraints
desc user_tables;
select  table_name from user_table;
row num<20
select * from user_table
where table_name='EMP'; ----查emp表的信息
-----------看看视图的结构user_views
desc user_views
select text from user_views
where view_name='V_EMP_SUN';
---------->>>数据字典
user_tables:当前用户名下所有的表
all_tables:当前用户能访问的所有的表 自己的表加上其他用户允许自己访问的表
dba_tables:数据库下所有的表
user_objects:对象
select distinct object_type from user_objects //table,index,sequence.....
select  count(*) from user_objects; user_tables all_objects all_tables;
---------视图的列名字不能用()
---------创建复杂视图
where view_name='V_EMP_SUN'
create or replace view emp_sum_sun
as
select deptno,sum(sal) sum_sal
from emp
group by deptno;

--------->索引
user_index 用户名下的索引
rowid是该条目所对 对应的oracleserver物理地址
当创建唯一约束的时候,索引自动创建
select constraint_name  from user_constraints
where table_name='asd'; ------查询索引名字

create index emp_sun_idx on
emp(ename); --在emp表上ename这个字段上建立索引叫做emp_sun_idx
单行函数 这些是导致索引不可用的
表达式
隐式数据类型
like
not
is null
分享到:
评论

相关推荐

    Oracle学习笔记.doc

    主要的形式是例子代码加代码解释加运行结果,我个人认为对于没有学习过oracle的同学是比较好的一个学习笔记,同时我对做的笔记都加了标题,做了一个简单的目录,对于已经学习过的同学也是一个很好的帮助文档,由于是...

    Oracle 10g 学习笔记

    这个笔记是学习oracle数据库过程中整理出来的,比较详细,适合于初学者。 │ oracle与tomcat端口冲突.txt │ Oracle学习笔记.pdf │ Oracle学习笔记.wps │ 安装Oracle后myEclipse不能正常使用.txt │ 手工配置...

    最全最通俗易懂的ORACLE学习笔记

    个人在学习ORACLE过程当中记录下来的学习笔记,通俗易懂,适合想快速了解ORACLE基本语法的朋友

    oracle 经典学习笔记

    Oracle数据库是一种广泛使用的大型关系型...Oracle数据库的学习笔记不仅能帮助初学者快速入门,而且对于中高级用户同样具备参考价值,特别是在学习和记忆数据库的众多命令和语法时,好的笔记可以显著提高学习效率。

    oracle 分析函数学习笔记

    标准SQL的UNION方法简单且通用,但性能可能不佳;而分析函数则在性能和便捷性之间找到了平衡,特别是对于Oracle数据库,它可以减少开发工作并提供高效的数据处理。 分析函数的基本语法如下: ```sql function_name...

    oracle学习笔记2013(+安装、卸载)

    本文将结合提供的“oracle学习笔记2013(+安装、卸载)”,分享学习过程中的心得和体验。 ### Oracle安装篇 对于初学者而言,Oracle数据库的安装往往会感到复杂和棘手。不同版本的Oracle对于操作系统有着严格的...

    Oracle超详细学习笔记

    ### Oracle超详细学习笔记 #### 一、基本查询与数据操作 ##### 1. 最简单的查询 - **命令示例**: ```sql SELECT * FROM employees; DESC employees; SET LINESIZE 600; SET PAGESIZE 50; ``` - **解释**: ...

    2011MLDN李兴华Oracle课堂笔记PDF档

    3. **02-简单查询、限定查询、单行函数.pdf**:这部分可能深入讲解SQL语言,包括基本的SELECT查询语句,如何进行限定条件的查询,以及Oracle支持的各种单行函数,如TO_CHAR、ROUND等。 4. **03-习题讲解1及多表查询...

    oracle学习笔记,oracle学习教材,oracle学习教程,oracle课件

    ### Oracle学习笔记与教程知识点详解 #### Oracle 9i概览与重要性 **Oracle 9i**,作为Oracle数据库发展史上的一个里程碑,不仅是一个简单的数据库服务器产品,更是一个全面的应用系统运行与开发平台。它标志着...

    oracle学习文档(笔记)

    Oracle 学习文档笔记 Oracle 是一种关系型数据库管理系统,它提供了强大的数据存储和管理功能。本笔记将覆盖 Oracle 的基本操作、PL/SQL 编程和数据库操作的相关指令。 数据库基本操作 在 Oracle 中,创建用户、...

    Oracle学习笔记_(PDF版)

    ### Oracle学习笔记要点 #### 一、SQL Plus的使用方法 - **命令行方式**: 在命令行中直接输入 `sqlplus` 命令,并随后输入用户名和密码。 - **客户端方式**: 使用Oracle提供的SQL Plus客户端工具进行登录。 - **Web...

    Oracle最简单易懂的学习笔记

    Oracle最简单易懂的学习笔记 Oracle最简单易懂的学习笔记 Oracle最简单易懂的学习笔记 Oracle最简单易懂的学习笔记 Oracle最简单易懂的学习笔记 Oracle最简单易懂的学习笔记

    Oracle 学习笔记

    ### Oracle 学习笔记知识点详解 #### 一、Oracle 数据库简介 Oracle 是一款由美国甲骨文公司开发的关系型数据库管理系统。它以其强大的数据处理能力、高度的安全性及稳定性而闻名于世,在金融、电信、政府等领域...

    韩顺平oracle学习笔记

    韩顺平oracle学习笔记 第0讲:如何学习oracle 一、如何学习oracle Oracle目前最流行的数据库之一,功能强大,性能卓越。学习oracle需要具备一定基础: 1.学习过一门编程语言(如:java ,c) 2.最好学习过一门别的...

    oracle最全学习笔记(个人总结)

    ### Oracle 最全学习笔记知识点梳理 #### 一、存储过程 - **定义**:存储过程是一种在数据库中存储复杂程序以便外部程序调用的一种数据库对象。 - **应用场景**:主要用于执行大量的更新或插入操作,以提高数据库...

    oracle学习笔记1

    在尚学堂马世兵的Oracle课堂笔记中,我们能看到一系列基础的SQL查询语句,这些都是学习Oracle数据库不可或缺的部分。 首先,`DESC`命令用于获取表的结构信息,例如`DESC emp`、`DESC dept`和`DESC salgrade`分别...

    2011MLDN李兴华Oracle课堂笔记

    在学习和工作中,每个知识点都有不同的掌握程度要求,从简单的理解代码逻辑、到可以独立编写代码、再到深入理解原理和概念。同时,课程也强调了测试、考勤、项目、毕业设计和日志等就业标准,体现了对学员综合素质的...

    oracle 学习笔记

    13. Oracle数据库常用的一些简单命令,例如显示当前日期和时间的命令等。 二、Select From语句 1. Select语句用于从数据库中检索数据。 2. Select语句的基本语法包括SELECT、FROM关键字以及选择的字段列表。 3. 列...

Global site tag (gtag.js) - Google Analytics