17 创建和操纵表
17.1 创建表
为了用程序创建表,可使用SQL的CREATE TABLE语句。 必须给出下列信息:
- 新表的名字,在关键字CREATE TABLE之后给出;
- 表列的名字和定义,用逗号分隔。
CREATE TABLE mytable ( id INT NOT NULL AUTO_INCREMENT, col1 INT NOT NULL DEFAULT 1, col2 VARCHAR(45) NULL, col3 DATE NULL, PRIMARY KEY (`id`));
17.1.1 使用NULL值
每个表列或者是NULL列,或者是NOT NULL列,这种状态在创建时由
17.1.2 主键
主键值必须唯一。 如果使用多个列,则这些列的组合值必须唯一。
使用多个列作为主键是这样的:
PRIMARY KEY ( order_num, order_item )
17.1.3 使用AUTO_INCREMENT
AUTO_INCREMENT告诉MySQL,本列每当增加一行时自动增量。
每个表只允许一个AUTO_INCREMENT列,而且它必须被索引(如,通过使它成为主键)。
17.1.4 指定默认值
如果在插入行时没有给出值, MySQL允许指定此时使用的默认值。 默认值用CREATE TABLE语句的列定义中的DEFAULT关键字指定。
17.2 更新表
为更新表定义,可使用ALTER TABLE语句。但是,理想状态下,当表中存储数据以后,该表就不应该再被更新。
添加列:
ALTER TABLE mytable ADD col CHAR(20);
必须明确其数据类型。
删除列:
ALTER TABLE mytable
DROP COLUMN col;
17.3 删除表
删除表(删除整个表而不是其内容)非常简单,使用DROP TABLE语句:
DROP TABLE mytable;
17.4 重命名表
使用RENAME TABLE语句可以重命名一个表:
RENAME TABLE mytable TO mytable1;