Oracle数据库基础
Posted 秋风伊人
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle数据库基础相关的知识,希望对你有一定的参考价值。
sql 语言简介:
数据定义语言
create table 创建新表 alter table用来修改表结构 truncate table删除表中的记录
--创建一张表 create table test ( id int primary key, name varchar2(30) not null, score number not null );
表名命名规则:
1:表明首字母应该为字母
2:不能使用Oracle保留字为表命名
3:表命的最大长度为30字符
4:同一用户模式下的不同表不能具有相同的名称
5:可以使用下划线。数字和字母,但不能使用空格和单引号
注意:
Oracle中的表名不区分大小写
ORacle中也varcher数据类型 但不建议使用 要使用varcher2 Oracle中的标准数据类型
数据操作语言
选择无重复的行
可以使用DISTINCT--筛选全部完全相同的行 只保留一行
-- DISTINCT select DISTINCT score, name from test
数据控制语言:省略
事务控制语言
commit:提交事务 即把事务中对数据库的修改进行永久的保存
rollback:回滚事务 即取消的数据库所做的任何修改
savepint:在事务中创建存储点
ROllback to<SavePoint _Name> 将事务回滚到存储点
什么时候开启事务:
在Oracle中 在事务上的一次事务结束以后数据第一次被修改的时候自动修改
什么时候事务的结束:
两种情况
(1):数据被提交
发出commit命令
执行DDL或者DCL语句后 当前事务自动被提交
与Oracle分离如退出PL/SQL Developer
(2):数据被撤销
发出ROLLBack 命令
服务器进程异常结束
DBA停止会话
SQL操作符:
算术运算符
比较运算符
逻辑运算符
位运算符:
集合操作符:
实例:
创建一张表并且插入数据
--创建一张表 create table test ( id int primary key, name varchar2(30) not null, score number not null ); --插入数据 insert into test values(1,\'Aaron\',78); insert into test values(2,\'Bill\',76); insert into test values(3,\'Cindy\',89); insert into test values(4,\'Damon\',90); insert into test values(5,\'Ella\',73); insert into test values(6,\'Frado\',61); insert into test values(7,\'Gill\',99); insert into test values(8,\'Hellen\',56); insert into test values(9,\'Ivan\',93); insert into test values(10,\'Jay\',90); commit;
集合运算包含三种:
集合运算:
(1)对输入的两个集合或多集进行的运算。
(2)多集:由两个输入的查询生成的可能包含重复记录的中间结果集。
(3)T-SQL支持三种集合运算:并集(UNION)、交集(INTERSECT)、差集(EXCEPT)
1.并集运算:操作符返回两个查询选定的所有的不重复的行
语法:
集合运算的基本格式:
输入的查询1
<集合运算符>
输入的查询2
[ORDER BY]
要求
(1)输入的查询不能包含ORDER BY字句;
(2)可以为整个集合运算结果选择性地增加一个ORDER BY字句;
(3)每个单独的查询可以包含所有逻辑查询处理阶段(处理控制排列顺序的ORDER BY字句);
(4)两个查询 必须包含相同的列数;
(5)相应列必须具有兼容的数据类型。兼容个的数据类型:优先级较低的数据类型必须能隐式地转换为较高级的数据类型。比如输入的查询1的第一列为int类型,输入的查询2的第一列为float类型,则较低的数据类型int类型可以隐式地转换为较高级float类型。如果输入的查询1的第一列为char类型,输入的查询2的第一列为datetime类型,则会提示转换失败:从字符串转换日期和/或时间时,转换失败;
(6)集合运算结果中列名由输入的查询1决定,如果要为结果分配结果列,应该在输入的查询1中分配相应的别名;
(7)集合运算时,对行进行进行比较时,集合运算认为两个NULL相等;
(8)UNION支持DISTINCT和ALL。不能显示指定DISTINCT字句,如果不指定ALL,则默认使用DISTINCT;
(9)INTERSET和EXCEPT默认使用DISTINCT,不支持ALL。
--union select score,id,name from test where id > 2 and id < 6 union select score,id,name from test where id < 4;
并集ALL:操作符合并两个查询所有的行,包括重复的行
--union all select id,name,score from test where id < 4 union all select id,name,score from test where id > 2 and id < 6 ; -- union all select id,name,score from test where id > 2 and id < 6 union all select id,name,score from test where id < 4
2.交集运算:操作符只返回两个查询都有的行
--intersect select score,id,name from test intersect select score,id,name from test where score>\'50\';
3.差集运算:操作符只返回由第一个查询选定而未被第二个查询选定的行,即在第一个查询结果中排除在第二个查询结果中出现的行
--minus select score,id,name from test minus select score,id,name from test where score>\'50\';
以上是关于Oracle数据库基础的主要内容,如果未能解决你的问题,请参考以下文章
Oracle 数据库 - 使用UEStudio修改dmp文件版本号,解决imp命令恢复的数据库与dmp本地文件版本号不匹配导致的导入失败问题,“ORACLE error 12547”问题处理(代码片段
Client / Server Interoperability Support Matrix for Different Oracle Versions (Doc ID 207303.1)(代码片段
[vscode]--HTML代码片段(基础版,reactvuejquery)
Oracle数据库从RMAN备份集片段还原指定单个归档日志进行日志挖掘分析
续:纠正:ubuntu7.04可以安装,而且完美的安装 ! for《Oracle-10.2.0.1,打补丁10.2.0.5:在 debian 版本4不含4以上,及 ubuntu 7.04不含(代码片段