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. 根据需要,重新创建触发器、存储过程、索引和外键。

     

     

  • 相关阅读:
    双11专刊|云原生数据仓库AnalyticDB支撑双11,大幅提升分析实时性和用户体验
    LeetCode_Binary Tree Inorder Traversal
    LeetCode_4Sum
    LeetCode_Add Binary
    LeetCode_Add Two Numbers
    LeetCode_3Sum Closest
    Building CEGUI with Ogre 1.8.1
    LeetCode_3Sum
    LeetCode_Climbing Stairs
    LeetCode_Binary Tree Level Order Traversal
  • 原文地址:https://www.cnblogs.com/qook/p/4899999.html
Copyright © 2011-2022 走看看