- 浏览: 33696 次
- 性别:
- 来自: 哈尔滨
最新评论
外键
被参照的表是主表
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
被参照的表是主表
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
发表评论
-
android 转载Intent应用
2011-03-14 21:12 659From:http://www.cnblogs.com/stu ... -
xml 学习1
2011-03-03 18:57 720一.xml基础: 二.xml语法 三.DTD 四.java a ... -
jdbc 可滚动结果集合,分页技术
2011-03-02 20:24 924jdbc2.0 一.可滚动的结果 ... -
jdbc笔记心得
2011-03-02 08:24 685CallableStatement: 存储过程 建立一 ... -
jdbc心得笔记01
2011-03-02 07:59 655介绍JDBC 开发JDBC应用程序 1新建java proje ... -
oracle简单笔记学习4
2011-02-27 20:39 749create table student( --完整 ... -
oracle简单笔记学习2
2011-02-27 20:34 684select from where group by h ... -
oracle简单笔记学习
2011-02-27 20:33 639select...列名,表达式,函数 distinct,别名 ... -
笔记心得12
2011-02-23 21:41 649集合的迭代(遍历)(模仿了数鸡蛋的方式) 1 java ... -
笔记心得11
2011-02-23 21:39 571Java 时间 1 时间标准:long GMT UTC ... -
笔记心得10
2011-02-12 08:37 669IO总结 InputStream |==节 ... -
笔记新的09
2011-01-25 20:37 631... -
笔记心得08
2011-01-24 21:08 0... -
笔记心得07
2011-01-21 21:11 597接口 1 接口:全部的 ... -
笔记心得06
2011-01-21 12:47 607... -
笔记心得05
2011-01-20 08:53 661... -
笔记心得04
2011-01-18 19:07 648... -
笔记心得03
2011-01-18 08:35 849... -
笔记心得02
2011-01-16 19:00 6131) continue 就是结苏当前所执行的语句,继续执行下 ... -
笔记心得01
2011-01-16 13:43 469第一周个人知识汇总 ***心若冰清,天塌不惊*** 1 ...
相关推荐
主要的形式是例子代码加代码解释加运行结果,我个人认为对于没有学习过oracle的同学是比较好的一个学习笔记,同时我对做的笔记都加了标题,做了一个简单的目录,对于已经学习过的同学也是一个很好的帮助文档,由于是...
这个笔记是学习oracle数据库过程中整理出来的,比较详细,适合于初学者。 │ oracle与tomcat端口冲突.txt │ Oracle学习笔记.pdf │ Oracle学习笔记.wps │ 安装Oracle后myEclipse不能正常使用.txt │ 手工配置...
Oracle数据库是一种广泛使用的大型关系型...Oracle数据库的学习笔记不仅能帮助初学者快速入门,而且对于中高级用户同样具备参考价值,特别是在学习和记忆数据库的众多命令和语法时,好的笔记可以显著提高学习效率。
标准SQL的UNION方法简单且通用,但性能可能不佳;而分析函数则在性能和便捷性之间找到了平衡,特别是对于Oracle数据库,它可以减少开发工作并提供高效的数据处理。 分析函数的基本语法如下: ```sql function_name...
### Oracle超详细学习笔记 #### 一、基本查询与数据操作 ##### 1. 最简单的查询 - **命令示例**: ```sql SELECT * FROM employees; DESC employees; SET LINESIZE 600; SET PAGESIZE 50; ``` - **解释**: ...
3. **02-简单查询、限定查询、单行函数.pdf**:这部分可能深入讲解SQL语言,包括基本的SELECT查询语句,如何进行限定条件的查询,以及Oracle支持的各种单行函数,如TO_CHAR、ROUND等。 4. **03-习题讲解1及多表查询...
### Oracle学习笔记与教程知识点详解 #### Oracle 9i概览与重要性 **Oracle 9i**,作为Oracle数据库发展史上的一个里程碑,不仅是一个简单的数据库服务器产品,更是一个全面的应用系统运行与开发平台。它标志着...
Oracle 学习文档笔记 Oracle 是一种关系型数据库管理系统,它提供了强大的数据存储和管理功能。本笔记将覆盖 Oracle 的基本操作、PL/SQL 编程和数据库操作的相关指令。 数据库基本操作 在 Oracle 中,创建用户、...
### Oracle学习笔记要点 #### 一、SQL Plus的使用方法 - **命令行方式**: 在命令行中直接输入 `sqlplus` 命令,并随后输入用户名和密码。 - **客户端方式**: 使用Oracle提供的SQL Plus客户端工具进行登录。 - **Web...
Oracle最简单易懂的学习笔记 Oracle最简单易懂的学习笔记 Oracle最简单易懂的学习笔记 Oracle最简单易懂的学习笔记 Oracle最简单易懂的学习笔记 Oracle最简单易懂的学习笔记
### Oracle 学习笔记知识点详解 #### 一、Oracle 数据库简介 Oracle 是一款由美国甲骨文公司开发的关系型数据库管理系统。它以其强大的数据处理能力、高度的安全性及稳定性而闻名于世,在金融、电信、政府等领域...
韩顺平oracle学习笔记 第0讲:如何学习oracle 一、如何学习oracle Oracle目前最流行的数据库之一,功能强大,性能卓越。学习oracle需要具备一定基础: 1.学习过一门编程语言(如:java ,c) 2.最好学习过一门别的...
### Oracle 最全学习笔记知识点梳理 #### 一、存储过程 - **定义**:存储过程是一种在数据库中存储复杂程序以便外部程序调用的一种数据库对象。 - **应用场景**:主要用于执行大量的更新或插入操作,以提高数据库...
在尚学堂马世兵的Oracle课堂笔记中,我们能看到一系列基础的SQL查询语句,这些都是学习Oracle数据库不可或缺的部分。 首先,`DESC`命令用于获取表的结构信息,例如`DESC emp`、`DESC dept`和`DESC salgrade`分别...
在学习和工作中,每个知识点都有不同的掌握程度要求,从简单的理解代码逻辑、到可以独立编写代码、再到深入理解原理和概念。同时,课程也强调了测试、考勤、项目、毕业设计和日志等就业标准,体现了对学员综合素质的...
13. Oracle数据库常用的一些简单命令,例如显示当前日期和时间的命令等。 二、Select From语句 1. Select语句用于从数据库中检索数据。 2. Select语句的基本语法包括SELECT、FROM关键字以及选择的字段列表。 3. 列...
本文将详述“Oracle学习笔记001_oracle10g安装”中的关键知识点,帮助初学者理解并掌握Oracle 10g的安装过程。 首先,安装Oracle 10g前,需要确保你的操作系统环境满足其兼容性要求。Oracle 10g支持Windows、Linux...