Oralce基础知识.docx
- 文档编号:30337044
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:27
- 大小:23.21KB
Oralce基础知识.docx
《Oralce基础知识.docx》由会员分享,可在线阅读,更多相关《Oralce基础知识.docx(27页珍藏版)》请在冰豆网上搜索。
Oralce基础知识
Oracle说到底是一个服务器端的软件
SQL(StructedQueryLanguage)结构化查询语言。
1、why
Java编写的软件不可避免要和数据库交互
oracle是市场占有率第一的数据库产品
2、what
使用SQL操作Oracle进行CRUD:
.C:
create
.R:
retrieval
.U:
update(更新)
.D:
delete(删除)
.CRUD表中数据:
C:
insert
R:
select
U:
update
D:
delect
.CRUD数据库对象:
C:
create
R:
select
U:
alter
D:
drop
3、主键(PK)Primarykey
作用:
唯一区分表中不同的记录
取值要求:
1)唯一
2)非空
.一个表可以没有主键,如果有,只能有一个,但一个主键可由多个列组成。
.联合主键:
多个列联合起来作主键
.单列非空
.联合唯一
外键(FK)Foreignkey
作用:
建立和维持表间的关联关系
取值要求:
1)要么是所引用列的列值
a)即可是其他表也可以是本表中的列。
b)所引用列应该有主键或有唯一约束。
2)要么为空。
4、1)Table
2)View
虚拟表,本质是一条有名称的查询语句。
3)Sequence
产生依次递增或递减的数值。
4)Index(索引)
提升查询性能的对象
5)Synonym(同义词)即别名
方便对对象的访问
6)Programunit(编程单元)
使用特定于Oracle的PL/SQL语言编写的
.procedure
.function
.package
.packagebody
约束
1.主键
2.外键
3.非空
4.唯一
5.check:
限制某列的取值范围
商业数据库
1.Oracle-->Oracle
2.IBM-->DB2
3.Microsoft-->SQLServer
SQL(StructedQueryLanguage):
结构化的查询语言,能以相同形式操作不同类型的数据库。
由ANSI(美国国家标准委员会)维护
PL(ProcedureLanguage)/SQL:
仅能操作Oracle数据库,
是Oracle公司在SQL基础上增加了一些过程化的结构(循环,条件,变量,类型)而发展的一种语言。
SQL*Plus:
Oracle公司提供的一个命令行形式的数据库客户端软件
SQLCommands
1.DataRetrieval
select
2.DML:
数据操作语言(Datamanipulationlanguage)
修改表中数据内容
insert,update,delete
3.DDL:
数据定义语言(Datadefinitionlanguage)
修改数据库对象结构
create,alter,drop,truncate
truncate和delect的区别
a.truncate不能后悔
b.truncate可以释放被删记录所占空间
4.Transactioncontrol(事务控制)
commit,rollback,savepoint
5.DCL(Datacontrollanguage)权限控制
权限的授予和收回
grant,revoke
============================================================
第一章SelectingRows(查询列)
============================================================
一个语句由多个字句构成
关键字
nvl:
空值置换函数
用同种类型的值替换取值为空的列值或表达式。
distinct:
作用:
将相同内容只显示一次。
注意:
distinct紧跟在select后面。
注意:
类型匹配
数据类型
1、数值
number->idnumber
number(p,s)->idnumber(10,2)
p:
精度,按刻度范围取舍后去除前后0数的个数。
1234number(3)超出精度
1234.567number(6,2)1234.57
0.001234number(2,4)0.0012
1234number(3,-1)1230
s:
刻度范围,小数位数。
2、字符
varchar、varchar2、char
varchar和varchar2的区别
1)制定的厂商不同
varchar-->ANSI
varchar2-->Oracle
2)承诺不同
varchar2始终用来表示字符类型。
varchar很有可能以后用来表示其他类型。
char和varchar(varchar2)的区别
1)字符存储所占空间:
char-->定长
varchar-->变长
'a'-->char(10)-->10
'a'-->varchar(10)-->1
2)所允许存储的最大长度
char-->2000
varchar-->4000
3、日期
默认情况下使用单引号界定。
按日-月-年排列。
包含七个时间分量
世纪、年、月、日、时、分和秒七种。
============================================================
第2章LimitingSelectedRows
============================================================
1、orderby
作用:
按特定列内容显示查找结果次序
注意:
1)所允许出现的内容
a.列名
orderbylast_name;
b.别名
selectlast-namenfroms_emp
orderbyn
c.表达式
selectlast_name'Myname'
froms_emp
orderby'Myname'
d.列出现在select后的序号
selectid,last_name
froms_emp
orderby2
2)orderby后面有多列处理方式:
先按前面列内容进行排序,
如前面列值相同,再进一步按后面值决定列值的次序。
3)始终在语句最后。
2、where
作用:
对查询结果内容进行筛选。
注意:
1)位置
紧跟在from之后
2)所允许出现的内容
一到多个条件表达式
比较符:
between...and...
按某一区间范围内容进行筛选
.包含起始值
.小值在前,大值在后
============================================================
第三章SingleRowFunctions
1.字符处理的Single_Rowfuction
2.数值处理的Single_Rowfuction
3.日期处理的Single_Rowfuction
4.相互转换的Single_Rowfuction
============================================================
第四章
笛卡尔乘积:
从多表查询时没有加上有效的条件表达式,导致查询结果为多表记录数量的乘积
1whatisjoin(连接)?
1)条件表达式。
2)建立表间记录关联。
2joinmethod
1)等连接
比较符为等号
2)不等连接
比较符不是等号
3)外连接
查询两张表间一些不匹配的记录
4)自连接
查询的数据来自一张表,一张表间记录有主外键关联关系
=========================================================================================================================
第5章
1。
常用组函数的使用
2。
groupby子句的使用
作用:
按照指定列值或表达式内容对表进行分组
注意:
.位置:
from或where子句后面。
.各子句执行的先后次序
a.where
b.groupby
c.groupfunction
d.orderby
.所有select子句中列如果没有和组函数配合使用,必须出现在groupby子句中
.groupby后跟多列的处理:
多列内容联合起来相同作为一组
3.having子句的使用。
作用:
与where类似,但允许有组函数
1)位置
groupby之后
2)各子句执行先后次序
a.where
b.groupby
c.groupfunction
d.having
e.orderby
============================================================
第6章子查询
1.whatissubquery?
1)一条完整的select语句;
2)嵌套在其他的语句中,现运行。
a.select
嵌套在:
1)出现在where子句中。
2)出现在having子句中。
3)出现在from子句中。
b.createtable
c.insert
rownum(伪列,不是真实存在保存的是行号)
rownum只能配合<、<=使用,between...and...也可以使用,但是初始值之能是1.
作用:
用于查询表中记录。
如:
查询表中前3条记录
需求:
1.查询表中前三条记录;
whererownum<4;
注意:
rownum只能配合<,<=使用
between1and10;
2.查询表中第三至第五条记录;
selectid,last_name
from(
selectid,last_name,
rownumr
froms_emp
)
whererbetween3and5;
idrownum(伪列)
-----------------
11
522
1023
201
selectid,last_namefroms_empwhereid=&b;
selectid,last_namefroms_empwhereid=2;
...
selectid,last_namefroms_empwhereid=25;
============================================================
第7章specifyingvariablesatruntime
1、定义运行时变量
&变量名
2、如何给运行时变量赋值
1)临时传递:
2)accept
实现值和变量的预先绑定。
3)执行脚本文件时传递:
变量名称应为数值。
============================================================
第8章E-R图
1、读懂E-R图
E-R(EntityRelationships)
1)读懂属性前符号的含义。
o:
可有可无,列没有约束
*:
必须有(非空),列notnull
#:
唯一,
#*:
非空,唯一,列主键或主键组成
(#)*:
2)读懂实体间的关系连线的含义
-----:
可有可无,相关联的表中可能没有对应的记录,
对表结构没有影响
实线:
必须有(非空),相关联的表中一定有对应的记录。
表:
外键列上应加非空约束。
伞状符:
所在表应建外键约束列。
竖线:
外键列也是主键组成列号
2、绘制表的实例图
1)第一范式:
所有属性必须是单个值,如存在多个值,新建一张表存放
2)第二范式:
普通属性依赖主键值
3)第三范式:
普通属性不能依赖普通属性
============================================================
第9章creatingtables
1、创建表
加约束的方式:
1)列级别
2)表级别
区别:
1)位置不同
列级别内容和列间通过空格分隔
表级别内容和列间通过逗号分隔
2)适用场合不同
有些约束只能通过列级别:
.非空约束
有些约束只能通过表级别:
.联合约束(联合主键、外键等)
其他约束即可是表级别也可以是列级别
createtableS_order(
idnumber(10),
numnumber(20)
);
char<->char
(1)
varchar2//invalid
createtables_order(
...
costnumber(10,2)
createtabletony_pk_test(
idnumber(10)
constrainttony_pk_test_id_pk
primarykey,
namevarchar2(20)
);
createtabletony_pk_test2(
idnumber(10),
namevarchar2(20),
constraintsaprimarykey(id,name)
);
createtabletony_fk_test2(
idnumber(10),
p_idnumber(10),
constrainttony_fk_test2_p_id_fk
foreignkey(p_id)
referencestony_pk_test(id)
);
tony_dept
-----------------------
id(pk)name
2d2
tony_emp
----------------------
id(pk)namedept_id(fk)
3ww2
createtabletony_emp(
idnumber(10)primarykey,
namevarchar2(20),
a.dept_idnumber(10)
referencestony_dept(id)
ondeletecascade);//valid
b.dept_idnumber(10),
foreignkey(dept_id)
referencestony_dept(id));//invalid
c.dept_idnumber(10),
foreignkey(dept_id)
referencestony_dept(id)
ondeletecascade);//valid
createtables_dept(
idnumber(7)
constraints_dept_id_pk
primarykey,
namevarchar2(25)
constraints_dept_name_nn
notnull,
region_idnumber(7)
constraints_dept_region_id_fk
referencess_region(id),
constraints_dept_name_region_id_uk
unique(name,region_id)
);
createtabletony_emp2009(i,n)
as
selectid,last_name
froms_emp
where1=2;
=======================================================================
Lesson10
1.数据字典表的分类;
a.user:
保存了当前用户所拥有对象的信息;
user_tables
user_sequences
user_views
user_indexes
b.all:
保存了当前用户所能访问对象的
信息;
all_tables
all_views
all_indexes
c.dba:
保存了所有用户所创建对象的
信息
dba_tables
dba_views
d.v$:
保存了数据库版本、运行时性
能参数等信息;
v$version
2.常用数据字典表的使用;
dictionary:
保存了数据字典表的
相关描述;
user_objects
user_tables
user_constraints
user_cons_columns
1)查询当前用户一共创建了多少张表;
selectconstrain_name,
constraint_type
fromuser_constraints
wheretable_name='TONY_EMP2008';
columnconstraint_typeformata20
CONSTRAINT_NAMEconstraint_type
-------------
SYS_C132321c
SYS_C132321c
c:
非空
c:
check
p:
主键
r:
外键
u:
唯一
user_constraints
---------------------------
constraint_name
constraint_type
table_name
user_cons_columns
---------------------------
constraint_name
column_name
table_name
============================================================
第11章数据操纵(datemanipulating)
1.insert
insertintotable_name[(column_name,column_name,...]
values(value1,value2...);
insertintotable_name[(column_name,column_name,...]
subquery;
2.update
updatetable_name
setcolumn_name=value[,...]
[where...]
3.delete
delete[from]table_name
[where...]
s_emp
-----------
idnamesalary
1Zs1000
2ls2000
updates_emp
setsalary=salary+200;
updates_emp
setsalary=null
whereid=2;
事务:
将多个操作组成一个操作同时成功或同时失败。
作用:
保证数据的完整、一致性。
特性:
a)原子性;将多个操作组成一个不可分隔的原子操作。
b)一致性:
事务操作前后数据要一致。
如:
在转帐前后帐户余额总和相等
c)隔离性:
一个事务操作数据其他事务不存在。
d)持久性:
一个事务结束应将中间数据持久保存到数据库中,以便
其它事务或掉电来电后依然可查;
操作:
开始边界的声明
.开始边界;
a.通过SQL*Plus刚连入数据库;confirming
b.上一个事务的结束
.结束边界
a.正常结束:
commit(提交)
b.异常结束:
rollback
-----------------------------------------------------------
提交/回滚前提交后回滚后
------------------------------------------------------------
数据当前事务可查持久存储到硬盘没有持久存储到硬盘
其他事务不可查内存中数据丢失内存中数据丢失
所有事务可查,不能回滚所有事务不可查,不能回滚
锁当前事务持有释放释放
其他事务等待
回滚点存在不存在不存在
1.createtable->ddl->
2.insertintotable_name->dml->
S_ACCOUNT
--------------
idnamebalance
1zs1000=1000900
2ls1000=10001100
200020002000
updates_accout
setbalance=balance-100whereid=1;
断电
updates_accout
setbalance=balance+100whereid=2;
===========================================================
第12章alteringtablesandconstraints
Lesson12
1.修改表列
1)新增表列
altertabletable_name
add(column_nametype[defaultvalue][notnull],
column_nametype[defaultvalue][notnull]);
2)更新表列
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Oralce 基础知识