【MySQL必知必会】第21章:表的更新与删除

21.1 创建表

创建表一般有两种方法:

  • 使用具有交互式创建和管理表的工具(IDE)
  • 直接使用MySQL语句CREATE TABLE进行创建
CREATE TABLE table_name(
    col1    type    ...
    col2    type    ...
    col3    type    ...
) ENGINE=;
  • 使用CREATE TABLE关键字后还需要定义列(指定其类型以及其他属性:如主键、默认值等)
  • 搜索引擎指定不唯一
  • 在处理现有的表时需要格外小心,防止意外覆盖已有的表

21.2 定义列的其他属性

21.2.1 NULL值

对列可以指定是NULL或者NOT NULL;如果定义列含有NOT NULL关键字时,若没有插入该列的值则会报错;NULL则相反

  • NULL与空串不同,NULL时没有值,而空串为「' '」,本质上还是一个字符串值

21.2.2 PRIMARY KEY主键

每个表中的主键必须唯一,可以使用PRIMARY KEY(col_name)来指定表中的某一列作为主键;也可以直接在创建列中指定列属性col type PRIMARY KYE

21.2.3 AUTO_INCREMENT自增

  • AUTO_INCREMENT告诉MySQL,本列每当增加一行时自动增量
  • 每个表只允许一个AUTO_INCREMENT列,而且它必须被索引(如:通过使它成为主键)。

21.2.4 DEFAULT默认值指定

如果不希望某列的值不为空,但又暂时不用修改,那么可以使用默认值来设定最开始的值;直接使用DEFAULT 值即可

  • MySQL不允许使用函数作为默认值,它只支持常量

21.2.5 引擎类型

MySQL服务器有着许多种引擎,各自都具备着不同的功能和特性,以便能提高搜索的性能;在创建表时可以使用ENGINE=引擎名来指定,主要有以下几个引擎:

  • InnoDB:事务处理引擎,不支持全文本搜索
  • MyISAM:性能极高的引擎,它支持全文本搜索,但不支持事务处理。
  • MEMORY:功能等同于MyISAM,但数据存储在内存(而不是磁盘),速度很快(特别适合于临时表)

以上引擎类型可以混用,以便弥补引擎的局限;MyISAM一般为最受欢迎的引擎,但根据特性来对引擎进行选择

21.3 更新表

对表定义后可以使用ALTER TABLE来对表中的定义列进行调整;但是理想状态下,当表中存储数据以后,该表就不应该再被更新。

#增加字段
ALTER TABLE vendors
ADD vend_phone CHAR(20);

#删除字段
ALTER TABLE vendors
DROP vend_phone;
  • 使用ADDDROP关键字可以来对字段进行增删

除了基本的增删功能外,ALTER TABLE的一种常见用途是定义外键:

ALTER TABLE orderitems
ADD CONSTRAINT fk_orderitems_orders
FOREIGN KEY (order_num) REFERENCES orders (order_num);
  • ADD CONSTRAINT用于指定外键名
  • FOREIGN KEY来指定orderitems表的order_num字段为外键,用REFERENCES关键字来连接orders表的order_num字段

但是在使用ALTER TABLE要极为小心,应该在进行改动前做一个完整的备份(模式和数据的备份)。因为数据库的操作无法撤销

21.4 删除表

使用DROP TABLE语句即可删除表(删除表而不是其内容):

DROP TABLE customers2;
  • 删除表没有确认,也不能撤销,执行这条语句将永久删除该表。因此要格外小心。

21.5 重命名表

使用RENAME TABLE语句可以对表的名字进行修改:

RENAME TABLE customers TO customers;
  • 使用TO关键字来指定新表名
  • RENAME TABLE语句还可以对多个表进行重命名,只需要使用逗号将每一个命名语句隔开即可
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • MySQL技术内幕:InnoDB存储引擎(第2版) 姜承尧 第1章 MySQL体系结构和存储引擎 >> 在上述例子...
    沉默剑士阅读 7,461评论 0 16
  • MySQL5.6从零开始学 第一章 初始mysql 1.1数据库基础 数据库是由一批数据构成的有序的集合,这些数据...
    星期四晚八点阅读 1,183评论 0 4
  • 转 # https://www.cnblogs.com/easypass/archive/2010/12/ 08/...
    吕品㗊阅读 9,797评论 0 44
  • 长发及腰间, 不见将军还。 千里堆白骨, 万里无人烟。 门庭花逝尽, 将军尚还安? 奈何容颜老, 终已泪阑干。 转...
    BestBDs阅读 93评论 0 2
  • 工作生活或是感情,很多人都喜欢自我设限,去想很多根本就不存在的状况,还在那自怨自怜。 敏感的人是容易被伤的,他人的...
    一粒简单阅读 209评论 0 0