1.登录到linux,查看oracle中是否有实例启动了:
ps -ef | grep smon
切换到oracle用户权限(输入exit退出)
su – oracle
检查看看监听器是否有启动
lsnrctl status
如果没有启动,可以输入:
lsnrctl start
接着请输入
sqlplus "/as sysdba"
原本的画面会变为(输入exit退出)
SQL>
启动数据库
SQL> startup
查看oracle版本
select * from v$version; 或 select banner from sys.v_$version;
查看当前数据库名
select name from v$database; 或 show parameter db;
查看当前数据库实例名
select instance_name from v$instance; 或 show parameter instance;
查看数据库域名
select * from v$parameter where name = 'db_domain'; 或 show parameter domain;
查询数据库服务名
show parameter service_name;
查询所有表空间位置
select name from v$datafile;
查看所有的表空间
select *(tablespace_name) from dba_tablespaces;
或者select *(name) from v$tablespace;
查看用户所属的表空间 */ 用户名大写
select default_tablespace from dba_users where username=' SYSTEM';
查看表空间下有多少用户,tablespace_name表空间 的名字一定要大写
select distinct s.owner from dba_segments s where s.tablespace_name ='SYSTEM';
创建用户表空间test,指定已存在空间可以跳过
CREATE TABLESPACE test datafile 'E:\APP\ADMINISTRATOR\ORADATA\ORCL\testNS.dbf'
size 600M autoextend on next 50m maxsize unlimited;
---------unlimited是没限制增加,可以换成 2048m extent management local;
创建用户test和密码test,并指定表空间test
CREATE USER test IDENTIFIED BY test DEFAULT TABLESPACE test;
修改密码
alert user test identified by 123;// 修改密码
给用户test赋予权限,新建的用户没有任何权限,必须授予权限
grant connect,resource,dba to test;给用户授予基础、开发权限、dba(最高操作库权限)
删除用户和该用户下所有表
drop user test cascade;
随后可以用PLSql登陆test用户了
查询当前用户所有表
SELECT * FROM USER_TABLES;
plsql导入导出sql文件
PLsql导出表结构tools-->export user objects-->选中user中对应的用户,导出选sql文件
(导出时User下左侧Privileges,Storage和Owner都不选,导出的sql文件没有teblespace和表所属用户)
PLsql导出表数据tools-->export tables-->选中SQL Inserts,导出sql文件
PLsql导入sql Import Tables-->sql inserts-->import file--->点击import按钮
给已创建的表添加3个字段
alter table user
add (name varchar2(30) default ‘无名氏’ not null,
age integer default 22 not null,
has_money number(9,2)
);
查询oracle的字符集
select * from v$nls_parameters t where t.PARAMETER='NLS_CHARACTERSET';
字符集ZHS16GBK:汉字占2个字节
字符集AL32UTF8:汉字占3个字节
修改表字段的字节大小
alter table 表名 modify 表字段 varchar2(1024);
COMMIT;
修改字段类型从varchar2改为clob,读取大字段内容,不能直接alter,需要做几部操作
--表 t_test 的字段 bb 由 varchar2 类型改为 clob 类型
alter table t_test add aa clob;
--将需要改成大字段的项内容copy到大字段中
update t_test set aa=bb;
--删除原有字段
alter table t_test drop column bb;
--将大字段名改成原字段名
alter table t_test rename column aa to bb;
COMMIT;
反过来 clob 改为 varchar2 则不能用上方法,需要删除 clob 字段,再建立 varchar2 类型字段即可
----------------------------------------------------------------华丽的分割线---------------------------------------------------------------------
Oracle默认用户
Oracle安装好时已经创建提供了许多用户
sys;//系统管理员,拥有最高权限 角色:dba 这个用户是活的,即可以直接使用(其他用户需要解锁使用)
system;//本地管理员,次高权限
scott;//普通用户,密码默认为tiger,默认未解锁
解锁其他普通用户,并设置密码
alter user scott account unlock; alter user scott identified by 1234;
Oracle登陆
sqlplus / as sysdba;// 登陆sys帐户
sqlplus sys as sysdba;// 同上
sqlplus test/test;// 登陆普通用户test
显示当前用户名 show user;
查询表结构desc test;
查看权限
select * from user_sys_privs;//查看当前用户所有权限
select * from user_tab_privs;//查看所用用户对表的权限
撤销权限
基本语法同grant,关键字为revoke
角色
角色即权限的集合,可以把一个角色授予给用户
create role onerole;//创建角色
grant create connect to onerole;//将创建session的权限授予myrole
grant onerole to test;//授予test用户onerole的角色
drop role onerole;删除角色