【数据库】表的查看、修改和删除

练习二 表的查看、修改和删除

一、表结构的修改

1、为student表格增加籍贯列jiguan,数据类型varchar,字段宽度为20字节,不允许输入空值。

语法:ALTER TABLE table_name ADD 属性名 属性类型 NOT NULL

命令如下:

修改的话:alter table table_name modify 属性名 属性类型 not null;

2、重命名student表的籍贯列“jiguan”为“jg”。

语法:ALTER TABLE table_name CHANGE 旧属性名 新属性名 旧数据类型

命令如下;

3、删除student表中的jg字段。

语法:ALTER TABLE table_name DROP 属性名;

命令如下:

4、将student表中的sdept字段长度改为20

语法:ALTER TABLE table_name MODIFY 属性名 数据类型;

--数据类型为修改后的数据类型

命令如下:

5、在sno字段上为Student表设置主键。

语法:ALTER TABLE table_name ADD PRIMARY key 属性名

命令如下:

 

6、在Cno字段上为Course表设置主键。

命令如下:

7、为SC表的Sno和Cno设置外键。

命令如下:

首先显示一下三个表:

添加外键的操作:

添加外键之后的sc表:

字段Sno和字段Cno的key位置上出现了MUL的字样

8、删除键(如有外键的话,要先删除外键,再删除主键)

一、如何删除外键?

分布删除外键:

第一步:先删除外键:

alter table table_name drop foreign key 外键名;

第二步:再删除索引:

alter table table_name drop index 外键名;

/*但是注意一点:MySQL不支持直接删除外键:alter table table_name drop constraint 外键名;*/

我发现alter table table_name drop constraint 外键名;和alter table table_name drop foreign key 外键名;起到的作用是一样的

And

------------------------------------其实到这一步就已经删除外键了(如果再次添加外键也是可以的)

如果要完全删除这个键的话就需要

alter table table_name drop index 外键名;

而且我查看sc表上的Key发现就没有MUL

关于删除外键约束需要注意的几点

* 从表的外键通常为主表的主键(就像这里的sc表的Sno是student的主键、Cno是course的主键)

* 从表里外键的数据类型必须与主表中主键的数据类型一致

* 主表发生变化时应注意主表与从表的数据的一致性问题

  • 如何删除主键?

alter table table_name drop primary key;//因为主键唯一所以删除的对象是表格

对于有自定义名字的主键:

添加主键:alter table table_name add constraint p_pk primary key(Sname);//其中p_pk是这个主键的名字,就像外键一样。

删除主键:alter table table_name drop constraint p_pk;

二、数据操作

1、使用insert-SQL命令向上述表中输入如下数据记录。

学生关系表Student

Sno

Sname

Ssex

Sbirthday

Sdept

Speciality

20180101

李勇

2000-01-12

CS

计算机应用

20180201

刘晨

2001-06-04

IS

电子商务

20180301

王敏

2002-12-23

MA

数学

20180202

张立

2001-08-25

IS

电子商务

例:insert into student(sno,sname) values('20180101','李勇');

命令如下:

Sno

Cno

Degree

20180101

C01

92

20180101

C02

85

20180101

C03

88

20180201

C02

90

20180201

C03

80

20180301

C01

89

20180301

C02

87

20180202

C01

87

课程关系表Course   成绩表SC

Cno

Cname

C01

数据库

C02

数学

C03

信息系统

C04

操作系统

命令如下:

课程关系表Course:

成绩表:

刚开始我发现初始的decimal精度太小,输入的值会越界

然后我对Degree的精度作了一些修改:

就可以正常的输入了

2、使用update命令将SC表C02课程的Degree字段值全部加5分。

命令如下:

3、删除SC表中C02课程的全部记录。

命令如下:

4、查看SC表格中所有数据。

命令如下:

  1. 思考题

1、MySQL的数据库文件有几种?扩展名分别是什么?

种类有很多,这里我找到一篇blog介绍数据库文件,很详细

MySQL数据库文件 - DB-Engineer - 博客园 (cnblogs.com)

2、如何实现数据库的备份和还原?

教你如何进行数据库的备份与恢复_zimao_的博客-CSDN博客_数据库备份与恢复

3、在定义基本表语句时,NOT NULL参数的作用是什么?

该属性的值不可以为空值

4、主码可以建立在“值可以为NULL”的列上吗?

不可以

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明璐花生牛奶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值