zoukankan      html  css  js  c++  java
  • SQL必知必会——创建和操纵表(十七)

    1、创建表

    一般有两种创建表的方法:

    多数DBMS都具有交互式创建和管理数据库表的工具
    表也可以直接用SQL语句操纵
    1.1、表创建基础

    CREATE TABLE products
    (
    prod_id,CHAR(10),NOT NULL,
    vend_id,CHAR(10),NOT NULL,
    prod_name,CHAR(10),NOT NULL,
    prod_price,DECIMAL(8,2),NOT NULL,
    prod_desc,VARCHAR(1000),NULL
    );
    1
    2
    3
    4
    5
    6
    7
    8
    1.2、使用NULL值

    允许NULL值的列也允许在插入行时不给出该列的值。不允许NULL值的列不接受没有列值的行,换句话说,在插入或更新行时,该列必须有值。
    每个表列要么是NULL列,要么是NOT NULL列,这种状态在创建表由表的定义规定。

    1.3、指定默认值

    SQL允许指定默认值,在插入行时如果不给出值,DBMS将自动采用默认值。

    CREATE TABLE products
    (
    prod_id,CHAR(10),NOT NULL,
    vend_id,CHAR(10),NOT NULL,
    prod_name,CHAR(10),NOT NULL,
    prod_price,DECIMAL(8,2),NOT NULL DEFAULT 1,
    prod_desc,VARCHAR(1000),NULL
    );
    #在这个例子中,这一列的描述增加了DEFAULT 1,指示DBMS,如果不给出数量则使用数量1
    1
    2
    3
    4
    5
    6
    7
    8
    9
    2、更新表

    更新表定义,可以使用ALTER TABLE语句。虽然所有的 DBMS都支持ALTER TABLE,但他们所允许更新的内容差别很大。一下时使用ALTER TABLE时需要考虑的事情:

    理想情况下,不要再表中包含数据时对其进行更新。应该再表的设计过程中充分考虑未来可能的需求,避免今后对表的结构做大改动、
    所有的DBMS都允许给现有的表增加列,不过对所增加的数据类型有所限制
    许多DBMS不允许删除或更改表中的列
    多数DBMS允许重新命名表中的列
    许多DBMS限制对已经填有数据的列进行更改,对未填有数据的列几乎没有限制
    ALTER TABLE Vendors
    ADD vend_phone CHAR(20);
    #给Vendors表增加一个名为vend_name的列,其数据类型未CHAR
    1
    2
    3
    3、删除表

    DROP TABLE CustCopy;
    #删除整个表而不是内容
    1
    2
    4、重命名表

    每个DBMS对表重命名的支持有所不同。对应这个操作,不存在严格的标准。DB2,MariaDB,MySQL,Oracle和PostgreSQL用户使用RENAME语句,SQL Server用户使用sp_rename存储过程,SQLite用户使用ALTER TABLE语句。
    ---------------------

  • 相关阅读:
    Mysql初探:内存数据刷盘机制
    数据管理流程,基础入门简介
    数据分析:复杂业务场景下,量化评估流程
    架构设计:服务自动化部署和管理流程
    Hadoop框架:MapReduce基本原理和入门案例
    架构设计:微服务模式下,实现灰度发布模式
    架构设计:分布式结构下,服务部署发布
    编码风格:Mvc模式下SSM环境,代码分层管理
    开发工具:Mybatis.Plus.插件三种方式的逆向工程
    Hadoop框架:HDFS高可用环境配置
  • 原文地址:https://www.cnblogs.com/ly570/p/11173779.html
Copyright © 2011-2022 走看看