目录
题目:
创建库和表:
创建库:
创建表:
将 c_contact 字段插入到 c_birth 字段后面:
将 c_name 字段数据类型改为VARCHAR(70):
将 c_contact 字段改名为 c_phone:
将表名修改为 customers_info:
删除字段 c_city:
修改数据表的储存引擎为MyISAM:
前言:觉得做一道题不够过瘾,再来一个。不熟悉的小伙伴可以跟着本文一起进行操作。
题目:
创建数据库 Market ,在 Market 中创建数据表 customers,并按要求进行操作。
请注意:主键、自增、非空约束的位置!!!
customers 表结构如下:
详细信息如下:
创建库和表:
创建库:
如果溜号创建错了数据库,可以删除,具体语句如下:
创建表:
将 c_contact 字段插入到 c_birth 字段后面:
效果如下:
提示语句如下:
ALTER TABLE <> MODIFY <> <> AFTER <>;
答案:
将 c_name 字段数据类型改为VARCHAR(70):
效果如下:
提示语句如下:
ALTER TABLE <> MODIFY <> <>;
答案:
将 c_contact 字段改名为 c_phone:
效果如下:
提示语句:
ALTER TABLE <> CHANGE <> <> <>;
答案:
将表名修改为 customers_info:
修改后效果:
提示语句:
ALTER TABLE <> RENAME <>;
答案:
删除字段 c_city:
效果如下:
提示语句:
ALTER TABLE <> DROP <>;
答案:
修改数据表的储存引擎为MyISAM:
效果如下:
提示语句:
ALTER TABLE <> ENGINE <>;
答案:
此时增加一个问题,在Market 库内建立如下数据表 orders,并将orders中的 c_id 作为外键约束,链接到 customers_info 的 c_num 字段上。尝试操作。
字段名 | 数据类型 | 主键 | 外键 | 非空 | 唯一 | 自增 |
o_num | INT(11) | YES | NO | YES | YES | YES |
o_date | DATE | NO | NO | NO | NO | NO |
c_id | VARCHAR(50) | NO | YES | NO | NO | NO |
试试看能不能创建出来?
创建结果:
出现该情况,因为cunstomers_info 的引擎是 MyISAM,我的默认引擎是 InnoDB,出错。
更改 customers_info 的引擎后,尝试:
c_num 的数据类型是 INT(11) ,而 c_id 的是 VARCHAR(50),不一样,不能链接。
需要注意几个问题:
1. 不同引擎之间的数据表,是无法建立外键约束的。
2. 不要随意更改字段的数据类型。
3. 外键约束的前提是,数据表引擎相同,数据类型相同。
4. 终端操作时,可以通过”上下键“来快速选择曾经输入过的内容,免去复制粘贴的麻烦。
5. 请用批判性思维阅读教材,如果发现问题,请刨根问底寻找正确答案,不要稀里糊涂蒙混过关。