MySQL大略学习(二) 表格的操作 增删查改

二 表的操作

2.1 表中结构的修改

基础语法
1. 添加字段
alter table table_name add 属性名 属性类型

2. 删除字段
alter table table_name drop 属性名

3. 重命名字段
alter table table_name change 旧属性名 新属性名 旧属性类型

4. 修改字段类型
alter table table_name modify 属性名  修改后属性类型

5. 设置主键
alter table table_name add primary key(属性名)

6. 设置外键
alter table table_name1 add constranit 外键名 foreign key(table_name1 中属性) refference table_name2(table_name2中的主键)
如果不constraint 外键名	会增加自动创建一个外键名
需要通过show create table table_name 来查找外键名


	
7. 删除主键
alter table table_name drop primary key

8. 删除外键
alter table table_name drop foreign key 外键名




例子

1. 为student表增加籍贯列 jiguan,类型为varchar, 字段宽20字节,不允许为null
alter table Student add jiguang varchar(20) not null;

在这里插入图片描述



2. 重命名Student表中籍贯列‘jiguang’ 改成‘jiguan’
  alter table Student change jiguang jiguan varchar(20);

在这里插入图片描述



3. 删除Student表中的jiguan字段
    alter table Student drop jiguan;

在这里插入图片描述



4. 将Stubdent表中sdept字段的长度改成20
alter table Student modify sdept char(20);

在这里插入图片描述



5. 在sno字段上设置主键
```sql
alter table Student add primary key(sno);
```

在这里插入图片描述



6. 在Course表设置cno为主键
alter table Course add primary key(cno);

在这里插入图片描述



7. 在SC表设置sno, cno 为外键
alter table Sc add foreign key(sno)references Student(sno);

alter table Sc add foreign key(cno) references
Course(cno);

在这里插入图片描述

在这里插入图片描述




2.2 表中数据的修改


基础语法

1. 增加数据
insert into table_name(col1, col2) values(value1, value2)

2. 删除数据
delete from table_name where 条件

3. 修改数据
update table_name set col1 = value1 where 条件

4. 查找数据
select * from table_name where 条件



例子

1. 向Student表中插入如下数据
snosnamessexsbirthdaysdeptspeciality
20150101李勇1997.1.12CS计算机应用
20150201刘晨1995.6.4IS电子商务
20150301王敏1999.12.23MA数学
20150202张立1997.8.25Is电子商务
insert into Student(sno, sname, ssex, sbirthday, sdept, speciality) values('20150101', '李勇', '男', '1997-01-12', 'CS', '计算机应用');

其他的依次类推就不写了

在这里插入图片描述



2. 插入Course表和Sc表
cnocname
C01数据库
C02数学
C03信息系统
C03操作系统
snocnodegree
20050101C0192
20050101C0285
20050101C0388
20050201C0290
20050201C0380
20050301C01NULL
20050301C02NULL
20050202C0187
insert into Course(cno, cname) values('C01', '数据库');
insert into Course(cno, cname) values('C02', '数学');
insert into Course(cno, cname) values('C03', '信息系统');
insert into Course(cno, cname) values('C03','操作系统');

insert into Sc(sno, cno, degree) values('20050101', 'C01', 92);
insert into Sc(sno, cno, degree) values('20050101', 'C02', 85);
insert into Sc(sno, cno, degree) values('20050101', 'C03', 88);
insert into Sc(sno, cno, degree) values('20050201', 'C02', 90);
insert into Sc(sno, cno, degree) values('20050201', 'C03', 80);
insert into Sc(sno, cno, degree) values('20050301', 'C01', NULL);
insert into Sc(sno, cno, degree) values('20050301', 'C02', 
NULL);                                                     insert into Sc(sno, cno, degree) values('20050202', 'C01', 87);

在这里插入图片描述

在这里插入图片描述

这边我们发现第四个插入失败 是因为之前我们把Course表中的cno设置为主键唯一标识 C03 跟前面的C03冲突了 解决的办法是 删除主键

在这里插入图片描述



3. 将Sc表中C02课程degree全部加5分
update Sc set degree=degree+5 where cno = 'C02';

在这里插入图片描述



4. 删除Sc表中C02课程全部记录
delete from Sc where cno = 'C02';


Notes:

1. 为什么要有主键

​ 主键用来唯一标识来强制确保表地完整性。例如身份证上人的名字是会有重复的,但是身份证号码是唯一标识的,假如.要查询一个人那么直接查询他的身份证号码就可以了

2. 为什么要有外键

为了解决数据的冗余,并且外键能关联的确保整个数据库的表都是完整的

3.刚才给Course表添加数据为什么会报错

Course的主键是cno, 第四个课程号与前面的课程号冲突,标识符不唯一

  • 4
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值