本文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';
结果:大家可以对比下插入的数据与结果是否一致
建议: 在实际中修改删除数据之前最好做备份,以免造成不必要损失。
最后把英文的表列名改为中文:(选做)