orcal数据库基本操作(一)

2015-07-24 08:07:02 · 作者: · 浏览: 4

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 ";?

用户密码设定:

ALTER USER "CMSDB " IDENTIFIED BY "pass_word "?

表空间创建:

CREATE TABLESPACE "table_space " LOGGING DATAFILE 'C:\ORACLE\ORADATA\dbs\table_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,user