Oracle 学习总结

来源:互联网 发布:mac book pro 15寸 编辑:程序博客网 时间:2024/05/01 13:12

 

设置行的长度:set linesize 300;
设置每页显示的条数:set pagesize 30;

登陆:超级管理员:conn sys/密码 as sysdba;
      管理员:conn system/密码;
      普通用户:conn scott/密码;

显示一个库中所有的表名 :select * from tab;
显示表结构:desc 表名

查询时:使用distinct 取消重复的列
select distinct job from  emp ;

查询不同用户下的表时需要指定用户:select * from scott.emp;


函数:
以查询的方式使用 select [] from dual;(dual是sys的表,现在使用的是同义词)
把字符串转成大写:upper();  select upper('hello') from dual;
把字符串转成小写:lower(); select lower('HELLO')from dual;
把单词第一个字符转成大写,后面的字符转成小写:
:initcap; select initcap('hello') from dual;

round  四舍五入 select round(123.535) from dual,
     或  select round(123.535,2) from dual  表示 小数留2位
substr()
length()
replace()
sysdate   获得当前时间
to_char() 可以转换时间的格式  比如:select to_char(sysdate,'yyyy-mm-dd') from dual;
在格式前面加上fm 可以去掉不足俩位,在前面补得0,比如:2009-07-01 得到结果 :2009-7-1
select to_char(sysdate,'fmyyyy-mm-dd') from dual;
创建并复制emp表的结构和数据
create table myemp as select * from emp;

rename tableName to newTableName   给表重命名

创建序列:create sequence 序列名
          create sequence myseq;
    或:create sequence 序列名 increment by 数字 (序列的增长幅度)
    或:create sequence 序列名 start with 数字   (序列的开始位置)
   或:create sequence 序列名 increment by 数字 start with 数字 

创建同义词:
    create synonym 同义词的名称 from 用户名.表名
    create synonym emp from  scott.emp;  这样以后在sys或system 用户里也可以直接使用:select * from emp;
创建用户:
    create user 用户名 identified by 密码
    create user lpdx111  identified by bianlong
然后授权:
    grant 权限1,权限2... TO 用户名
    GRANT CREATE SESSION TO lpdx111   (给用户创建session的权限,就是可以连接到数据库)
    在Oracle中可以给用户直接赋予角色,,,在Oracle中现有两个角色 CONNECT(连接),RECOURSE(资源) 
   现在给用户赋予角色:
    GRANT CONNECT,RECOURSE to lpdx111
    修改用户的密码:
    alter USER 用户名 identified by 密码
    alter User lpdx111 identified by xiaolong

有时候 系统管理员会让用户在第一次登陆的时候,修改密码,那么就是让此用户的秘密过期,然后用户在登陆时就可以指定新密码了
   让密码过期:
   alter user lpdx111 password expire
    给一个用户加锁:
   alter User ldpx111  account lock
    给用户解锁:
  alter user lpdx111 account unlock

给用户创建操作其他用户的表的权限
   grant SELECT,DELETE,UPDATE,INSERT ON 用户名.表名 TO 用户名
   grant select,delete on scott.emp to lpdx111
收回用户操作其他用户的权限
   revoke SELECT,DELETE,UPDATE,INSERT ON 用户名.表名 FROM 用户名
   revoke select,delete on scott.emp from lpdx111
数据库的备份与恢复:
  备份:exp
  恢复:imp
 在 d盘创建一个文件夹,在dos 下进入此文件夹:输入:exp
恢复同上部操作一样

 


1. 查询oracle中所有用户信息

       select  * from dba_users;

   2. 只查询用户和密码

       select username,password from dba_users;

   3. 查询当前用户信息

       select * from dba_ustats;

   4. 查询用户可以访问的视图文本

       select * from dba_varrays;

   5. 查询数据库中所有视图的文本

       select * from dba_views;

   6.查询当前用户下的序列
    select sequence_name from user_sequences

  7 .查询表结构
   select * from user_tab_columns

套嵌表

           把一个作为一个类型使用

create type ...