首页 > 代码库 > Oracle基础知识
Oracle基础知识
一、数据库登录
sqlplus请输入用户名: 输入口令:在命令行输入sqlplus;值得注意的是,以sysdba身份登录时,用户名应填写username as sysdba
二、用户
创建用户
create user username identified by password;
创建用户,并指定表空间
create user username identified by password default tablespace user_data [temporary tablespace user_temp];其中[]中内容可选;该用户登录,创建的任何数据库对象都属于user_temp 和user_data表空间,就不用再每创建一个对象给其指定表空间了
删除用户
drop user user_name cascade;
用户权限
grant connect,resource,dba to username; 授权revoke ... from username; 撤权
更多关于用户、权限、角色的说明可查看如下网页:http://blog.csdn.net/junmail/article/details/4381287
修改用户密码
select username,password from dba_users; 查看用户alter user system identified by manager; 修改用户口令 格式 alter user 用户名 identified by 新密码connect system/manager 现在就可以用此密码链接进行操作了另,若密码是复杂含有特殊字符的,可用双引号来使用
查询所有用户
select * from all_users;
三、表空间
创建临时表空间
create temporary tablespace user_temp tempfile ‘D:\oracle\oradata\Oracle9i\user_temp.dbf‘ size 50m [autoextend on next 50m maxsize 20480m extent management local];
其中[]中内容可选
创建数据表空间
create tablespace test_data logging datafile ‘D:\oracle\oradata\Oracle9i\user_data.dbf‘ size 50m [autoextend on next 50m maxsize 20480m extent management local];
其中[]中内容可选
删除表空间
DROP TABLESPACE data01 INCLUDING CONTENTS AND DATAFILES;
查看表空间(两种方式)
DESC DBA_TABLES;SELECT TABLESPACE_NAME FROM DBA_TABLESPACES;
四、表
创建表
create table tablename(id number(10), name char(10));其中:id与name是字段名;number与char是字段类型
创建表并指定表空间
create table tablename(id number(10), name char(10)) tablespace tablespace_name;
插入数据
insert into tablename values();
删除表
drop table tablename;
五、数据库状态
查询(两种方式)
select status from v$instance;select open_mode from v$database;
检查数据库状态
ps -ef | grep oracle 查看数据库进程
启动和关闭参数说明
[关闭数据库]
有四个参数,含义如下:
Normal 需要等待所有的用户断开连接后才执行关闭数据库任务,所以有时候看起来像命令没有运行一样;在执行这个命令后不允许新的连接。
Immediate 等待用户完成当前的语句后就断开用户连接,并不允许新用户连接。
Transactional 等待用户完成当前的事务后断开连接,并不允许新用户连接。
Abort 不做任何等待,执行强行断开连接并直接关闭数据库
前三种方式不会丢失用户数据,第四种在不得已的情况下才采用。
[启动数据库]
数据库启动使用startup命令,有三种情况:
(1)不带参数,启动数据库实例并打开数据库,以便用户使用数据库,在多数情况下,使用这种方式;
(2)带nomount参数,只启动数据库实例,但不打开数据库,在你希望创建一个新的数据库时使用,或者在你需要这样的时候使用;
(3)带mount参数,在进行数据库更名的时候采用。这个时候数据库就打开并可以使用了。
六、日志状态
select * from v$logfile 可查看日志的group、status、type、member;select * from v$log 可查看日志的group、thread#、sequence#、bytes、members、arc、status、first_change#、first_time;
常见status 的值有:
current 当前日志,即是Oracle正在用于写入的日志;
active 活动但非当前的日志,也就是Oracle使用过,但其中包含未checkpoint的内容,即是说如果数据库非正常关闭,则数据文件需要使用这组日志进行恢复;
inactive 非活动的,其记录的内容已经通过checkpoint保存到数据文件中了。
另archived字段表明该日志是否已归档,可通过查询v$archived_log查询归档日志。
alter system switch logfile; 切换当前日志alter system archive log current; 归档当前日志 alter system archive log all; 归档所有日志
在自动归档模式下切换日志会引起日志归档,日志归档也要求切换日志,所以实际上上述命令的效果可能是相同的
七、 监听
lsnrctl start 启动监听lsnrctl status 查看监听lsnrctl stop 停止监听
八、查询
select count(*) from tablename; 求tablename表中所有记录的条数select count(coln) from tablename; 求tablename表中coln列所有的记录数,包括重复的select count(distinct coln) from tablename; 求tablename表中coln列所有的记录数,不包括重复的select max(rownum) from tablename; 求tablename表中所有记录的条数
select tablespace_name from dba_tablespaces; 查看有哪些表空间select table_name from all_tables where tablespace_name=‘yourtablespace‘; 查看表空间里有哪些表 注意yourtablespace要大写
select FILE_NAME,ONLINE_STATUS from dba_data_files; 查看数据文件的状态select tablespace_name,file_id,bytes,file_name from dba_data_files; 查看数据文件名称、大小和路径
select global_name from global_name; 服务名
查看端口号
“configration and migration tools--Net Manager--本地--服务命名”中看到
九、版本号
select * from V$VERSION;