您的位置:首页 > 数据库

对数据库表、视图、表空间的操作

2011-12-31 12:50 302 查看
对数据库表、视图、表空间的操作
【1、对表的操作】
----添加字段
alter table book add(bookOwner varchar2(32))
---添加数据
insert into book(bookowner,bookworker) values('小红帽','你回家')
添加字段:alter table HKB_TABLE_MODIFY add ADDRESS nvarchar2(3);
---删除字段:(在工作中尽量不要修改表结构)
alter table book drop column gg ;
---更新数据
update book set bookowner='小红帽', bookworker='你回家' where bookname='core java'
---修改字段
alter table book modify(gg number)
---修改字段属性:
alter table book modify AGE number(2);
---字段改名:
alter table HKB_TABLE_MODIFY rename column AGE to AGE2;

---删除字段
---如待删除域属于某个索引,则不允许删除操作,必须将此域先设置为NULL。
alter table emp modify(column_x null);
update emp set column_x=null;
commit;
alter table emp drop(column_x);
【2、对视图的操作】
----创建视图
create or replace view dept_v as select * from dept;---单表视图
注意:在创建视图前,必须以sysdba 用户登录为scott用户赋权限
例如:
conn system/密码 as sysdba
grant dba to scott;
create or replace view dept_v as select * from dept;---单表视图
对于复杂的数据库操作,一般使用视图,而不是操作表,这样做的好处就不说了。。。
视图可以关联好几张表,一般使用一下关键字:
多表的操作!
1.union 和union all(注意:union的两表查询操作的字段必须一样)
表中(无重复)记录相加
select name,age from emp1
union
select name,age from emp2;
表中记录相加
select name,age from emp1
union all
select name,age from emp2;
2.join的操作(用的时候详细研究)
cross join:是笛卡儿乘积,在没有任何条件约束下就是一张表的行数乘以别一张表的行数。
left join:返回“表名1”的全部行,对于“表名2”中,不满足on条件的记录用空值替换。
rigth join:返回“表名2”的全部行,对于“表名1”中,不满足on条件的记录用空值替换。
full join:返回两张表中的所有记录,对于不满足on条件一端的记录用空值替换。
inner jon:只返回两张表中都满足on条件的记录。
实例:员工信息表emp和部门表dept关联起来
**************************************************
/*
* 员工信息表emp和部门表dept关联起来
*/
create or replace view emp_dept_v as
select e.EMPNO,
e.ENAME,
e.JOB,
e.MGR,
e.HIREDATE,
e.SAL,
e.COMM,
e.DEPTNO,
d.dname,
d.loc
from emp e
left join dept d on d.deptno = e.deptno;
********************************************************
【3、对表空间的操作】
----创建表空间
即为那个用户创建自己的表空间,一般么默认存放在 USERS
create tablespace 用户名称 datafile '表空间存放路径\表空间名称.dbf' size 100m autoextend on next 10m;
例子:为scott创建表空间scott.dbf
create tablespace scott datafile '表空间存放路径\scott.dbf' size 100m autoextend on next 10m;
----选择表空间
alter user 用户名 default tablespace test;
----删除表空间
drop tablespace 表空间名称
--管理员删除别的用户中的表
drop table 用户名.表名;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: