在MySQL中,使用CREATE TABLE语句来创建表。你需要指定表名和列的定义,包括列名、数据类型以及约束等,结合实际存储和上一课学习的数据类型选取合适的。创建一个book_types表:
CREATE TABLE IF NOT EXISTS `book_types` (
`type_id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '书籍类型ID',
`book_type` varchar(32) NOT NULL DEFAULT '' COMMENT '书籍类型',
PRIMARY KEY (`type_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
创建一张名为book的表来存储书籍信息
CREATE TABLE IF NOT EXISTS `book` (
`book_id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '书籍ID',
`name` varchar(32) NOT NULL DEFAULT '' COMMENT '书籍名称',
`price` decimal(10,2) unsigned zerofill NOT NULL COMMENT '单价',
`author` varchar(16) NOT NULL DEFAULT '' COMMENT '作家名称',
`publishing_house` varchar(32) NOT NULL DEFAULT '' COMMENT '出版社',
`type_id` int unsigned NOT NULL COMMENT '书籍类型ID',
PRIMARY KEY (`book_id`),
KEY `fk_typeid` (`type_id`),
CONSTRAINT `fk_typeid` FOREIGN KEY (`type_id`) REFERENCES `book_types` (`type_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='书籍信息';
这是一个创建名为 "book" 的数据库表的 SQL 语句。这个表用于存储书籍的相关信息。
- book_id:这是书籍的唯一标识符,是一个自增的大整数。
- name:这是书籍的名称,是一个最多包含32个字符的字符串。
- price:这是书籍的价格,是一个无符号的十进制数(最多10位数字,小数点后2位)。
- author:这是书籍的作者,是一个最多包含16个字符的字符串。
- publishing_house:这是书籍的出版社,是一个最多包含32个字符的字符串。
- type_id:这是书籍类型的唯一标识符,是一个无符号的整数。
此外,这个表还定义了一个外键约束(foreign key constraint),它将 type_id 列与另一个名为 "book_types" 的表的 type_id 列关联起来。如果在 "book_types" 表中删除了一个类型,那么所有引用该类型的书籍记录也会被自动删除(ON DELETE CASCADE)。同样,如果更新了 "book_types" 表中的类型 ID,那么所有引用该类型的书籍记录也会被自动更新(ON UPDATE CASCADE)。
最后,这个表使用 InnoDB 存储引擎,并且字符集是 UTF-8。