• 《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;
    
  • 相关阅读:
    css-css背景
    css-概述和选择器
    html-补充
    html-示例代码
    html-表格和列表
    html-表单
    html-常用标签
    html- 头部元素
    html-介绍
    SQLAlchemy-对象关系教程ORM-连接,子查询
  • 原文地址:https://www.cnblogs.com/zuotongbin/p/11814175.html
Copyright © 2020-2023  润新知