对数据库表、视图、表空间的操作
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 用户名.表名;
【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 用户名.表名;
相关文章推荐
- 高效的使用空间SQL操作空间数据库系列之二
- 【数据库】[oracle]表,视图,索引,序列,同义词等操作集合
- 使用PL/SQL Developer工具来实现创建表空间、创建数据库、备份数据库、数据导出等操作
- 搭建服务器虚拟空间支持数据库操作
- SQL语句行列转换(附带数据库、表、视图操作)
- Oracle 数据库操作 导入导出 删除用户 表空间
- SQL语句行列转换(附带数据库、表、视图操作)
- 高效的使用空间SQL操作空间数据库系列之一
- SQL2K数据库开发十七之视图操作创建视图 推荐
- 数据库表空间的操作
- oracle 用户表数目,表大小,视图数目及表空间等查询增加修改删除操作
- 数据库操作——视图
- 数据库关于表空间的操作语句
- 使用PL/SQL Developer工具来实现创建表空间、创建数据库、备份数据库、数据导出等操作
- Django视图之ORM数据库查询操作API的实例
- linux 扩容逻辑,物理分区,解决数据库空间不足问题(不需要对数据库做任何操作)
- 用flask开发个人博客(21)—— 在视图函数中操作数据库
- Mysql对空间数据库的支持及使用Hibernate Spatial对空间数据的持久化操作
- ArcSDE和SQL语句同时操作Oracle空间数据库的问题
- oracle 数据库imp操作导入dmp文件时表空间问题