Oracle学习笔记 _03_表的基本操作

 

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等价

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       升序    低-->高  (默认)

 

 

 

 

 

 

 

阅读更多
个人分类: Oracle
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