如有不对,敬请指出,谢谢!
all_tables 显示用户有权限看到的所有的表,包括系统表
dba_tables 是管理员可以看到的数据库中所有的表
user_tables 是当前用户的所有表,用这个可以缩小查找的范围
获取实例名:select instance_name from v$instance;
如果知道表所在的用户可以:select * from all_tables where owner='用户名'
如果知道字段的名称可以:select * from all_tab_columns where owner='用户' and column_name='字段名'
查看当前用户:show user;
查看表结构:desc 表名;
查看当前数据库实例:show parameter instance_name;
查看当前登录的用户的表: select table_name from user_tables;
查询表空间中数据文件具体位置:select name from v$datafile
查询表空间中数据文件具体位置和文件名,表空间名等:Select * from DBA_DATA_FILES;
update 和 insert 操作后 输入commit 进行保存;
创建用户
1.首先需要使用system用户创建表空间
create tablespace 表空间名 datafile 'D:\oracle\product\10.2.0\oradata\oracle\空间名.dbf' size 200M;
注:datafile 后面是表空间的物理储存路径,size为一次扩展的存错空间大小,当空间不足时再扩展一次存储空间,
2.创建用户
create user 用户名 identified by 密码;
3..默认情况下用户创建好后系统会默认给该用户分配一个表空间(users)
查询用户所在空间
select username,default_tablespace from dba_users;
4.创建表空间后,还需要将表空间分配给用户.
alter user 用户名 default tablespace 空间名;
5.给用户分配了表空间,用户还不能登陆(没有登录权限),因此还需要为用户分配权限
grant create session,create table,create view,create sequence,unlimited tablespace to 用户名;
6.给用户分配了权限之后我们就可以用jeetop用户来登录了.
conn 用户名/密码;
导入dmp文件
如上述操作后,不能直接导入文件,再次授权;
grant dba to 用户名;
imp 用户名/密码@orcl名 file=文件路径 full=y;
oracle表操作
创建表
1
create table tablename(
id number(2) primary key,
name varchar(10) not null,
sex char(5) check(sex='man' or sex='women'),
tel number(11) unique,
address varchar(30) default 'beijing'
);
常见约束:references -- 外键引用其他的表
增
单行添加
insert into 表名 (
字段1,字段2,日期)
values(
添加1,添加2,(to_date('2012/10/22','yyyy/mm/dd'))
);
多行添加
INSERT ALL
INTO mytable (字段1,字段2, 字段3) VALUES (添加1, 添加2, 添加3)
INTO mytable (字段1, 字段2, 字段3) VALUES (添加1, 添加2, 添加3)
INTO mytable (字段1, 字段2, 字段3) VALUES (添加1, 添加2, 添加3)
SELECT * FROM dual;
删
delete from 表名 where 条件
改
Update 表名
Set 字段名=修改的值,字段名=修改的值,
Where 条件;
查
select * from dual
在Oracle数据库内有一种特殊的表Dual。Dual表是Oracle中的一个实际存在的表,任何用户均可读取,常用在没有目标表的Select中。Dual表由Oracle连同数据字典一同创建,所有的用户都可以用名称DUAL访问该表。这个表里只有一列DUMMY,该列定义为VARCHAR2(1)类型,有一行值X。从DUAL表选择数据常被用来通过SELECT语句计算常数表达式,由于DUAL只有一行数据,所以常数只返回一次。
用途
1、select计算常量表达式、伪列等值
oracle内部处理使它只返回一行数据,而使用其它表时可能返回多个数据行。
2、查看当前用户
select user from dual;
select count(*) from dual;
3、用做计算器
select 7*9*10-10 from dual;
4、调用系统函数
(1)获得当前系统时间
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
(2)获得主机名
select sys_context('userenv','terminal') from dual;
(3)获得当前locale
select sys_context('userenv','language') from dual;
(4)获得一个随机数
select DBMS_RANDOM.random from dual;
5、查看序列值
(1)创建序列aaa 以1开始,每次加1
create sequence aaa increment by 1 start with 1;
(2)获得序列aaa 的下一个序列值
select aaa.nextval from dual;
(3)获得序列aaa 的当前序列值
select aaa.currval from dual;