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

Posted Jun-Main

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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’

```sql
alter table Student change jiguang jiguan varchar(20);
```

![在这里插入图片描述](https://img-blog.csdnimg.cn/20210616093224680.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1BlcnN1aXRfaGVybw==,size_16,color_FFFFFF,t_70#pic_center)


3. 删除Student表中的jiguan字段

```sql
alter table Student drop jiguan;
```

![在这里插入图片描述](https://img-blog.csdnimg.cn/20210616093434240.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1BlcnN1aXRfaGVybw==,size_16,color_FFFFFF,t_70#pic_center)


4. 将Stubdent表中sdept字段的长度改成20

```sql
alter table Student modify sdept char(20);
```

![在这里插入图片描述](https://img-blog.csdnimg.cn/20210616093516748.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1BlcnN1aXRfaGVybw==,size_16,color_FFFFFF,t_70#pic_center)


5. 在sno字段上设置主键

```sql
alter table Student add primary key(sno);
```

在这里插入图片描述



6. 在Course表设置cno为主键

```sql
alter table Course add primary key(cno);
```

在这里插入图片描述



7. 在SC表设置sno, cno 为外键

```sql
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, 第四个课程号与前面的课程号冲突,标识符不唯一

以上是关于MySQL大略学习 表格的操作 增删查改的主要内容,如果未能解决你的问题,请参考以下文章

mysql-表操作(增删查改)

mysql增删查改

mysql增删查改

mysql简单操作,增删查改.

VisualStudio 连接 MySql 实现增删查改

MySQL学习笔记1(增删查改)