问题
大家平时所看到的成绩表单基本上都是用excel来制作的,学习数据库基础,你就多了一项用MySQL制作表单的技能。不仅方便快捷,输入一些命令就可以很直观的看出重要数据;而且便于储存。那么如何用MySQL制作一张简单的成绩表单呢?
方法
下载安装MySQL后可以直接在命令行启动MySQL输入命令制作表单。
本文介绍用Navicat for MySQL软件执行MySQL操作制作。制作流程是创建表格-添加数据-创建视图-查询生成表格。
创建表格
#如果存在school这个数据库就删除school drop DATABASE if EXISTS school; create DATABASE school; #再创建school use school; #班级信息表 drop table if EXISTS class; #如果存在表格先删除表格 CREATE TABLE class( #创建表格和列(数据类型和条件) num int(4) not null PRIMARY key auto_increment, bname VARCHAR(32) not null UNIQUE, sex VARCHAR(20) , age int(2) not null ); #成绩信息表 drop TABLE if EXISTS grade; CREATE TABLE grade( cno int(4) PRIMARY key auto_increment, name VARCHAR(20) not null, chinese INT(4) not null, #not null:不为空 math INT(4) not null, english INT(4) NOT NULL )auto_increment=101; #cno从101开始
表1
添加数据
desc class; #查看表结构 INSERT into class (num,bname,sex,age) values (101,"张三","男",18); #插入数据 INSERT into class (num,bname,sex,age) values (102,"李四","女",18); insert into class (num,bname,sex,age) values (103,"王五","男",19),(104,"赵六","女",20); insert into class values(105,"黄七","女",19); desc grade; #查看表结构 insert into grade(name,chinese,math,english)values("张三",90,85,95),("李四",92,95,80),("王五",96,94,85),("赵六",88,98,94),("黄七",91,93,98);
表2
创建视图
CREATE view view_info #创建视图view_info As #将num命名为学号,bname命名为姓名以此类推。从class a表和grade b表中查找。 select num as 学号 ,bname as 姓名,chinese as 语文,math as 数学,english as 英语,chinese+math+english AS 总分from class a,grade b where a.num=b.cno order by 总分 desc; # where中为约束条件,order by 总分 desc:按总分降序排列 #查询视图view_info和添加名次列从1开始自动递增 Select A.*, (@i:=@i+1) as 名次 from view_info A,(Select @i:=0) B;
表3
查询生成表格
结语
用MySQL制作表单有很多的注意事项。创建数据库和表格的时候要先看是否有相同名字的,如果有先删除再创建;创建视图要写好where约束条件;视图的select不可以包含变量和参数。