Oracle数据库课堂笔记

Oracle数据库课堂笔记

(一)数据库基础
用户创建语句:
格式:create user username identified by password;
例:create user hejing identified by 123456;
用户修改语句:
格式(改密码):alter user username identified by password;
例:alter user hejing identified by 654321;
格式(锁定/解锁用户):alter user username ACCOUNT LOCK/UNLOCK;
例:alter user hejing ACCOUNT LOCK/UNLOCK;

9月2日
一、权限、
1、定义:使用系统的权利
分类:系统权限和对象权限。
**系统权限:**权限和系统操作有关。
例如:登录系统。

**对象权限:**权限和对象操作有关。

2、分配权限
(1)格式
GRANT privilege[, privilege…] TO user [, user…];
全是权限:create session(用户登录权限)/create table/create sequence(序列权限)/create view/create procedure等

二、角色
1、定义:使用系统的权利分类
权限分配过程:
(1)创建用户
(2)创建角色
(3)给角色分配权限
(4)给用户分配角色

角色创建格式:
create role 角色名;
例如:创建student角色
使用system用户登录
create role student;

给角色分配权限:
grant create session(连接数据库权限) to 角色; ——(可以同时分配多个权限,用逗号隔开)
给用户分配角色 :
grant 角色 to 用户; ——(to给多个用户,用逗号隔开)

系统权限(create table、create session等系统权限)
对象权限(select 、update)
1、对象权限:针对对象操作的权限。select等
2、对象权限的创建。
在这里插入图片描述

3、实践。
在这里插入图片描述
9月5日
在这里插入图片描述

分配一个数据表的一个列标给某个用户。
在这里插入图片描述

创建表空间
在这里插入图片描述

表空间属性
重命名表空间
在这里插入图片描述

修改表空间大小
在这里插入图片描述

增加表空间数据文件
在这里插入图片描述
九月十一
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述临时表空间 组 移动 删除 大文件
在这里插入图片描述
非标准数据块。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
设置默认表空间
在这里插入图片描述

撤销表空间
在这里插入图片描述在这里插入图片描述

9月23日
一,修改撤销表空间的保存时间
使用查询语句,查看撤销数据的保留时间
show parameter undo_retention;
1.格式
alter system set undo_retention=保留时间秒;
2.实践。
例如:修改撤销数据保留时间为1200秒;
alter system set undo_retention= 1200;
查看撤销数据保留时间点后的结果
show parameter undo_retention;

二、删除撤销表空间
1、格式
drop tablespace myundo including contents and datafiles;
2、实践
删除撤销表空间myundo
drop tablespace myundo including contents and datafiles;

三、数据表的创建
1、格式
create table [schema] table_name
(column datatype default expression)
schema 所用者信息
datatype 数据类型
default 指定数据类型
2、datadype 参阅课本 p125 表9-1
NUMBER (n,[m]) n代表数值的总长度, m表示保留的小数位数
例如:在数据表中需要保存像 98.02/7384.04这样的数据。
定义表结构
create table
(price number(20,2))
3、实践
例如创建一张数据表dept1,表中有三个列标题。分别为
deptno number(4),dname varchar2(20),loc varchar(20)

create table dept1(
deptno number(4),
dname varchar2(20),
loc varchar(20));

在这里插入图片描述
在这里插入图片描述
2019.9.25

登录 scott 密码 tiger
一、使用子查询实现数据表的创建
select empno,ename,sal,hiredate
from emp
where deptno=30;
二、基于子查询完成dept30数据表的创建
create table dept30
as
select empno,ename,sal,hiredate
from emp
where deptno=30;
二、数据表修改
1、
(1)在原有的数据表结构基础上添加新列标题
(2)在原有的数据表结构基础上修改列标题
2、实践
例如:在创建好的dept30数据表结构上添加新列标题 job varchar2(20)。
alter table dept30
add(job varchar2(20));

desc dept30;

例如:修改dept30数据表中ename字符串长度为20
alter table dept30
modify(ename varchar(20));
修改完毕以后,用 desc dept30 查看

三、删除数据表
drop table table_name;

实践:
例如:删除dept30数据表
第一步:使用数据字典删除当前用户中包含的数据表对象
select table_name
from user_tables;
第二步:删除
drop table dept30;
第三步:再次查询
select table_name
from user_tables;

四、修改数据表名
1、格式
rename 旧名字 to 新名字
2、实践
例如:将dept数据表明修改为deptment
先使用数据字典查看原表名
select table_name
from user_tables;
使用rename修改
rename dept to deptment;

五、数据表的截断
注意:使用truncate实现数据表中的记录全部删除,并且不能恢复
1、格式
truncate table table_name;
2、实践
例如:删除employee数据表中所有的记录,并且不让恢复
先查看内容
select ename
from employee;
截断
truncate table employee;
再次查看
select *
from employee;

2019.9.26
一、数据表添加注释

1、格式
comment on table table_name|column table.column is ‘注释内容’

2、实践
例如:给emp数据表添加注释,注释员工基本信息。
comment on table emp is ‘Employee Information’;
查看当前用户数据表的注释
select *
from USER_TAB_COMMENTS;
例如:给emp数据表中empno列标题添加注释,注释内容“Employee number”
comment on column emp.empno is ‘employee number’;
数据字典查看结果
select column_name,comments
from user_col_comments;

