oracle学习小知识点总结
登陆数据库:sqlplus "/as sysdba" window身份验证,不需要用户名和密码。
查看数据库状态: select status from v$instance(v$表示oracle的动态表)
启示和关闭数据库:startup、shutdown immediate
查看当前数据库名称:show parameter db_name
查询用户状态:select username,accout_status from dba_users where username='SCOTT';
显示dba_users表的所有列:desc user_tables;
对数据库用户解锁:alter user 数据库用户名 accout unlock;
查看当前数据库用户:show user;
在数据库中切换用户:conn 用户名/密码
普通用户登录数据库:sqlplus 用户名/密码
查询用户下有哪些表:select table_name from user_tables;
如何设置时间格式:alter session set nls_date_format='YYYY-MM-DD';
获得当前时间:select sysdate from dual;(dual是一个虚表,在查询用到计算,常量表达式时可以使用它)
在使用group by分组时,如果有条件限制,需要使用having,而不能用where
表的5个约束:Primary key(主键)、Foreign Key(外键)、Not Null(非空)、Unique(唯一)、Check(条件)
创建一个数据库用户:create user 用户名 identified by 密码;
给数据库用户授权:grant 操作 to 用户;
回收用户权限:revoke 操作 from 用户;
更改用户密码:alter user 用户名 identified by 新密码;
删除用户:drop user 用户名;
查看用户有哪些权限:select * from session_privs;
查看用户本身有哪些角色:select * from user_role_privs;
查看CONNECT角色有哪些权限:select * from dba_sys_privs where grantee='CONNECT';
查询oracle服务器端的编码:select userenv('language') from dual;
查看用户下有多少个视图:select * from user_views;
确认用户是否有创建同义词的权限:select * from session_privs where privilege like '%SYNONYM%';
创建一个表的同义词:create synonym sg for salgrade;
查询初始化文件位置:show parameter spfile
查询数据库的数据文件位置:select name from v$datafile;
查询重做日志文件位置:select member from v$logfile;
禁止用户远程登录数据库:alter system set remote_login_passwordifle=none scope=spfile;
查询表所属的表空间:select table_name,tablespace_name from user_tables;
查看数据库版本:select * from v$version;
select 列表 中的非聚合函数列,都必须出现在group by子句中,但是,group by子句中的列,不一定要出现在select列表中,
group by 可以使用表达式,但不可以使用别名
聚合函数,不能出现在where子句中
rollup和group by一起使用,用来产生各分组的小计以及最后的合计
查询死锁:select b.username,b.sid,b.serial#,logon_time
from v$locked_object a,v$session b
where a.session_id = b.sid order by b.logon_time;
杀死死锁:alter system kill session 'sid,serial#' immediate;
查看当前用户的缺省表空间:select username,default_tablespace from user_users;
查看名称包含log字符的表:select object_name,object_id from user_objects
where instr(object_name,'LOG')>0;
查看某表的创建时间:select object_name,created from user_objects where object_name=upper('&table_name');
查看某表的大小:select sum(bytes)/(1024*1024) as "size(M)" from user_segments
where segment_name=upper('&table_name');
查看放在ORACLE的内存区里的表:select table_name,cache from user_tables where instr(cache,'Y')>0;
显示和设置每行显示的字符:show linesize set linesize 100
显示和设置每页的记录数:show pagesize set pagesize 12
未完待续...