欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

MySQL建表查询

程序员文章站 2022-04-29 17:14:49
现在有一教学管理系统,具体的关系模式如下:Student (no, name, sex, birthday, class)学号,姓名,性别,生日,班级Teacher (no, name, sex, birthday, prof, depart)教师号,姓名,性别,生日,职称,院系Course (cno, cname, tno)课程号,课程名,教师编号Score (no, cno, degree)学号,课程号,成绩写出上述表的建表语句。create table s....

现在有一教学管理系统,具体的关系模式如下:

Student (no, name, sex, birthday, class)

学号,姓名,性别,生日,班级

Teacher (no, name, sex, birthday, prof, depart)

教师号,姓名,性别,生日,职称,院系

Course (cno, cname, tno)

课程号,课程名,教师编号

Score (no, cno, degree)

学号,课程号,成绩

 

1.写出上述表的建表语句。

create table student (

no varchar(10) primary key,

name varchar(20),

sex varcahr(5),

birthday datetime,

class varchar(10)

);

create table teacher(

no varchar(10) primary key,

name varchar(20),

sex varchar(5),

birthday datetime,

prof varcahr(10),

depart varcahr(10)

);

creat table course(

cno varchae(10),

canme varcahr(20),

tno varcahr(10)

);

creat table score(

no varcahr(10),

cno varchar(10),

degree int

);

2.给出相应的INSERT语句来完成题中给出数据的插入。

MySQL建表查询

再插入时,遇到汉字会乱码无法执行。就算插入后也可能会出现乱码。究其原因是编码不对,使用MySQL需要utf-8(国际)编码,然而自带的cmd为gbk(汉字)编码。自然会出现乱码情况。

可以先输入以下可临时解决问题,但在重启后问题又会回来。若需要永久解决建议另寻办法。

set character_set_client=gbk;set character_set_results=gbk;

 

MySQL建表查询

insert student values ('107','杨康','男','1987-9-24','95001');

3.以class降序输出student的所有记录(student表全部属性)

select * from student order by class desc;

MySQL建表查询

4.列出教师所在的单位depart(不重复)。

select distinct depart from teacher;

MySQL建表查询

5.列出student表中所有记录的name、sex和class列

select name,sex,class from student;

MySQL建表查询

6.输出student中不姓王的同学的姓名。

select name from student where name not like '王%';

MySQL建表查询

7.输出成绩为85或86或88或在60-80之间的记录(no,cno,degree)

select no,cno,degree from score where degree in (85,86,88) or degree between 60 and 80;

MySQL建表查询

8.输出班级为95001或性别为‘女’ 的同学(student表全部属性)

select * from student where class='95001' or sex='女';

MySQL建表查询

9.以cno升序、degree降序输出score的所有记录。(score表全部属性)

select * from score order by cno asc,degree desc;

MySQL建表查询

10.输出男生人数及这些男生分布在多少个班级中       

select count(*) '男生人数',count(DISTINCT class)'班级' from student where sex='男';

MySQL建表查询

11.列出存在有85分以上成绩的课程编号。

select distinct cno from score where degree>85;

MySQL建表查询

12.输出95001班级的学生人数

select count(*) '人数' from student where class='95001';

MySQL建表查询

13.输出‘3-105’号课程的平均分 

select avg(degree)'平均分' from score where cno='3-105';

MySQL建表查询

14.输出student中最大和最小的birthday日期值

select max(birthday)'年龄最小', min(birthday)'年龄最大' from student;

MySQL建表查询

15.显示95001和95004班全体学生的全部个人信息(不包括选课)。(student表全部属性)

select * from student where class='95001' or class='95004';

MySQL建表查询

16.输出至少有5个同学选修的并以3开头的课程的课程号,课程平均分,课程最高分,课程最低分。

select cno, avg(degree),max(degree),min(degree) from score where cno like '3%' group by cno having count(cno)>=5;

MySQL建表查询

 

 

本文地址:https://blog.csdn.net/weixin_44576890/article/details/107301672