zoukankan      html  css  js  c++  java
  • ORACLE DDL语句

    数据定义(DDL Data Definition Language):用于创建、删除和管理数据库、数据表及视图与索引。DDL语句通常包括对象的创建(CREATE)、修改(ALTER)以及删除(DROP)等命令。

    一、oracle字段类型

    1、字符数据类型
    CHAR类型:用户存放字符串数据,定义形式为CHAR[(n)],以CHAR类型存放的字符串中的每个字符和符号占用一个字节的存储空间。n表示字符所占的存储空间,n的值范围为1~2000,即最多可容纳2000个字符。若不指定n值,则系统默认值为1。如果输入的字符串的个数小于n,则系统会以后空格自动补齐n个字符,但在取出时会自动去除末尾的空格。若输入的数据超过n个字符则会截掉超出部分。

    VARCHAR2类型:用户存放可变长的字符串,具体定义时指明最大长度n。

    LONG类型:用来存放可变长度的字符串数据,最多能存储占用2GB空间大小的文本数据。
    注:在一个表中只能有一个LONG类型字段,并且LONG类型字段不能被定义为主键或唯一约束;不能建立索引;不能用作存储过程的参数

    2、数字数据类型
    NUMBER类型:用于存放可变长度的数值,允许正负值、0,格式为NUMBER(P,S),其中P表示数据总长度,取值范围为1~38,;S表示小数位数,取值范围为-84~127之间的数字。如果输入超过设置的值则会被截取,如NUMBER(6,3)输入15.23181,字段实际保存的值为15.232(四舍五入)

    3、日期时间类型
    DATE类型:用于存放日期和时间数据

    TIMESTAMP类型:与DATE基本相同,但不同的是TIMESTAMP会包含小数秒

    4、RAW数据类型
    RAW类型:用于存放结余字节的二进制数据,最对能存放2000个字节,没有默认大小,所以在使用时要指定大小,可以建立索引

    LONG RAW类型:用于存放可变长度的二进制数据,最多能存放2GB,受限跟LONG一样。

    5、LOB数据类型
    CLOB类型(CHARACTER LOB):用于存放大量字符数据,可以存放非结构化的xml文档。

    BLOB类型(BINARY LOB):可以存放较大的二进制对象,如图形、音视频等数据。

    二、建表语句
    CREATE TABLE <TABLENAME>
    (
    <COLUMN1> <DATATYPE> [NOT NULL] [DEFAULT <默认值>],
    <COLUMN2> <DATATYPE> [NOT NULL] [DEFAULT <默认值>],
    ...
    <COLUMN3> <DATATYPE>
    );

    注:<>符号表示必填,[]符号表示可选,其他为sql语法关键字:CREATE TABLE。需要注意标点符号

    1、带主键的创建方式

    eg1:联合主键pk_t_user

    begin
    execute immediate 'drop table t_user cascade constraints';
    commit;
    exception when others then commit;
    end;
    /
    create table t_user  (
       id NUMBER(10) not null,
       name varCHAR2(200) not null,
       age NUMBER(2) not null,
       status NUMBER(1) not null,
       craetetime date default sysdate,
       constraint pk_t_user primary key (id,name)
    );

    eg2:单列主键,主键名由系统给定

    begin
    execute immediate 'drop table t_user cascade constraints';
    commit;
    exception when others then commit;
    end
    /
    create table t_user  (
       id NUMBER(10) not null primary key,
       name varCHAR2(200) not null,
       age NUMBER(2) not null,
       status NUMBER(1) not null
    );

    eg3:新增主键

    alter table t_user add constraint pk_t_user primary key(id,name);

    以上为新增主键的三种方式。

    三、修改字段

    修改字段类型

    语法:ALTER TABLE 表名 MODIFY 字段名 DATETYPE[<长度>];

    alter table t_user modify status integer;

    修改字段名称

    语法:ALTER TABLE 表名 RENAME OLDCOLUMN TO NEWCOLUMN;

    alter table t_user rename column status to state;

    注:修改字段类型时,当前字段的数据类型与要转换成的数据类型需相互兼容。
    且以下字段类型不可修改:
    a、数据类型为test、image、ntext、timestamp
    b、有unique约束的字段
    c、设有默认值的字段
    d、重复的字段
    e、计算的或用在计算的字段中
    f、用于check约束的字段

    四、添加字段
    语法一:alter table 表名 add 字段名 数据类型;

    alter table t_user add city varchar2(100);--无默认值

    语法二:alter table 表名 add 字段名 数据类型 default<默认值> ;

    alter table t_user add city varchar2(100) default '北京';--有默认值

    五、删除字段
    语法:alter table 表名 drop column 字段名;

    alter table t_user drop column city;

    如果字段有约束条件,则需要先删除约束:alter table tablename drop constraint 约束名|默认值。

    —转载请注明出处
  • 相关阅读:
    自由工作者,从今天开始
    C#中MessageBox用法大全
    目前国内常见医用显示器品牌
    C#中可直接调用WIN32的API函数--USER32.DLL
    马年新年祝福
    PID算法学习记录
    Qt网络编程之使用cookie
    Qt使用HTTPS协议访问网站
    使用Qt访问网站的基本例子
    Qt TLS初始化失败解决办法
  • 原文地址:https://www.cnblogs.com/landiss/p/13858235.html
Copyright © 2011-2022 走看看