【MySQL-表结构与完整性约束的修改(ALTER)】

本文介绍了如何在数据库中修改表结构,包括重命名表、删除冗余列、添加新列以及更新数据类型和列名。针对MyDb数据库中的orderDetail表,删除了多余的orderDate列,并新增了unitPrice列来记录产品单价。此外,还对addressBook表进行了调整,将QQ号字段的数据类型改为char(12)并修改了weixin列名为wechat。
摘要由CSDN通过智能技术生成

数据库TestDb1中有表your_table,请根据提示,在右侧代码文件编辑窗中添加恰当的语句,将表名your_table更改为my_table。

USE TestDb1;

#请在以下空白处添加恰当的语句,将表名your_table更改为my_table:
alter table your_table rename to my_table;

假设数据库MyDb中有表order(订单)和orderDetail(订单明细) 等表,两表的结构分别如下:

order表

字段名称数据类型备注
orderNochar(12)订单号,主码
orderDatedate订购日期
customerNochar(12)客户编号,外码,与customer.customerNo对应
employeeNochar(12)雇员工号,外码,与employee.employeeNo对应

orderDetail表

字段名称数据类型备注
orderNochar(12)订单号,主属性,外码,与order.orderNo对应
productNochar(12)产品编号,主属性,外码,与product.productNo对应
quantityOrderedint订购数量
orderDatedate订购日期

注:表orderDetail的主码由(orderNo,productNo)组成

编程的任务是对orderDetail表进行修改:

  1. orderDetail表的orderDate列明显多余,因为同一订单中的每一笔交易都发生在同一天,这个日期在订单主体表order中已有记录,请删除列orderDate。
  2. 产品的单价是订单明细需要记录的内容,请在orderDetail中添加列unitPrice以记录产品的单价:
字段名称数据类型备注
unitPricenumeric(10,2)产品的成交单价

请根据提示,在右侧代码文件编辑窗中添加恰当的语句,实现上述编程任务。

use MyDb;

#请在以下空白处添加适当的SQL代码,实现编程要求
#语句1:删除表orderDetail中的列orderDate
alter table orderDetail drop orderDate;
#语句2:添加列unitPrice
alter table orderDetail add column unitPrice numeric(10,2);

数据库MyDb中有表addressBook(通信录),结构如下:

字段名称数据类型备注
serialNoint自动编号,主码
namechar(32)姓名
companychar(32)工作单位
positionchar(10)职位
workPhonechar(16)办公电话
mobilechar(11)手机
QQintQQ号
weixinchar(12)微信号

当初创建表的语句如下:

  1. create table addressBook(
  2. serialNo int auto_increment primary key,
  3. name char(32),
  4. company char(32),
  5. position char(10),
  6. workPhone char(16),
  7. mobile char(11),
  8. QQ int,
  9. weixin char(12)
  10. );

你的编程任务是对表addressBook作以下修改:

  1. 将QQ号的数据类型改为char(12);
  2. 将列名weixin改为wechat。
    use MyDb;
    
    #请在以下空白处添加适当的SQL语句,实现编程要求
    alter table addressBook modify QQ char(12) ;
    alter table addressBook rename column weixin to wechat;

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值