zoukankan      html  css  js  c++  java
  • 《MySQL必知必会》第二十一章:创建和操纵表

    @author: Tobin
    @date: 2019/11/6 18:25:04

    创建表

    CREATE TABLE IF NOT EXISTS 表名
    (
        cust_id int NOT NULL AUTO_INCREMENT,
        cust_address char(50) NOT NULL,
        PRIMARY KEY(cust_id)
    )ENGINE=InnoDB;
    

    每个列要么NULL,要么NOT NULL,空串不等于NULL。
    主键中只能使用不允许NULL值的列。允许NULL值的列不能作为唯一标识。
    每一个表只允许一个AUTO_INCREMENT列。SELECT last_insert_id()获得最后一个AUTO_INCREMENT值。
    使用DEFAULT xx,放在NOT NULL后,提示默认值。
    引擎。

    • InnoDB:可靠的事务处理引擎,不支持全文本搜索
    • MEMORY:数据存储在内存,不是磁盘,速度快,适合临时表
    • MyISAM:性能极高,支持全文本搜索,不支持事务处理

    外键不能跨引擎,即使用一个引擎的表不能引用具有使用不同引擎的表的外键。

    更新表

    # 添加一个列,明确其数据类型
    ALTER TABLE vendors
    ADD vend_phone CHAR(20);
    
    # 删除列
    ALTER TABLE vendors
    DROP COLUMN vend_phone;
    

    复杂的表结构更改过程。

    • 用新的表布局创建一个新表
    • 使用INSERT SELECT语句,从旧表复制数据到新表,可使用转换函数和计算字段
    • 检验包含所需数据的新表
    • 重命名旧表,可以删除
    • 用旧表原来的名字重命名新表
    • 根据需要,重新创建触发器,存储过程,索引和外键

    删除表

    DROP TABLE customer2; # 永久删除,不可撤销
    

    重命名表

    RENAME TABLE customer2 TO customers,
                                backup_products TO products;
    
  • 相关阅读:
    恢复 root 本地无权限 Access denied for user 'root'@'localhost' (using password: NO)
    linux 下 PHP Notice: session_start(): ps_files_cleanup_dir 报错 问题剖析
    linux 下mysql 开启远程连接
    linux 下mysql 字段插入的值超过 预设大小报错
    CSS、HTML5、JS
    WPF、Sivelright、UWP
    Quartz.net作业调度
    nginx+iis、NLB、Web Farm、Web Garden、ARR
    workflow
    SqlSugar ORM
  • 原文地址:https://www.cnblogs.com/zuotongbin/p/11814175.html
Copyright © 2011-2022 走看看