数据库实验(Linux环境下)

本文Server version: 8.0.31 MySQL Community Server - GPL

创建数据库(XSCJ),表,并插入数据,表结构如下图:
在这里插入图片描述

1.使用create database XSCJ;创建XSCJ数据库,使用show databases查看数据库。
在这里插入图片描述
2.使用XSCJ数据库use XSCJ;
在这里插入图片描述
3.创建表XSQK:

if not exists 可省略 SNo可直接写中文“学号” 列名都可以写中文如果冲突可以在中文前后加“`”

create table if not exists XSQK( 
	-> SNo char(6) not null primary key comment '主键', 
	-> SN char(8) not null, 
	-> Sex bit not null comment '男1,女0', 
	-> Birthday datetime not null, 
	-> Spec char(10) not null, 
	-> Dept char(10) not null, 
	-> Tel char(11) 
    -> );

使用show tables;查看表
在这里插入图片描述
使用desc XSQK;查看表结构
在这里插入图片描述
使用show full columns from XSQK;查看所有字段注释
在这里插入图片描述

4.创建表KC

create table if not exists KC(
    -> CNo char(3) not null primary key comment '主键',
    -> CN char(20) not null,
    -> TN char(10),
    -> Term Tinyint(1) comment '只能1-6',
    -> CT Tinyint(1) default 60,
    -> CD Tinyint(1) not null
    -> );

此处不再浪费篇幅进行步骤3中的查看了,大家可以自行查看

5.创建表XS_KC

create table if not exists XS_KC(
    -> SNo char(6) not null,
    -> CNo char(3) not null,
    -> Score Tinyint(1) comment '0-100之间',
    -> foreign key (SNo) references XSQK(SNo),
    -> foreign key(CNo) references KC(CNo)
    -> );

此时成功创建了三个表:
在这里插入图片描述
6.接下来我们插入数据
6.1插入XSQK表数据

insert into XSQK (SNo,SN,Sex,Birthday,Spec,Dept,Tel) values ('020101','杨颖',0,'1980-7-20','计算机应用','计算机','88297147');

在这里插入图片描述

插入后可以发现有两处的类型不符合预期,我们修改一下表列的数据类型。

修改Birthday类型:

alter table XSQK modify Birthday date;

在这里插入图片描述
修改并删除开始插入的第一条数据:

alter table XSQK modify Sex TINYINT;    
delete from XSQK where SNo='020101';

在这里插入图片描述
完成修改后再重新插入数据:
在这里插入图片描述

此时数据格式完全符合我们的预期,我们再继续插入XSQK表中的其他数据。

insert into XSQK (SNo,SN,Sex,Birthday,Spec,Dept,Tel) values ('020102','方露露',0,'1981-1-15','计算机应用','计算机','88297147');

insert into XSQK (SNo,SN,Sex,Birthday,Spec,Dept,Tel) values ('020103','俞奇军',1,'1980-2-20','信息管理','计算机','88297151');

insert into XSQK (SNo,SN,Sex,Birthday,Spec,Dept,Tel) values ('020104','胡国强',1,'1980-11-7','信息管理','计算机','88297151');

insert into XSQK (SNo,SN,Sex,Birthday,Spec,Dept,Tel) values ('020105','薛冰',1,'1980-7-29','水利工程','水利系','88297152');

insert into XSQK (SNo,SN,Sex,Birthday,Spec,Dept,Tel) values ('020201','秦盈飞',0,'1982-3-10','电子商务','经济系','88297161');

insert into XSQK (SNo,SN,Sex,Birthday,Spec,Dept,Tel) values ('020202','董含静',0,'1980-9-25','电子商务','经济系','88297062');

insert into XSQK (SNo,SN,Sex,Birthday,Spec,Dept,Tel) values ('020203','陈伟',1,'1980-8-7','电子商务','经济系','88297171');

insert into XSQK (SNo,SN,Sex,Birthday,Spec,Dept,Tel) values ('020204','陈新江',1,'1980-7-20','房建','水利系','88297171');

在这里插入图片描述
插入结果:
在这里插入图片描述

**注意:**按照学校要求来说列名为中文,此处暂时为了方便采取英文(最后会改成中文),接下来演示怎么修改为中文列名,有需要的可以修改,过程如下图:

在这里插入图片描述

6.2插入KC表数据

insert into KC (CNo,CN,TN,Term,CT,CD) values ('102','计算方法','王颐',3,45,3);

insert into KC (CNo,CN,TN,Term,CT,CD) values ('103','操作系统','徐格',2,60,4);

insert into KC (CNo,CN,TN,Term,CT,CD) values ('104','数据库原理及应用','应对刚',3,75,5);

insert into KC (CNo,CN,TN,Term,CT,CD) values ('105','网络基础','吴江江',4,45,3);

insert into KC (CNo,CN,TN,Term,CT,CD) values ('106','高等数学','孙中文',1,90,6);

insert into KC (CNo,CN,TN,Term,CT,CD) values ('107','英语','陈刚',1,90,6);

insert into KC (CNo,CN,TN,Term,CT,CD) values ('108','VB程序设计','陈红韦',3,70,5);

在这里插入图片描述
6.3插入XS_KC表数据:

insert时如果插入的是完整列字段数据,可省略表名后面的参数字段

insert into XS_KC (SNo,CNo,Score) values ('020101','101',85);

insert into XS_KC values ('020101','102',87);

insert into XS_KC values ('020101','107',88);

insert into XS_KC values ('020102','101',58);

insert into XS_KC values ('020102','102',63);

insert into XS_KC values ('020104','107',76);

insert into XS_KC values ('020202','103',55);

insert into XS_KC values ('020202','108',80);

insert into XS_KC values ('020203','103',57);

insert into XS_KC values ('020204','103',71);

在这里插入图片描述
7.关于表的添加,修改,删除数据
前文已经演示表的创建(3,4,5),添加,删除(6.1),修改表属性(6.1)。

下面演示修改(更新)数据:
假设我们想要修改SNo为020101的数据(XS_KC表第一条),把Score改为100:

update XS_KC set Score = 100 where SNo = '020101';

结果:
在这里插入图片描述
发现上面的命令造成了巨大的错误,我们的where查询条件不充分
接下来还原数据,当然也使用update命令,使用and使查出来的结果只有一条。

update XS_KC set Score = 58 where CNo = '101'and SNo = '020102';
update XS_KC set Score = 87 where CNo = '102' and SNo = '020101';
update XS_KC set Score = 88 where CNo = '107' and SNo = '020101';

结果:大家可以对比下插入的数据与结果是否一致
在这里插入图片描述

建议: 在实际中修改删除数据之前最好做备份,以免造成不必要损失。

最后把英文的表列名改为中文:(选做)
在这里插入图片描述

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值