数据库其实就是柜子,柜中的抽屉是表空间,抽屉中的文件夹是数据文件,文件夹中的纸是表,写在纸上的信息就是数据。
一、表空间管理:
1.创建表空间:
create tablespace ams datafile 'e:\app\oracle\oradata\orcl\ams.dbf' size 200m autoextend on next 50m maxsize unlimited logging extent management local segment space management auto;
2.修改表空间名称:?
1)使用oracle用户登录执行:
?$sqlplus / as sysdba
2) 执行修改表空间命令如下(注:可连续对多个表空间进行重命名)
SQL> alter tablespace ?TEST rename to TEST1;
3.删除表空间:
drop tablespace tablespace_name including contents and datafiles;
4.查询表空间:
select name from v$tablespace;
5.扩展表空间:(未使用过)
1)增加数据文件
alter tablespace test
add datafile 'd:\oracle\product\10.2.0\oradatatest02.dbf' size 1000m;
2)手动增加数据文件尺寸
alter database datafile 'd:\oracle\product\10.2.0\oradatatest.dbf'
resize 4000m;
3)设定数据文件自动扩展
alter database datafile 'd:\oracle\product\10.2.0\oradatatest.dbf
autoextend on
next 100m maxsize unlimited;
二、用户管理:
2.1创建用户
create user demodba identified by enter default tablespace?democabinet;
2.2删除用户
drop user USERNAME cascade;
2.3修改用户名:? ? ?
1)查询用户信息:
select * from user$;
2)查询目标用户信息:
select user#,name,password from user$ where name ='TRSWCMFORLINUX';
?3)修改目标用户信息:
update user$ set name='trswcmforlinux_old' where user#=78;
4)提交更新:
commit;
5)其他操作
alter system checkpoint; ? ?----强制写入数据文件
alter system flush shared_pool; ?----清楚缓存数据字典信息,强制oracle读实际数据(即更改后的数据)
4.用户授权/删除权限:
1)授权
grant connect,resource,dba,unlimited tablespace to finchina; ??
2)删除权限
revoke connect,resource,dba,unlimited tablespace from finchina;
//实例:给invest授予创建表的权限 ? ?
grant create table to invest;?
//实例:给invest授予查询表的权限 ? ?
grant select on user1.表名?to uer2;
5.用户下的表空间操作
1)查询当前用户下的表空间
select tablespace_name from user_tablespaces;
2)更改用户默认表空间:?
alter user finchina default tablespace finchinafcdd;
3)设置表空间无限配额: (未使用过)
alter user test quota unlimited on finchinafcdd;
4)设置用户对其他system表空间的配额为0:?(未使用过)
alter user test quota 0 on system
6.查看当前用户下的所有表? ? ? ?
select table_name from user_tables;
select count(table_name) from user_tables;
7.查询所有用户名称
select username from dba_users;
三、数据表和视图管理:
1.创建表
create table bobdb.tdhrm002
(
? dpid varchar2(3) not null,
? dscr varchar2(50) not null,
? mang varchar2(30) not null
);
2.修改表
--添加单列:
alter table 表名 add 列名 数据类型
--添加多列:
alter table 表名 add ( 列名1 数据类型1,列名2 数据类型2)
--修改单列数据类型:
alter table 表名 modify 列名 数据类型
--修改单列名称:
alter table 表名?rename column 旧列名 新列名
--同时修改多列数据类型:
alter table 表名 modify ( 列名1 数据类型1,列名2 数据类型2)
--删除单列:
alter table 表名 drop column 列名
--删除多列:
alter table 表名 drop (列名1,列名2)
--同时添加和修改多列:
alter table 表名 add ( 列名1 数据类型1,列名2 数据类型2) modify ( 列名3 数据类型3,列名4 数据类型4)
3.删除表
drop table books;
4.移动表(至另一表空间 )(未使用过)
alter table tbname move tablespace finchinafcdd
4.创建视图
create or replace view bobdb.Vddms007
as?
? ? select bobdb.tddms007.idna,
? ? ? ? ? ? bobdb.tddms007.idnb,
? ? ? ? ? ? bobdb.tddms007.dscr,
? ? ? ? ? ? bobdb.tddms001.flnm,
? ? ? ? ? ? bobdb.tddms001.docn
? ? from bobdb.tddms007,bobdb.tddms001
where
? ? bobdb.tddms007.idna=bobdb.tddms001.idna
5.创建索引
create unique index bobdb.tdhrm001_pk on bobdb.tdhrm001(emid);
6.给表添加主键
alert table 表名 add constraint 表名_pk primary key(字段名) using index;
7.创建联合主键
alter table bobdb.tdhrm003 add constraint tdhrm003_dpid_emid_pk primary key(dpid,emid);
8.删除主键
alter table bobdb.tdhrm003 drop constraint tdhrm003_dpid_pk;
四、数据管理:(省略...)
五、数据库信息查询:
desc table 表名; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #查看表结构
select *( table_name) from user_tables; ? ? ? ? ? ? ? #查询当前用户所有*/表
select username,default_tablespace from dba_users; ?#查询表空间
select * from user_users; ? ?#查询当前用户默认表空间
select *( tablespace_name) from user_tablespaces; ? #查询所有用户*/表空间
select * from all_users ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #查询所有用户
describe ?表名 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
select * from v$version; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#查询oracle版本
select userenv('language') from dual
select * from v$nls_parameters; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #查询oracle编码
select * from session_privs; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#查看用户所具有的系统权限
select * from user_role_privs; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#查看用户所拥有的角色:
select * from role_sys_privs; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#查看角色所拥有的权限 ?
|