Oracle基本操作

基本操作一: 创建表空间和新用户,并完成授权
        1.背景知识:
            数据库实例,用户,表空间,数据文件之间的关系?

            数据库实例:用户1、用户2、用户3……

                       表空间1、表空间2、表空间3……
         
            表空间:    数据文件1、数据文件2、数据文件3……   

         注:表空间和用户之间没有隶属关系。一个用户可使用多个表空间,一个表空间也可供多个用户

             使用。
  
        2.基本操作
           A.创建表空间
              a)创建一个临时表空间
1 create temporary tablespace EdisonTableSpc_Temp
2 tempfile 'F:\oracle\product\10.1.0\oradata\orcl\EdisonTableSpc_Temp.dbf'
3 size 200m
4 autoextend on next 20m
5 maxsize 2048m;

              b)创建第一个数据表空间
1 create tablespace EdisonTableSpc_Data_A
2 datafile 'F:\oracle\product\10.1.0\oradata\orcl\EdisonTableSpc_Data_A.dbf'
3 size 200m
4 autoextend on next 20m
5 maxsize 2048m;
  
              c)创建第二个数据表空间
1 create tablespace EdisonTableSpc_Data_B
2 datafile 'F:\oracle\product\10.1.0\oradata\orcl\EdisonTableSpc_Data_B.dbf'
3 size 200m
4 autoextend on next 20m
5 maxsize 2048m;

          
            注: Oracle临时表空间主要用来做查询和存放一些缓冲区数据。临时表空间消耗的主要原因是需

             要对查询的中间结果进行排序。重启数据库可以释放临时表空间,如果不能重启实例,而一直 

           保持问题sql语句的执行,temp表空间会一直增长.

          B.创建新用户并授权
             a)创建用户并指定默认表空间
1 create user edison
2 identified by edison
3 default tablespace EdisonTableSpc_Data_A
4 temporary tablespace EdisonTableSpc_Temp;

         
             b)对新创建的用户进行授权
                1)方式一:角色授权
1 grant connect,resource to edison;

                 注:此时Edison将拥有connect,resource这两个角色的权限                   
 
                2)方式二:直接授权
1 GRANT SELECT,INSERT,UPDATE,DELETE,ON USERS TO Edison;

             注:可以通过role_sys_privs表查询角色权限,例如,查询connect角色的权限,如下:
1 select * from role_sys_privs where role='CONNECT';

    附:完整对创建,修改,删除表空间和用户的说明:
                   http://wenku.baidu.com/view/cf219708581b6bd97f19eac8.html
  
基本操作二: 创建新表并向其总添加数据
          1.背景知识:
               每个用户都有自己默认的表空间,创建新表时,用户如果不指定存到哪个表空间时,系统      

           将会把表存到该用户默认的表空间中.

          2.基本操作
             A.创建新表
              a)存入默认的表空间
1 Create Table TestTable
2 (
3 StaffId varchar(20) not null,
4 StaffName varchar(20) default '',
5 primary key(StaffId)
6 )

              b)存入指定的表空间
                 xxxxxxxx

             B.向表中添加数据
              a)添加单条数据
1 insert into TestTable( staffID,staffName)
2 values
3 ('0001','TonyPark')

              b)添加多条数据
                1)从其他表中导入
1 insert into TestTable(staffID,staffName)
2 select staffID,staffName
3 from TestTable_2
4 where ...(条件.)

                2)新数据录入
                  在Excel中写好,第一列要为空,然后直接复制粘贴到PLSQL中。
                粘贴之后,先F8再F10
                  注:Excel中可设置列数据的类型    


基本概念:
     1.DDL、DML是什么?
       DDL:数据定义语言,具体为:数据库创建,数据库删除,表创建,表删除等
       DML:数据操纵语言,具体为:insert、delete、update、select

     2.命令窗口和SQL窗口的区别?
       命令窗口:类似于sqlplus,基本上命令都可以执行
       SQL窗口:执行命令有很大限制,仅可执行DDL、DML等

     3.查看表空间和物理数据文件之间的关系
       select   *   from   sys.dba_data_files;

常见问题:
           a)用EXP导出某个用户时,会将所有数据都导出吗?
             会。

           b)如何将表移到另一个表空间?-----待定
             alter table b move tablespace tsb;
          
           c)如何查看一个表属于哪个表空间?

           d)如何查看一个用户拥有哪些表空间?
              SELECT FROM DBA_SEGMENTS WHERE TABLESPACE_NAME=xxx

           e)如何查看一个表空间属于哪些用户?
              SELECT FROM DBA_SEGMENTS WHERE TABLESPACE_NAME=xxx

           f)如何更改用户默认的表空间?

           g)Oracle中OracleDBConsoleORCL无法启动的解决办法?
               E:\WINDOWS\system32\drivers\etc下的host文件中,添加IP地址和计算机名对应关系:
                   127.0.0.1       localhost
                   192.168.1.58  fuyoo-399c533f7
               注:1)由于以上对应关系,故经常改IP会导致OracleDBConsoleORCL无法启动
                   2)OracleDBConsoleorcl服务是采用浏览器访问oracle的企业管理器,可以以网页形式进行DB管理
原文地址:https://www.cnblogs.com/edisonfeng/p/2003794.html