【2024新版】头歌 OpenGauss数据库-A.修改表及约束

第一关:修改表名

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

alter table old_table RENAME TO new_table


RENAME- 只改列名

MODIFY- 只改数据类型

CHANGE- 改列名 改数据类型

第二关:添加与删除字段(列)

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 )删除orderDate,

(2)添加unitPrice【字段名称:unitPrice;数据类型:numeric(10,2);备注:产品的成交单价】


alter table orderDetail drop orderDate;

alter table orderDetail add unitprice numeric(10,2);

第三关:修改字段(列)类型

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

任务:对addressBook表进行修改:

        (1)将QQ号的数据类型改为char(12);

        (2)增加一列,列名为wechat,数据类型是char(12)。


alter table addressBook modify QQ char(12)

alter table addressBook add wechat char(12)

第四关:添加、删除与修改约束

dept(部门)表

部门数据类型备注
deptNoINT部门号,主键
deptNameVARCHAR(32)部门名称,不同部门不允许重名
telchar(11)部门电话
mgrStaffNoint部门经理的工号,外码

staff(职工) 表

字段名称数据类型备注
staffNoINT 工号,主键
staffNameVARCHAR(32)职工姓名
genderCHAR(1)性别,取值范围:F-女,M-男
dobdate出生日期
Salarynumeric(8,2)工资
deptNoINT部门号,外键

请在右侧代码编辑窗每条注释的下面写出适当的语句(注释不能做任何修改,否则打回重做),完成以下工作:

(1) 为表Staff添加主码;

(2) Dept.mgrStaffNo是外码,对应的主码是Staff.staffNo,请添加这个外码,名字为FK_Dept_mgrStaffNo;

(3) Staff.dept是外码,对应的主码是Dept.deptNo. 请添加这个外码,名字为FK_Staff_dept;

(4) 为表Staff添加check约束,规则为:gender的值只能为F或M;约束名为CK_Staff_gender; 添加CHECK约束语法:条件表达式与查询的选择条件类似。 ALTER TABLE 表名 ADD [CONSTRAINT [约束名]] check(条件表达式)

(5) 为表Dept添加unique约束:deptName不允许重复。约束名为UN_Dept_deptName;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值