三、Oracle表的管理

  1. Oracle表名和列的命名规则

    必须以字母开头,长度不能超过30字符,不能使用oracle保留字,只能使用字符 A-Z, a-z,0-9,$, # 等。

  2. Oracle支持的数据类型

     字符型:

    1. char : 定长, 最大2000字符;如果不够长度,以空格补全。

      为何固定长度?查询速度极快。比如以身份证为查询条件,最好用char(18)

    2. varchar2(20) : 变长,最大4000字符。 节省空间

    3. clob (character large object) : 字符型大对象,最大4G

     数字型:

        a.  number : 变长, -10的38次方 ~ 10的38次方,可以表示整数,也可以表示小数。

            number(5,2) 表示一个小数有5位有效数,2位小数,范围 -999.99 ~ 999.99

            number(5)  表示一个五位整数, 范围 -99999 ~ 99999

     日期类型:

         a. date : 包含年月日和时分秒, 一般来说足够使用。

         b. timestamp : oracle 9i针对date数据类型的扩展,精度更高,毫秒级。

      图片:

         a. blob : 二进制数据,可以存放图片、声音, 4G。

             一般如果对安全性要求不高,会将图片或声音存放一个文件夹下,将路径存放在数据库。

  3. Oracle 表管理(建表、删表、修改表):

    1. 建表:

      create table student (

      xh number(4),

      xm varchar2(20),

      sex char(2),

      birthday date,

      sal number(7,2)

      )

    2. 删表:drop table student;

    3. 表修改:

      • 修改表名:rename student to stu;

      • 添加字段:SQL> alter table student add (classId number(2));

      • 修改字段长度/类型:SQL> alter table student modify (xm varchar2(30));modify (xm char(30)); 修改字段类型不能有数据。

      • 删除字段:SQL> alter table student drop column sal;

    4. 添加数据:(全部字段)SQL> insert into student values (1, 'xiaoming', 'm', '1991-08-25', '12');  

      (部分字段)SQL> insert into student (xh, xm, birthday) values (1, '小明', '1991-08-25');

      这里有个日期格式的问题,修改oracle的日期格式:

      SQL> alter session set nls_date_format = 'yyyy-mm-dd';

    5. 在建表的同时添加数据:利用查询结果作为新建表的记录

      SQL> create table tableNameA (columnName, columnName, columnName) as select columnName, columnName, columnName from tableNameB;

    6. 修改数据:

      SQL> update student set xh = '11' where name='xiaoming';

      SQL> update student set xh = '11', birthday='1988-01-24' where name='xiaoming';

    7. 删除数据:

      SQL> delete from student;  删除表中所有记录,表结构还在,写日志,可以恢复的,速度慢。

      SQL> drop table student; 删除表的结构和数据,不可恢复。

      SQL> truncate table student; 删除表中所有记录,表结构还在,不写日志,无法找回记录,速度快。

      以一张52W条记录的表为例, 第一条语句执行耗时 6.739 s,第三条语句执行耗时 1.653 s。

    8. oracle 保存点: oracle数据库管理员一般会在工作开始前做一个savepoint aa,如果在工作中有重要数据丢失,可以rollback回保存点,回到初始状态。Oracle支持多个保存点。如果不做处理,保存点只能保存一个,旧的保存点会被覆盖掉。

      SQL> savepoint aa;    

      SQL> rollback to aa;

你可能感兴趣的:(三、Oracle表的管理)