JavaEE学习日志持续更新----> 必看!JavaEE学习路线(文章总汇)
oracle
oracle介绍
关系型数据库,端口号:1521
优点:大型数据库,效率高,安全(最大的特点)
缺点:收费
体系结构
1、数据库:oracle只要一个数据库。
2、实例:后台运行的一个进程,一个库可以有多个实例,但一般只有一个实例。
3、表空间:逻辑存储单位,如cdef盘,就是逻辑分区。一个实例可以有多个表空间。
4、数据文件:物理存储单位,就是物理存储单位。一个表空间可以对应一个或多个数据文件。
5、用户:oracle面向用户管理,由用户管理表空间,用户向表空间添加数据,最终存储到数据文件中。多个用户管理一个表空间。
sys和system
- sys:超级管理员,可以修改数据的静态表
- system:管理员,日常操作:用户管理,表的管理,其他对象的管理
表空间
一、表空间的创建
create tablespace 表空间名称
datafile '路径/数据文件名称.dbf或.ora'
size 200M --指定数据文件的存储大小
autoextend on --开启自动扩展 /off关闭
next 20M; --每次的增长量
路径:oracle服务所在电脑的的路径
tabelspace
:表空间关键字
示例
create tablespace itheima_331
datafile 'c:/itheima_331.dbf'
size 200M -- 指定数据文件的存储大小
autoextend on -- 开启自动扩展 /off关闭
next 20M; -- 每次的增长量
二、删除表空间
只能删除逻辑单位,不能删除物理单位
drop tablespace 表空间名; --只能删除逻辑单位,不能删除物理单位
要删除逻辑单位和物理单位(需要慎重使用
)
drop tablespace 表空间名 including contents and datafiles;
用户和权限
一、用户的创建:新创建的用户没有任何的权限
create user 用户名 identified by 密码 default tablespace 表空间名称;
此时登录时,会提示登录失败,没有任何权限
二、权限管理
-
赋予权限:
grant 权限列表 to 用户列表;
-
回收权限:
revoke 权限列表 from 用户列表;
权限的分类
1、对象权限:对某用户赋予某表的查询操作,或删除操作
2、系统权限:创建表,修改表,创建视图的权限
3、角色权限:
- 基础权限:connect:create session
- 开发人员权限:resource:创建表(包括对表的操作),创建序列,创建存储过程
- dba权限:dba,接近于system
查询当前用户的所有权限
-- 查询当前用户所有的权限
select * from session_privs;
赋予权限
--赋予权限
grant connect to itheima_331;
grant resource to itheima_331;
回收权限
-- 回收权限
revoke resource from itheima_331;
三、修改用户
修改用户的密码
alter user 用户名 identified by 密码
表的管理
一、数据类型
- . 字符串类型
varchar2
:由oracle定义,承诺向后兼容
varchar
:可变长度字符串,最大长度:4000
char
:固定长度字符串,最大长度:4000 - 数值类型
number
:整数类型,相当于mysql中的int
number(m,n)
:浮点数类型,m:总位数,n:小数点后的位数 - 日期类型
date
:与mysql的datetime类型一样
timestamp
:时间戳类型,精确度非常高,精确到秒后的9位 - 大数据类型:指数据的存储量较大
clob:字符大数据类型,最大存储量4G
blob:字节大数据类型,主要存储视频、音频、图片,最大存储量4G(几乎不用)
创建表和修改表
创建表
create table 表名(
列名 类型 约束
)
create table customer(
custId number,
custName varchar2(20)
)
添加列
alter table 表名 add 列名 类型;
alter table customer add address varchar2(20);
修改列属性
alter table 表名 modify 列名 类型 约束;
alter table customer modify address varchar2(200);
删除列
alter table 表名 drop column 列名;
alter table customer drop column address;
修改列名
alter table 表名 rename column 原列名 to 新列名;
alter table customer rename column custName to cname;
约束
六大约束
非空:不能为空
唯一:不能重复
默认:没有指定,使用默认值
主键:唯一非空
外键:与表的关联
检查:检查数据
注意:自增不是约束,且oracle没有自增
create table customer(
custId number,
primary key(custId),
custName varchar2(20) not null,
address varchar2(40) unique,
age number default 18 check(age between 1 and 150),
sex char(2) check(sex in('男','女'))
)
如果添加数据时违反了什么约束,可以将约束的name和报错的属性进行比对,看违反了什么约束
可在这里查看
sql语句的分类
DCL:数据库控制语言:grant,revoke
DQL:数据库查询语言:select
DML:数据库操作语言:insert,update,delete
DDL:数据库定义语言:create,drop,alter
DML语句:和mysql一样