Oracle开发学习之Oracle 表的管理

oracle 表的管理

    常用数据类型:
           文本、二进制类型:
                char(size)                                        定长    最大2000字符    
                                  建议数据长度固定时使用,因为固定长度比较,存取速度比varchar快
                varchar2(size)                               变长    最大4000字符
                                  建议数据长度不固定时使用,因为长度不固定,变长比varchar定长更节约内存空间
                nchar(size)                                     unicode编码类型  定长    最大2000字符
                nvarchar2(size)                            unicode编码类型  变长    最大4000字符
                                  unicode编码类型,一个汉字占用一个字符空间;而char类型占两个字符空间
                ctob(character large object)           字符型大对象  最大8tb
                blob(binary large object)                二进制数据  可以存放图片/音频  最大8tb
                                  一般除非是对文件的安全性要求特别高。否则是不会直接将文件存放到数据库中,一般存放文件对应链接

           数值类型:
                number(p, s)                                    p    整数位(1~38);    s    小数位(-84~127)
                                                                           数据范围:-1.0e-130 ~ 1.0e+126

           日期类型:
                date                                                  默认格式:dd-mon_yyyy
                timestamp(n)                                   n表示指定秒的小数位。(0~9)。取0时与date等价

timestamp(n) n表示指定秒的小数位。(0~9)。取0时与date等价

1、创建表

基本语法:

create table table_name(
    列1  数据类型1,
    列2  数据类型2,
    列3  数据类型3
);

2、修改表

基本语法:

-- 增加字段
    alter table table_nameadd (column_name datatype);
-- 修改字段    alter table table_namemodify (column_name datatype);
-- 删除字段    alter table table_namedrop column (column);
-- 修改表名
    rename table_name to newt_able_name;
-- 删除表
    drop table table_name;

3、表数据的操作

1. 增加
insert into table [(column [,column…])]
values (value [,value…]);

数据类型相同;数据大小在范围内;values中的数据位置与列的位置对应;空值不指定或用null;字符、日期在单引号内

2. 删除
delete from table [where definition]
truncate table table [where definition]

如果没有where条件,则会删除表中所有数据

删除操作针对数据行,如果想删除指定行的某一列。可以使用update语句选择行的将该字段置空删除操作只针对表中数据,不删除表本身。如果需要删除表,则使用drop table语句。

几种删除的特点:

delete:删除表中数据;不破坏表结构;保存删除记录;删除后可以回滚;执行速度较慢

truncate:删除表中数据;不破坏表结构;不保存删除记录;删除后无法恢复;执行速度较快

drop:删除表中数据;删除表结构

delete语句的回滚:

delete 语句在删除记录操作后可以使用 rollback 关键字进行回滚,即数据恢复。

但是,前提是需要使用 savepoint 关键字设置保存点。

sql> select * from students;

    id          name          age
------------------------------------
    01          zhangsan       10

sql> savepoint point01;

savepoint created

sql> delete from students where name='zhangsan';

1 rows deleted

sql> select * from students;

    id          name          age
------------------------------------

sql> rollback to point01;

rollback complete

sql> select * from students;

    id          name          age
------------------------------------
    01          zhangsan       10

3. 修改

update table
       set column_name1=expr1[, column_name expr2…]
       [where definition];

set 语句指定需要更新的列名和要更新的值(可以使用表达式,即数学函数等)

如果没有where条件,则会更新整个表

4. 查询
select [distinct] * | {column1, column2...}
       from table;

distinct:去除重复数据; *:

    *:查询所有列

   以上操作时经常用到的几点:
               1. 设置列的别名时。可以直接在列名后跟别名,也可以使用列名 as 别名。别名可以不带引号,也可以带双引号,但较新版本的oracle中不允许带单引号。
               2. 巧用 nvl 函数处理 null 值问题。基本用法:   nvl(column, default)。意为:当column为null时,返回default,否则返回column本身。
               3. 常用 || 拼接字符串。
               4. to_char(data, format)。日期的格式转换。
                        以:5-may-2018为例。
                                    to_char(data, 'yyyy-mm-dd')   -->  2018-05-01
                                    to_char(data, 'yyyy')                -->   2018
                                    to_char(data, 'yyyy-mm')        -->   2018-05
              5. like 模糊查询。
                        % 表示任意个字符
                        _   表示一个字符
              6. in(value1, value2, value3,...)
                        条件满足其中任意一种
              7. is null   是否为空。
              8. order by          对结果进行排序
                        desc     降序    高-->低
                        asc       升序    低-->高  (默认)
(0)
上一篇 2022年3月22日
下一篇 2022年3月22日

相关推荐