Oracle11g数据库的一些常用语句
一、使用SQLPlus连接
登录的时候需要在cmd下进行操作
sqlplus / as sysdba
这是典型的操作系统认证,不需要listener进程,该命令最常用到,一般用户密码需要修改时使用此方式登录。
sqlplus username/password
连接本机数据库,不需要数据库服务器的listener进程,但是由于需要用户名密码的认证,因此需要数据库服务器处于可用状态才行。
sqlplus usernaem/password@orcl
通过网络连接,这是需要数据库服务器的listener处于监听状态。此时建立一个连接的大致步骤如下:
- a. 查询sqlnet.ora,看看名称的解析方式,默认是TNSNAME
- b. 查询tnsnames.ora文件,从里边找orcl的记录,并且找到数据库服务器的主机名或者IP,端口和service_name
- c. 如果服务器listener进程没有问题的话,建立与listener进程的连接。
- d. 根据不同的服务器模式如专用服务器模式或者共享服务器模式,listener采取接下去的动作。默认是专用服务器模式,没有问题的话客户端就连接上了数据库的server process。
- e. 这时连接已经建立,可以操作数据库了。
二、数据误删补救
select * from table as of timestamp to_Date('2016-08-25 10:28:00', 'yyyy-mm-dd hh24:mi:ss')
table就是对应的表名,意思是查询2016-08-25 10:28:00这个时间点时的数据。相当与回到了过去,在那个时间点查询数据。内存内有被刷掉就行
有时候不小心把数据删除了,我们可以查询误操作之前的时间,这样能把误删的数据查出来,然后插入回来。(希望不会用到)
三、系统参数查询
1、客户端字符集
select userenv('language') from dual; //需要先使用sqlplus登录。
2、表空间名称
select default_tablespace from dba_users where username='登录用户'
3、查询所有表空间
select * from dba_tablespaces;
4、查询sid
select instance_name from v$instance;
5、查看能管理的所有用户
select * from all_users;
四、创建新数据库流程
1、创建表空间
create tablespace aaa datafile 'D:\tablespace\aaa.dbf' size 500m autoextend on next 10M;
创建一个表空间名为aaa,表空间文件存放路径为D:\tablespace\aaa.dbf
2、创建用户
CREATE USER zyt PROFILE DEFAULT IDENTIFIED BY zyt123456
DEFAULT TABLESPACE aaa
TEMPORARY TABLESPACE TEMP ACCOUNT UNLOCK;
创建用户名为zyt,密码为zyt123456,指定用户使用的表空间为aaa,临时表空间为TEMP,account unlock创建用户的时候解锁用户(默认)
3、给用户授权
Grant connect,resource,dba to zyt;
4、还原数据库(dmp文件)
imp zyt/zyt123456@127.0.0.1:1521/orcl file=E:/kkk/20200703.dmp full=Y ignore=y
5、备份数据库(dmp文件)
先执行空表分配空间的命令语句,因为默认空表是没有空间的,使用exp无法导出来,因此需要先为空表分配空间:
select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0 or num_rows is null
然后执行备份语句
exp zyt/zyt123456@127.0.0.1:1521/ORCL file=/usr/rdsys/oracle/20200701_0.dmp
6、删除用户
drop user zyt cascade;
7、删除表空间
DROP TABLESPACE aaa INCLUDING CONTENTS AND DATAFILES;