项目中最基本的Oracle操作命令
-
博客分类:
- DB
1.查询实例
env | grep ORA
2.登陆数据库(前提是用oracle用户登陆)
sqlplus "/as sysdba"
3.表操作基础
(1) 创建表
create table tab_name
(
column_name data_type ,
column_name data_type ,
column_name data_type ,
……
)
(2) 修改表
插入列
alter table tab_name add(column_name data_type)
修改列
alter table tab_name modify(column_name data_type)
删除列
alter table tab_name drop column column_name;
表重命名
rename tab_name to change_name
删除表
drop table tab_name删除记录和结构,不可恢复
sql修改oracle表字段名称:
alter table tb_user_test rename column neme to cname;
如果表的字段名是关键字,则在关键字外加双引号:
alter table tb_user_test rename column cname to "validate"
4.创建、增加以及修改表空间
create or replace tablespace ml_default_dat datafile 'ml_default_dat.dat' size 50M;
create tablespace ml_default_idx datafile 'ml_default_idx.dat' size 50M;
CREATE TABLESPACE tablespace
DATAFILE
'/opt/oracle/bmedata/lvdata2' SIZE 100M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K
SEGMENT SPACE MANAGEMENT AUTO; ---创建表空间,指定存放路径
增加表空间的大小,如将表空间IMUSE01增加100M:
alter tablespace bmp_user_dat add datafile '/home/oracle/oradb/oradata/inomc/bmp_user_datt.dat' size 500M;
alter tablespace bmp_user_idx add datafile '/home/oracle/oradb/oradata/inomc/bmp_user_indexx.dat' size 100M;
修改表空间的大小,如将表空间IMUSE01改为1000M:
alter database datafile '/export/home/oracle/oradata/mdspdata/imuse01_dat1' resize 1000M;
5.创建Oracle用户
create user bmp identified by ml default tablespace tabs_scpdb temporary tablespace tempucdb;
6.给用户赋予权限
grant resource,dba,connect to ml
7.数据库与监听操作
shutdown immediate 关闭数据库
startup 启动数据库
lsnrctl status 查询监听
lsnrctl start 启动监听
8.给用户解锁
alter user ml account unlock;
9.查某个实例下有哪些用户及用户对应的密码
select username,created,password from dba_users;
10.下面介绍Oracle查询用户表空间
◆Oracle查询用户表空间:select * from user _all_tables
◆Oracle查询所有函数 和储存过程:select * from user_source
◆Oracle查询所有用户:select * from all_users.select * from dba_users
◆Oracle查看当前用户连接 :select * from v$Session
◆Oracle查看当前用户权限 :select * from session_privs
◆Oracle查看用户表空间使用情况:
- select a.file_id "FileNo" ,a.tablespace_name "Tablespace_name" , a.bytes "Bytes" ,a.bytes- sum (nvl(b.bytes,0)) "Used" , sum (nvl(b.bytes,0)) "Free" , sum (nvl(b.bytes,0))/a.bytes*100 "%free" from dba_data_files a, dba_free_space b where a.file_id=b.file_id(+) group by a.tablespace_name , a.file_id,a.bytes order by a.tablespace_name;
11.删除用户、表空间以及清空回收站数据
删除用户
drop user bmeml cascade;
删除表空间和文件(注意:先要删除该表空间的用户
drop tablespace law including CONTENTS and datafiles;
清空oracle的回收站
PURGE RECYCLEBIN;
恢复回收站中的表
FLASHBACK TABLE foo TO BEFORE DROP;
注意:在删除表或表空间时,oracle并没有真正的删除,被放在类似回收站里。
如果出现这种错误:ORA-38301:can not perform DDL/DML over objects in Recycle BIn。
就说明跟回收站有关了,有可能要清空相关数据你才能创建。PURGE table "BIN$V3f/oYUITrCEF2cotS5JaA==$0"清楚回收站里的单个表。
12.创建临时表空间
CREATE TEMPORARY TABLESPACE tempucdb TEMPFILE 'tempucdb.dbf' SIZE 50M AUTOEXTEND ON;
13.如果错误删除了某个数据库文件,数据库起不来如何办
SQL> startup
ORACLE instance started.
Total System Global Area 96393244 bytes
Fixed Size 75804 bytes Variable Size 56918016 bytes
Database Buffers 39321600 bytes Redo Buffers 77824 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 10 - see DBWR trace file ORA- 01110: data file 10: 'D:\TEST.DBF'
SQL> alter database datafile 'd: \test.dbf' offline drop;
SQL> alter database open;