问题
大家平时所看到的成绩表单基本上都是用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不可以包含变量和参数。