现在的位置: 首页 > 综合 > 正文

Oracle 表管理1

2018年02月06日 ⁄ 综合 ⁄ 共 2223字 ⁄ 字号 评论关闭

1.  表名和列名命名规则

(1). 必须以字母开头;

(2). 长度不能超过 30 个字符;

(3). 不能使用 oracle 保留字;

(4). 只能使用如下字符 A-Z,a-z,0-9,$,# 等。

 

2.  Oracle中的数据类型

(1). 字符类

      char:定长,最大支持 2000 字符,查询速度快(采用完全匹配方式查询)。

      varchar:变长,最大支持 4000 字符,查询速度慢(采用一位一位匹配方式查询)。

      clob:字符型大对象,最大支持 4G。

(2). 数字类

      number:范围由 -10 的 38 次方到 10 的 38 次方。可以表示整数,也可以表示小数。

      例:number(5,2),表示总共有5位有效数字,2 位小数,范围从 -999.99 到 999.99。

            number(5),表示 5 位整数,范围从 -99999 到 99999。

(3). 日期类型

      date:包含年月日和时分秒,oracle 中默认格式是 24-6月-2010。

      timestamp:这是 oracle 对时间类型的扩展,可以精确到毫秒。

(4). 图片

      blob:二进制数据,可以存放图片、声音,最大支持 4G,一般情况下,在真实项目中是不会把图片和声音往数据库里存放,一般存放图片或者声音的路径,如果安全性要求比较高的话,则放入数据库。

 

3.  创建表

     创建表使用 craete table 语句。

     例:create table student (

                 id number(4),

                 name varchar2(30),

                 sex char(2),

                 birthday date,

                 sal number(7,2)

           );

 

4.  修改表

(1). 添加一个字段

      例:alter table student add (classid number(2));

(2). 修改字段的长度

      例:alter table student modify (name varchar2(50));

(3). 修改字段的类型或是名字(不能有数据)

      例:alter table student modify (name char(30));

(4). 删除字段

      例:alter table student drop column sal;

(5). 修改表的名字

      例:rename student to stu;

 

5.  删除表

     删除表使用 drop table 语句。

     例:drop table student;

 

6.  插入数据

(1). 所有字段都插入数据

      例:insert into student values (1001, 'skycloud', '男', '01-6月-88', 2000);

      oracle中默认的日期格式是 'dd-mon-yy'; dd是日子(天),mon是月份,yy是2位的年份。

      修改日期的默认格式(临时修改,数据库重启后仍为默认,如要修改需要修改注册表)

      例:alter session set NLS_DATE_FORMAT = 'yyyy-mm-dd';

      修改后,可以使用熟悉的日期格式插入日期数据

      例:insert into student values (1002, 'skycloud1', '男', '1987-07-01', 1500);

(2). 插入部分数据

      例:insert into student (id, name, sex, birthday) values (1003, 'skycloud2', '女', '20-12-88', null);

      如要要查询 student 表中生日为 null 的记录,该怎么查询?

      错误案例:select * from student where birthday = null;

      正确案例:select * from student where birthday is null;

      如果要查询 student 表中生日不为 null 的记录,该怎么查询?

      select * from student where birthday is not null;

 

7.  修改数据

(1). 修改一个字段

      例:update student set sex = '女' where id = 1002;

(2). 修改多个字段

      例:update student set name='skycloud3', sex='女', birthday='01-07-1987' where id=1002;

 

8.  删除数据

(1). delete from student; -- 删除所有记录,表结构还在,写日志,可以恢复的,速度慢。

(2). delete from student where id=1003; -- 删除一条记录。

(3). drop table student; -- 删除表结构和表数据。

(4). truncate table student; -- 删除表中所有记录,表结构还在,不写日志,无法找回删除的记录,速度快。

(5). savepoint a; -- 创建保存点。

(6). rollback to a; -- 恢复到保存点a。

      一个有经验的 dba,在确保无误的情况下,要经常创建保存点。 

抱歉!评论已关闭.