【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语句还可以对多个表进行重命名,只需要使用逗号将每一个命名语句隔开即可
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,692评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,482评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,995评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,223评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,245评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,208评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,091评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,929评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,346评论 1 311
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,570评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,739评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,437评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,037评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,677评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,833评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,760评论 2 369
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,647评论 2 354

推荐阅读更多精彩内容

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