zoukankan      html  css  js  c++  java
  • orcal数据库基本操作

    1、连接

     

    SQL*Plus system/manager

     

    2、显示当前连接用户

     

    SQL> show user

     

    3、查看系统拥有哪些用户

     

    SQL> select * from all_users;

     

    4、新建用户并授权

     

    SQL> create user a identified by a;(默认建在SYSTEM表空间下)

     

    SQL> grant connect,resource to a;

     

    5、连接到新用户

     

    SQL> conn a/a

     

    6、查询当前用户下全部对象

     

    SQL> select * from tab;

     

    7、建立第一个表

     

    SQL> create table a(a number);

     

    8、查询表结构

     

    SQL> desc a

     

    9、插入新记录

     

    SQL> insert into a values(1);

     

    10、查询记录

     

    SQL> select * from a;

     

    11、更改记录

     

    SQL> update a set a=2;

     

    12、删除记录

     

    SQL> delete from a;

     

    13、回滚

     

    SQL> roll;

     

    SQL> rollback;

     

    14、提交

     

    SQL> commit;

     

    用户授权:

     

    GRANT ALTER ANY INDEX TO "user_id "

     

    GRANT "dba " TO "user_id ";

     

    ALTER USER "user_id " DEFAULT ROLE ALL

     

    创建用户:

     

    CREATE USER "user_id " PROFILE "DEFAULT " IDENTIFIED BY " DEFAULT TABLESPACE "USERS " TEMPORARY TABLESPACE "TEMP " ACCOUNT UNLOCK;

     

    GRANT "CONNECT " TO "user_id ";

     

    用户password设定:

     

    ALTER USER "CMSDB " IDENTIFIED BY "pass_word "

     

    表空间创建:

     

    CREATE TABLESPACE "table_space " LOGGING DATAFILE 'C:ORACLEORADATAdbs able_space.ora' SIZE 5M

     

    ------------------------------------------------------------------------

     

    1、查看当前全部对象

     

    SQL > select * from tab;

     

    2、建一个和a表结构一样的空表

     

    SQL > create table b as select * from a where 1=2;

     

    SQL > create table b(b1,b2,b3) as select a1,a2,a3 from a where 1=2;

     

    3、察看数据库的大小。和空间使用情况

     

    SQL > col tablespace format a20

     

    SQL > select b.file_id  文件ID,

     

      b.tablespace_name  表空间,

     

      b.file_name     物理文件名称,

     

      b.bytes       总字节数,

     

      (b.bytes-sum(nvl(a.bytes,0)))   已使用,

     

      sum(nvl(a.bytes,0))        剩余,

     

      sum(nvl(a.bytes,0))/(b.bytes)*100 剩余百分比

     

      from dba_free_space a,dba_data_files b

     

      where a.file_id=b.file_id

     

      group by b.tablespace_name,b.file_name,b.file_id,b.bytes

     

      order by b.tablespace_name

     

      /

     

      dba_free_space --表空间剩余空间状况

     

      dba_data_files --数据文件空间占用情况

     

    4、查看现有回滚段及其状态

     

    SQL > col segment format a30

     

    SQL > SELECT SEGMENT_NAME,OWNER,TABLESPACE_NAME,SEGMENT_ID,FILE_ID,STATUS FROM DBA_ROLLBACK_SEGS;

     

    5、查看数据文件放置的路径

    SQL > col file_name format a50

     

    SQL > select tablespace_name,file_id,bytes/1024/1024,file_name from dba_data_files order by file_id;

     

    6、显示当前连接用户

     

    SQL > show user

     

    7、把SQL*Plus当计算器

     

    SQL > select 100*20 from dual;

     

    8、连接字符串

     

    SQL > select 1 | |2 from 1;

     

    SQL > select concat(1,2) from 1;

     

    9、查询当前日期

     

    SQL > select to_char(sysdate,'yyyy-mm-dd,hh24:mi:ss') from dual;

     

    10、用户间复制数据

     

    SQL > copy from user1 to user2 create table2 using select * from table1;

     

    11、视图中不能使用order by,但可用group by取代来达到排序目的

     

    SQL > create view a as select b1,b2 from b group by b1,b2;

     

    12、通过授权的方式来创建用户

     

    SQL > grant connect,resource to test identified by test;

     

    SQL > conn test/test

     

    13、查出当前用户全部表名。

     

    select unique tname from col;

     

    -----------------------------------------------------------------------

     

     

     

    alter table alist_table add address varchar2(100);

     

     

     

    alter table alist_table modify address varchar2(80);

     

     

     

    create table alist_table_copy as select ID,NAME,PHONE,EMAIL,

     

    QQ as QQ2,

     

    ADDRESS from alist_table;

     

    drop table alist_table;

     

    rename alist_table_copy to alist_table

     

     

     

    空值处理

     

    有时要求列值不能为空

     

    create table dept (deptno number(2) not null, dname char(14), loc char(13));

     

    在基表中添加一列

     

    alter table dept

     

    add (headcnt number(3));

     

    改动已有列属性

     

    alter table dept

     

    modify dname char(20);

     

    注:仅仅有当某列全部值都为空时。才干减小其列值宽度。

     

    仅仅有当某列全部值都为空时,才干改变其列值类型。

     

    仅仅有当某列全部值都为不空时,才干定义该列为not null

     

    例:

     

    alter table dept modify (loc char(12));

     

    alter table dept modify loc char(12);

     

    alter table dept modify (dname char(13),loc char(12));

     

    查找未断连接

     

    select process,osuser,username,machine,logon_time ,sql_text

     

    from v$session a,v$sqltext b where a.sql_address=b.address;

     

    -----------------------------------------------------------------

     

    1.USER_開始的数据字典视图包括当前用户所拥有的信息查询当前用户所拥有的表信息:

     

    select * from user_tables;

     

    2.ALL_開始的数据字典视图包括ORACLE用户所拥有的信息,

     

    查询用户拥有或有权訪问的全部表信息:

     

    select * from all_tables;

     

    3.DBA_開始的视图一般仅仅有ORACLE数据库管理员能够訪问:

     

    select * from dba_tables;

     

    4.查询ORACLE用户:

     

    conn sys/change_on_install

     

    select * from dba_users;

     

    conn system/manager;

     

    select * from all_users;

     

    5.创建数据库用户:

     

    CREATE USER user_name IDENTIFIED BY password;

     

    GRANT CONNECT TO user_name;

     

    GRANT RESOURCE TO user_name;

     

    授权的格式: grant (权限) on tablename to username;

     

    删除用户(或表):

     

    drop user(table) username(tablename) (cascade);

     

    6.向建好的用户导入数据表

     

    IMP SYSTEM/MANAGER FROMUSER = FUSER_NAME TOUSER = USER_NAME FILE = C:EXPDAT.DMP COMMIT = Y

     

    7.索引

     

    create index [index_name] on [table_name]( "column_name ")

  • 相关阅读:
    java代码配置sqlserver数据源及连结的demo例子
    mysql配置 是否忽略大小写 lower_case_table_names
    查询30天以内的数据SQL
    nginx
    PCB随笔
    chengxu
    Powershell
    对象模型
    Thinking UML
    排序初级排序
  • 原文地址:https://www.cnblogs.com/blfbuaa/p/7397995.html
Copyright © 2011-2022 走看看