Oracle学习(九)----表的增删改查,回收站

1 创建表
  1.1 命名规则:

	必须以字母开头
	必须在 1–30 个字符之间
	必须只能包含 A–Z, a–z, 0–9, _, $, 和 #
	必须不能和用户定义的其他对象重名
	必须不能是Oracle 的保留字
	Oracle默认存储是都存为大写
	数据库名只能是1-8位,datalink可以是128位,和其他一些特殊字符

  1.2 条件:

	1)必须要有权限
	2)要有表空间,oracle提供了默认的resource

  1.3 语法结构:

	CREATE TABLE [schema.]table
	    (column datatype [DEFAULT expr][, ...]);

  1.4 数据类型:

	oracle的数据类型支持可见字符存储和不可见字符的存储

	VARCHAR2(size)		可变长字符数据,可以输入小于等于size个字符,输入几位数就是几位数,超出长度报错,最大size为4096
	CHAR(size)  		定长字符数据,可以输入小于等于size个字符,其余空间补空格
	NUMBER(p,s)  		可变长数值数据
	DATE			日期型数据 
	LONG			可变长字符数据,最大可达到2G
	CLOB			字符数据,最大可达到4G
	RAW and LONG RAW 	原始的二进制数据
	BLOB			二进制数据,最大可达到4G
	BFILE			存储外部文件的二进制数据,最大可达到4G
	ROWID			行地址

  例:创建一个表
  
	SQL> create table T(ID number, NAME varchar2(20));

	表已创建。

  1.5 创建表且copy表,	

    例:创建一个和emp一模一样的表
	
	SQL> create table t2
  	2  as
  	3  select * from emp;

	表已创建。

  1.6 超级用户看别的用户的表,只需在表名之前增加用户名即可
 
	select * from scott.emp;
		
  1.7 行地址,索引的时候需要用到

	SQL> select rowid, ename, job, sal from emp;

	ROWID              ENAME      JOB              SAL
	------------------ ---------- --------- ----------
	AAAR3sAAEAAAACXAAA SMITH      CLERK            800
	AAAR3sAAEAAAACXAAB ALLEN      SALESMAN        1600
	AAAR3sAAEAAAACXAAC WARD       SALESMAN        1250
	AAAR3sAAEAAAACXAAD JONES      MANAGER         2975
	AAAR3sAAEAAAACXAAE MARTIN     SALESMAN        1250
	AAAR3sAAEAAAACXAAF BLAKE      MANAGER         2850
	AAAR3sAAEAAAACXAAG CLARK      MANAGER         2450
	AAAR3sAAEAAAACXAAH SCOTT      ANALYST         3000
	AAAR3sAAEAAAACXAAI KING       PRESIDENT       5000
	AAAR3sAAEAAAACXAAJ TURNER     SALESMAN        1500
	AAAR3sAAEAAAACXAAK ADAMS      CLERK           1100
	AAAR3sAAEAAAACXAAL JAMES      CLERK            950
	AAAR3sAAEAAAACXAAM FORD       ANALYST         3000
	AAAR3sAAEAAAACXAAN MILLER     CLERK           1300

2 表的增删改查

	使用 ALTER TABLE 语句追加, 修改, 或删除列的语法.

  1)首先创建一个表:

	SQL> create table t(ID number, NAME varchar2(20));

	表已创建。

  2)然后向表中增加内容:

	SQL> insert into t values(123, 'Apple');

	已创建 1 行。

	SQL> insert into t values (456, 'Lin');

	已创建 1 行。

	SQL> savepoint a;

	保存点已创建。


  2.1,增加列

	ALTER TABLE table
	ADD	   (column datatype [DEFAULT expr]
		   [, column datatype]...);

	例:

	SQL> alter table t add male varchar2(10);

	表已更改。

	SQL> select * from t;

        	ID NAME                 MALE
	---------- -------------------- ----------
       		123 Apple
       		456 Lin


  2.2 修改列

	ALTER TABLE table
	MODIFY	   (column datatype [DEFAULT expr]
		   [, column datatype]...);
	
	将原来male字符宽度由20改到40:

	SQL> alter table t modify male varchar(40);

	表已更改。


  2.3

	ALTER TABLE table
	DROP	 column     (column);

      删除刚刚增加的那一列:

	SQL> alter table t drop column male;

	表已更改。
      
      表更改之后的内容:

	SQL> select * from t;

        	ID NAME
	---------- --------------------
       		123 Apple
       		456 Lin


  2.4

	ALTER TABLE table_name rename column old_column_name 
	to new_column_name

	

--删除表
drop table test1;
--oracle的回收站
	-- 查看回收站	show recyclebin
	-- 清空回收站	purge recyclebin;
	-- 彻底删除一张表
		drop table test1 purge; --直接删除一张表,不通过回收站
	-- 还原表(从回收站中返复原表)
		闪回的内容 
	--关于回收站注意问题
	--并不是所有的人都有回收站 管理员没有回收站	

	SQL> show recyclebin;
	ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME
	---------------- ------------------------------ ------------ -------------------
	EMP20            BIN$yB56S7m9QCacFW9wbkk4Ig==$0 TABLE        2014-08-10:22:48:43
	SQL> select * from emp20;  不可以访问表	
	SQL> select * from BIN$yB56S7m9QCacFW9wbkk4Ig==$0   	不可以访问表
	SQL> select * from "BIN$yB56S7m9QCacFW9wbkk4Ig==$0";	可以访问表
	结论:通过回收站的名字,查看原来表的内容,需要双引号


  1)表:

	SQL> select * from tab;

	TNAME                          TABTYPE  CLUSTERID
	------------------------------ ------- ----------
	BIN$Axt13GI5TvmKn5GIJRTGrg==$0 TABLE			==========>回收站中的表
	BONUS                          TABLE
	DEPT                           TABLE
	EMP                            TABLE
	SALGRADE                       TABLE
	T                              TABLE

	已选择6行。

  2)查看回收站:

	SQL> show recyclebin
	ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME
	---------------- ------------------------------ ------------ -------------------
	T                BIN$Axt13GI5TvmKn5GIJRTGrg==$0 TABLE        2016-03-30:17:27:12

  3)查看回收站中表的信息:

	SQL> select * from "BIN$Axt13GI5TvmKn5GIJRTGrg==$0";   ========>必须用双引号

        	ID NAME
	---------- --------------------
       		123 Apple Lin

你可能感兴趣的:(oracle)