开发笔记_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       升序    低-->高  (默认)


猜你喜欢

转载自blog.csdn.net/shaotaiban1097/article/details/80316002
今日推荐