3、查看注释使用的数据字典
ALL_COL_COMMENTS:查看所有用户列标题的注释
USER_COL_COMMENTS:查看当前用户列标题的注释
ALL_TAB_COMMENTS:查看所有用户数据表的注释
USER_TAB_COMMENTS:查看当前用户数据表的注释

二、约束概念
1、功能分类
NOT NULL:非空约束
PRIMARY KEY:主键约束
FOREIGN KEY:外键约束
CHECK:条件约束
2、根据约束的定义位置分类
列一级
表一级

三、NOT NULL
1、功能:不允许填充空值
2、注意:它的定义格式只有列一级的约束
3、实践
例如:创建employee数据表,empno number(4),ename varchar(20)。
create table employee (empno number(4),ename varchar(20))
测试插入记录,查看是否能完成信息插入。
insert into employee values(1000,NULL);
完成上面列题以后,删除employee
drop table employee;
例如:创建employee数据表,empno number(4),ename varchar(20),给ename列标题
加入空值约束。

create table employee (employee number(4),ename varchar(20) not null);

测试插入记录,查看是否能完成信息的插入。
insert into employee values(1000,null)
四、UNIQUE
1、功能:同一列标题下的数据不可以有重复值,但可以有多个空值
2、实践
例如:创建deptment数据表(deptno number(4),dname varchar2(20)),让dname列带唯一约束使用表一级约束的定义方法。
create table deptment(deptno number(4),dname varchar2(20),)

2019.9.30
一、primary key
1、功能
2、格式
列一级
column [CONSTRAINT costrant_name] constraint_type,
表一级
column,…
[CONSTRAINT constraint_name] constraint_type
(column,…),
3、实践
例如:创建deptment, deptno number(2),dname varchar2(20)
deptno 为主键约束。

列一级
create table deptment(deptno number(2) primary key,dname varchar2(20));

drop table deptment;

表一级
create table deptment(deptno number(2),
dname varchar2(20),
constraint deptment_deptno_pk primary key(deptno));

插入测试数据
insert into deptment values(10,‘SALES’);

以下两条记录可否正常插入
insert into deptment values(10,‘MAKING’);
insert into deptment values(NULL,‘MAKING’);

二、FOREIGN KEY外键约束
1、功能:两张数据表通过一个相同的列标题建立关联,这是主表中的主键,那么他就是子表中的外键约束
2、特点:(1)插入记录的时候,主表中的记录约束子表中的记录
(2)删除记录的时候,子表中的记录约束主表中记录的删除
3、格式
列一级
column [CONSTRAINT costrant_name] constraint_type,
表一级
column,…
[CONSTRAINT constraint_name] constraint_type
(column,…),
4、实践
例如:创建employee数据表,ename varchar2(20),deptno number(2)
定义deptno为外键约束,和deptment数据表建立关联。

create table employee
(ename varchar(20),
deptno number(2),
constraint employee_deptno_FK foreign key(deptno)
references deptment(deptno));

尝试插入测试数据

insert into employee values(‘MAIWEI’,10);

再次尝试插入测试数据查看是否正常插入

insert into employee values(‘WANGLI’,20);

尝试在deptment数据表中删除部门编号为10的记录,查看是否能正常的删除

delete deptment where deptno=10;

2019.10.9
一、FOREIGN KEY
1、ON DELETE CASCADB:如果删除父表中的记录则允许级联删除子表中相关联的记录
2、实践
例如:
创建主表:
create table deptment (deptno number(4),dname varchar2(20),constraint

deptment_deptno_pk primary key(deptno));
创建子表:
create table employee(empno number(4),ename varchar2(20),deptno number

(4),constraint employee_deptno_fk foreign key(deptno) references deptment

(deptno) on delete cascade);
测试:
insert into deptment values(10,‘SALES’);
insert into deptment values(20,‘MARKING’);
在子表中插入我们的数据
insert into employee values(1001,‘ZHANGSAN’,10);
insert into employee values(1001,‘LISI’,10);
在主表中删除10部门的记录
delete deptment where deptno = 10;
二、check约束
1、功能:定义每条记录都必须满足的条件(取值范围)
2、实践
例如:创建employee数据表,要求sal列表题将来数据的取值范围(0~20000)。
drop table employee;

create table employee(empno number(4),ename varchar2(20),sal number(10),constraint employee_sal_ck check(sal between 0 and 20000));

测试:
insert into employee values (1000,‘WANGLING’,-20);
insert into employee values (1000,‘WANGLING’,30330305205);
insert into employee values (1000,‘WANGLING’,15000);

三、数据约束
1、ALTER TABLE table
ADD [CONSTRAINT constraint] type (column);
2、注意:对于not null 约束的添加,使用的关键字是 MODIFY子句
3、实践
例如:修改employee数据表,在表中添加empno主键约束。
alert table employee add constraint emp_empno_pk primary key(empno);
测试:
insert into employee values (1000,‘WANGWU’,3000);
insert into employee values (NULL,‘WANGWU’,3000);

四、删除约束
alert table employee drop constraint emp_empno_pk;
测试:
insert into employee values (1000,‘WANGWU’,3000);
insert into employee values (NULL,‘WANGWU’,3000);

**

课本第八章<

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值