温故而知新·Oracle《五》

DDL语句:数据定义语言,专门用来创建数据结构
    描述主要的数据库对象:数据库对象就是存储数据的单元
    创建表
    描述各种数据类型
    修改表的定义
    删除,重命名和清空表


    常见的数据库对象:
        表:基本的数据存储集合,由行和列组成。
视图:从表中抽出的逻辑上相关的数据集合。
序列:提供有规律的数值。
索引:提高查询的效率。
同义词:给对象起别名。


    Oracle数据库中的表:
        用户定义的表:用户自己创建维护的一组表;包含了用户所需的信息。
      SELECT * FROM user_tables;查看用户创建的表
数据字典:由Oracle Server自动创建的一组表;包含数据库信息。
    查询数据字典:
        查看用户定义的各种数据库对象:SELECT DISINCT object_type FROM user_objects;
查看用户定义的表,视图,同义词和序列:SLECT * FROM user_catalog;




        CREATE TABLE 语句
必须具备:CREATE TABLE 权限 存储空间
          CREATE TABLE [schema.]table {column datatype [DEFAULT exor]};
        必须指定:表名 列名,数据类型,尺寸
    CREATE TABLE 表名(
        列名 数据类型(长度),
列名 数据类型(长度)
    );
        DDL语句是自动提交的,ROLLBACK是无效操作。


数据类型:
    VARCHAR2(size) 可变长度字符数据
    CHAR(size)     定长字符数据
    NUMBER(p,s)    可变长数值数据
    DATE           日期型数据
    LONG           可变长字符数据,最大可达2G
    CLOB           字符数据,最大可达4G
    RAM(LONG RAM)  原始的二进制数据
    BLOB           二进制数据。最大可达4G
    BFILE          存储外部文件的二进制数据。最大可达4G
    ROWID          行地址
 
    使用子查询创建表
        使用 AS subquery 选项,将创建表和插入数据结合起来
CREATE TABLE table [{column, column}] AS subquery;
指定的列和子查询中的列要一一对应
通过列名和默认值定义列
1.CREATE TABLE 表 as 子查询;SELECT * FROM 表,结构和数据全部复制过去
    CREATE TABLE dept1 AS SELECT * FROM dept;
2.只包含某一个表的某些字段,将* 改成指定的字段即可
    CREATE TABLE dept2 AS SELECT dname,loc FROM dept;
3.通过子查询创建表的时候,新建表的字段名称指定,可以通过别名。
    CREATE TABLE dept3 AS SELECT dname 名字, loc 地址 FROM dept;
4.创建一张表,和另外一张某些列对应,但是只需要数据表结构,不需要数据
    CREATE TABLE dept4 AS SELECT dname,loc FROM dept WHERE 1=2;


   ALTER TABLE 语句
       作用:追加新的列
             修改现有的列
     为新追加的列定义默认值
     删除一个列
     重命名表的一个列名
       DML:INSERT UPDATE DELETE:数据的
       DDL语句的修改:表结构
       1.增加表的列
           ALTER TABLE 表名 ADD (列名 类型(长度),...)
   ALTER TABLE emp ADD (tel varchar2(12), sex varchar2(2));
       2.修改表的名字
           ALTER TABLE 原始表名 RENAME TO 新的表名;
       3.修改列的名字
           ALTER TABLE 表名 RENAME column 原始列名 TO 新的列名;
       4.修改列的类型及尺寸,默认值
           ALTER TABLE 表名 MODIFY(列名 类型(长度) DEFAULT 默认值,...)
       5.删除某一个列
           ALTER TABLE 表名 DROP column 列名;
            
   删除表
      数据和结构都被删除
      所有正在运行的相关事务被提交
      所有相关索引被删除了
      DROP TABLE 语句不能回滚
      DROP TABLE 表名;
   
   清空表:数据
      DELECT FROM 表名;/*表可以回滚*/
      TRUNCATE TABLE 表名;/*不可以回滚*/
阅读更多
想对作者说点什么?

博主推荐

换一批

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