zoukankan      html  css  js  c++  java
  • 创建和操作表

    17.1.3  指定默认值SQL允许指定默认值,在插入行时如果不给出值,DBMS将自动采用默认值。默认值在CREATE TABLE语句的列定义中用关键字DEFAULT指定。

    请看下面的例子:

    输入▼

    CREATE TABLE OrderItems
    (
        order_num      INTEGER          NOT NULL,
        order_item     INTEGER          NOT NULL,
        prod_id        CHAR(10)         NOT NULL,
        quantity       INTEGER          NOT NULL      DEFAULT 1,
        item_price     DECIMAL(8,2)     NOT NULL
    );

    分析▼
    这条语句创建OrderItems表,包含构成订单的各项(订单本身存储在Orders表中)。quantity列为订单中每个物品的数量。在这个例子中,这一列的描述增加了DEFAULT 1,指示DBMS,如果不给出数量则使用数量1

    默认值经常用于日期或时间戳列。例如,通过指定引用系统日期的函数或变量,将系统日期用作默认日期。MySQL用户指定DEFAULT CURRENT_DATE(),Oracle用户指定DEFAULT SYSDATE,而SQL Server用户指定DEFAULT GETDATE()。遗憾的是,这条获得系统日期的命令在不同的DBMS中几乎都是不同的。表17-1列出了这条命令在某些DBMS中的语法。这里若未列出某个DBMS,请参阅相应的文档。

    表17-1 获得系统日期

    DBMS函数/变量
    Access NOW()
    DB2 CURRENT_DATE
    MySQL CURRENT_DATE()
    Oracle SYSDATE
    PostgreSQL CURRENT_DATE
    SQL Server GETDATE()
    SQLite date('now')

    提示:使用DEFAULT而不是NULL

     

     

    复杂的表结构更改一般需要手动删除过程,它涉及以下步骤:

     

    1. 用新的列布局创建一个新表;
    2. 使用INSERT SELECT语句(关于这条语句的详细介绍,请参阅第15课)从旧表复制数据到新表。有必要的话,可以使用转换函数和计算字段;
    3. 检验包含所需数据的新表;
    4. 重命名旧表(如果确定,可以删除它);
    5. 用旧表原来的名字重命名新表;
    6. 根据需要,重新创建触发器、存储过程、索引和外键。

     

     

  • 相关阅读:
    20165205 2017-2018-2 《Java程序设计》实验三 敏捷开发与XP实践
    20165205 2017-2018-2 《Java程序设计》第八周学习总结
    20165205 2017-2018-2《Java程序设计》结对编程一 第二周总结
    20165104 第一周学习心得
    Linux安装及命令入门
    做中学learning by doing个人感想
    我所期望的师生关系
    2018-2019 20165235《信息安全系统设计基础》第三周学习总结
    20165235 缓冲区溢出漏洞实验
    2018-2019-20165235 《信息安全系统设计基础》第二周学习总结
  • 原文地址:https://www.cnblogs.com/qook/p/4899999.html
Copyright © 2011-2022 走看看