数据库其实就是柜子,柜中的抽屉是表空间,抽屉中的文件夹是数据文件,文件夹中的纸是表,写在纸上的信息就是数据。
一、表空间管理:
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; #查看角色所拥有的权限