21. 创建和操纵表
1. 创建表
1.1. 表创建基础
利用CREATE TABLE创建表,必须给出下列信息
- 新表的名字,在关键字CREATE TABLE之后给出
- 表列的名字和定义,用逗号分隔
- 表的主键可以在创建表时用PRIMARY KEY关键字指定。
- 在创建新表时,指定的表名必须不存在,否则将出错。
- 在创建新表时,指定的表名必须不存在,否则将出错。
1.2. 使用NULL值
在插入或更新行时,该列必须有值
每个表列或者是NULL列,或者是NOT NULL列,这种状态在创建时由表的定义规定。
1.3. 主键再介绍
- 主键值必须唯一。
- 创建由多个列组成的主键,应该以逗号分隔的列表给出各列名,
1.4. 使用AUTO_INCREMENT
AUTO_INCREMENT告诉MySQL,本列每当增加一行时自动增量。
每个表只允许一个AUTO_INCREMENT列,而且它必须被索引(如,通过使它成为主键)。
如何在使用AUTO_INCREMENT列时获得这个值呢?可使用last_insert_id()函数获得这个值
- select last_insert_id()
- 此语句返回最后一个AUTO_INCREMENT值,然后可以将它用于后续的MySQL语句
1.5. 指定默认值
default关键字
1.6. 引擎类型
CREATE TABLE语句以ENGINE=InnoDB语句结束
常见引擎
2. 更新表
更新表定义,可使用ALTER TABLE语句
为了使用ALTER TABLE更改表结构,必须给出下面的信息:
- 在ALTER TABLE之后给出要更改的表名(该表必须存在,否则将出错);
- 所做更改的列表
ALTER TABLE的一种常见用途是定义外键。下面是用来定义本书中的表所用的外键的代码
复杂的表结构更改一般需要手动删除过程,它涉及以下步骤:
- 用新的列布局创建一个新表;
- 使用INSERT SELECT语句(关于这条语句的详细介绍,请参阅第19章)从旧表复制数据到新表。如果有必要,可使用转换函数和计算字段;
- 检验包含所需数据的新表;
- 重命名旧表(如果确定,可以删除它);
- 用旧表原来的名字重命名新表;
- 根据需要,重新创建触发器、存储过程、索引和外键。
3. 删除表
删除表(删除整个表而不是其内容)非常简单,使用DROP TABLE语句即可
4. 重命名表
- 使用RENAME TABLE语句可以重命名一个表:
21. 创建和操纵表
http://binbo-zappy.github.io/2024/11/27/mysql_bzbh/21-创建和操纵表/