话不多说,直接上题目:
新入职的程序员冯帅被公司安排去跟一个学生管理系统的项目,项目组长 安排他去主要负责数据库部分的所有操作,日常数据的维护和根据需求进行数 据查询。可冯帅之前并没有接触过数据库,那就抓紧时间学习一下数据库,把 组长安排的 sql 补充一下吧!
任务概述:
- 数据表: 年级表:年级 id(主键),年级名称
- 成绩表:id(主键),学员编号,科目 id,分数,考试时间
- 学生表:学生编号(主键),学生姓名,登录密码,性别,年级 id,电话, 地址,出生日期,email
- 科目表:科目 id(主键),科目名称,学时,年级 id
需求:
- grade 表增加一个阶段,“就业期”
- 将第三阶段的学生的 gradeid 改为就业期的 id
- 查询所有得了 100 分的学号
- 查询所有 1989 年出生的学生(1989-1-1~1990-1-1)
- 查询学生姓名为“金蝶”的全部信息
- 查询 subjectid 为 8 的科目考试未及格(60 分)的学号和成绩
- 查询第 3 阶段课时大于 50 的课程全部信息
- 查询 S1101001 学生的考试信息
- 查询所有第二阶段的女生信息
- “基于.NET 平台的软件系统分层开发”需要多少课时
- 查询“设计 MySchool 数据库”和“面向对象程序设计”的课时(使用 in)
- 查询所有地址在山东的学生信息
- 查询所有姓凌的单名同学
- 查询 gradeid 为 1 的学生信息,按出生日期升序排序
- 查询 subjectid 为 3 的考试的成绩信息,用降序排序
- 查询 gradeid 为 2 的课程中课时最多的课程信息
- 查询北京的学生有多少个
- 查询有多少个科目学时小于 50
- 查询 gradeid 为 2 的阶段总课时是多少
- 查询 subjectid 为 8 的课程学生平均分
- 查询 gradeid 为 3 的课程中最多的学时和最少的学时
- 查询每个科目有多少人次考试
- 每个阶段课程的平均课时
- 查询每个阶段的男生和女生个数(group by)
需求较为基础,要对数据库基本语法熟练掌握
代码如下:
#创建名称为Tian的库
#创建库的各类表
mysql> create database if not exists Tian default charset=utf8;
--创建年级表users,其中grade_id为年级 id(主键),grade_name为年级名称
mysql> create table users(
-> grade_id int unsigned not null primary key auto_increment,
-> grade_name varchar(5) not null
-> )engine=innodb default charset=utf8;
--创建成绩表results,其中results_id为主键,results_serial为编号,object_id为科目ID,results_score为分数
mysql> create table results(
-> results_id int unsigned not null primary key auto_increment,
-> results_serial varchar(20),
-> object_id int(2