zoukankan      html  css  js  c++  java
  • MySQL笔记-第21章 创建和操纵表

    第21章 创建和操纵表

    一、创建表

    1. 表创建语法:

    create table 表名(列名 类型(长度) 约束,...);
    

    ​ 例如:

    create table customers
    {
    	cust_id int NOT NULL AUTO_INCREMENT,
    	cust_name char(50) NOT NULL,
    	cust_address char(50) NULL,
    	PRIMARY KEY(cust_id)
    }ENGINE=InnoDB;
    

    注意:在创建新表时,指定的表名必须不存在,否则将出错,使用IF NOT EXISTS以达到在一个表不存在时才创建它目的。

    2. 使用NULL值:

    每个列要么是NULL列,要么是NOT NULL列,需要在创建表时指出。需要注意的是:不能将NULL值和空串相混淆。NULL值是没有值,不是空串。而空串是一个有效值,并不是空值。

    3. 主键:

    主键值可以是单个列,也可以是多个列的组合,但都要主键值必须唯一。如果主键是多个列组合,可以使用类似以下语句来定义:

    PRIMARY KEY(cust_id, cust_name)
    

    注意:主键的值只能为NOT NULL,而允许NULL值的列是不能作为主键的。

    4. 使用AUTO_INCREMENT:

    AUTO_INCREMENT能够使得本列没增加一行时,自动增量。

    可以使用select last_insert_id()来获取AUTO_INCREMENT列的值

    注意:每一张表只允许一个AUTO_INCREMENT列,而且它必须被索引(如,通过使它成为主键)。

    5. 指定默认值:

    在创建表语句中使用DEFAULT关键字来指定默认值,如:

    create table customers
    {
       cust_id int NOT NULL AUTO_INCREMENT,
       cust_name char(50) NOT NULL,
       cust_address char(50) NULL,
       cust_total int NOT NULL DEFAULT 0,
       PRIMARY KEY(cust_id)
    }ENGINE=InnoDB;
    

    6. 搜索引擎类型:

    不同的引擎拥有各自不同的功能和特性,任务需求不同时应该灵活选择引擎,以下是几种常见的引擎:

    • InnoDB是一个可靠的事务处理引擎,但是不支持全文本搜索;

    • MyISAM是一个性能极高的引擎,它支持全文本搜索,但是不支持事务处理;

    • MEMORY在功能上等同于MyISAM,但是由于它的数据存储在内存中,因此它的速度很快。

      注意:引擎类型可以混用,但是外键不能跨引擎。

    二、更新表

    表的更新可以使用ALTER TABLE语句来实现,但是一般情况下,当表中存储了数据后,该表就不应该再被更新。在进行改动前,应该做一个完整的备份(模式和数据)。表的更改不能被撤销,为了增加不需要的列,可能不能删除他它们。类似地,如果删除了不应该删除的列,可能会丢失该列中的所有数据。

    1. 添加一个列:

    ALTER TABLE customers
    ADD cust_phone CHAR(20);
    

    2. 删除一个列:

    ALTER TABLE customers
    DROP COLUMN cust_phone;
    
    三、删除表与重命名表

    使用DROP TABLE来删除表:

    DROP TABLE customers;
    

    使用RENAME TABLE来删除表:

    RENAME TABLE customers TO customer;
    
  • 相关阅读:
    《图解HTTP》确认访问用户身份的认证
    《图解HTTP》确保web安全的https
    《图解HTTP》HTTP首部(2)
    《图解HTTP》HTTP首部(1)
    App测试要点
    APP测试基本流程
    《图解HTTP》与HTTP协作的Web服务器
    《图解HTTP》返回结果的HTTP状态码
    centos7虚拟内存设置
    修改Centos SSH服务端口
  • 原文地址:https://www.cnblogs.com/dailymatters/p/12515733.html
Copyright © 2011-2022 走看看