当前位置:数据库 > Oracle >>

Oracle表管理1

Oracle表管理1
 
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),
 
                 易做图 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, 易做图, 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 易做图 = '女' where id = 1002;
 
(2). 修改多个字段
 
      例:update student set name='skycloud3', 易做图='女', 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,在确保无误的情况下,要经常创建保存点。 
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,