oracle学习笔记(三)表的操作

 在oracle中可以用rename修改表名,但是些命令只限于oracle使用
rename person to tperson;


truncat table tperson;//截断表,直接删除所有的数据,且不能回滚


create table person(
 pid   varchar2(18),
 name   varchar(200) UNIQUE not null,//非空约束
 age   number(3) not null,
 birthday  date,
 sex   varchar2(2) DEFAULT '男',
 address  varchar2(200),
 CONSTRAINT person_pid_pk PRIMARY KEY(pid),//主键约束
 CONSTRAINT person_name_uk UNIQUE(name),//唯一约束
 CONSTRAINT person_age_ck CHECK(age between 0 and 100),//检查约束
 CONSTRAINT person_sex_ck CHECK(sex in('男','女'))//检查约束
);


create table book(
 bid number primary key,
 pid varchar2(18),
 bname varchar(30),
 bprice number(5,2),       
 CONSTRAINT person_book_pid_fk FOREIGN KEY(pid) PEFERENCES person(pid)[ON DELETE CASCADE]
 [可选,一般选择:在删除主表数据时,子表中的数据同时删除,级联操作]
);

 

Drop table person CASCADE CONSTRAINT;//强制删除,不管约束
alter table 表名 add constraint 约束名称 约束类型(约束字段)
alter table 表名 delete constraint 约束名称

 

视图的功能:一个视图实际上就是封闭了一条复杂的查询语句。

create or replace view 视图名称 as 子查询;//如果有则先删除
WITH CHECK OPTION则不能更新视图创建的条件 where deptno = 20则dept不能修改
WITH READ ONLY视图只读,不能修改数据
create view empv20 as select empno,ename,job,hiredate from emp where deptno = 20;
drop view empv20;

 

在Oralce中要完成自动增长操作,则只能依靠序列来完成,需要用户手工完成
Create SEQUENCE myseq;
序列的两种操作
nextVal:取得下一个内容
currVal:取得当前内容

同义词可以让其他用户通过一个名称方便的访问“用户名.名称”
create synonym 同义词名称 for 用户名.表名称
drop synonym  同义词名称

 

用户管理 对用户进行建立和授权的操作
要创建用户服务则要使用管理员进行登陆
create user 用户名 identified by 密码;

 

为用户授权
grant 权限1,权限2。。。 to 用户
grant create session to test;把创建session给用户test,此时还不能创建表
一个新的用户所有的权限都要分别赋予,如果现在假设杨把多个权限一次性赋予一个用户,则可以将这些权限定义成一组角色。在oracle中提供了两个主要的角色。
grant connect, resource to test;
在test用户下建立tab表
create table tab(
 id number primary key not null,
 name varchar2(20)
);
超级管理员修改普通用户密码
alter user 用户名 identified by 密码;
alter user test identified by hello;
在用户第一次登陆的时候修改密码,手工让一个密码失效
alter user 用户名 password expire;
alter user test password expire;
锁住用户:alter user 用户名 account lock;
alter user test account lock;
解锁:alert user 用户名 account unlock;
alter user test account unlock;
如果要用test访问scott.emp,则需要授予此张表的访问权限CURD
将scott下的emp查询及删除给test
grant select,delete on scott.emp to test;
回收权限:revoke 权限。。 on 用户.表名称 from 用户;
revoke select,delete on scott.emp from test;

 

数据库备份:exp 运行cmd 进入E:data 然后exp
数据库恢复:imp 运行cmd 进入E:data 然后imp

 

嵌套表:在一个表中还包含另外一个子表
一个部门可能承接多个项目,按原始方式应该定义两张表,department,project表
将project表的类型作为一个department表的字段类型,达到嵌套功能
可变数组:跟嵌套表一样要先定义一个类型
高级开发部分:游标、触发器、过程、包、函数

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值