MySQL———作业实验

一、创建数据库表

1.创建数据库

mysql> create database mydb11_stu;

mysql> use mydb11_stu;

2.建表

(1)创建student表

mysql> create table student (

-> id int(10) not null unique primary key,

-> name varchar(20) not null,

-> sex varchar(4),

-> birth_year int,

-> department varchar(20),

-> address varchar(50)

-> );

2)创建score表

mysql> create table score (

-> id int(10) not null unique primary key auto_increment,

-> stu_id int(10) not null,

-> c_name varchar(20),

-> grade int(10)

-> );

二、插入数据

1.向student表插入记录如下:

mysql> insert into student values (901, '张三丰', '男', 2002, '计算机系', '北京海淀区');

mysql> insert into student values (902, '李四平', '男', 2000, '中文系', '北京顺义区');

mysql> insert into student values (903, '王小明', '男', 2003, '英语系', '北京朝阳区');

mysql> insert into student values (904, '李白', '男', 1999, '英语系', '辽宁省鞍山市');

mysql> insert into student values (905, '赵云', '男', 2004, '艺术系', '湖南省衡阳市');

mysql> insert into student values (906, '黄蓉', '女', 1998, '计算机', '湖南省常德市');

2.向score表插入记录如下:

mysql> insert into score values (null, 901, '计算机', 98);

mysql> insert into score values (null, 901, '英语', 80);

mysql> insert into score values (null, 902, '计算机', 65);

mysql> insert into score values (null, 902, '中文', 88);

mysql> insert into score values (null, 903, '中文', 94);

mysql> insert into score values (null, 904, '计算机', 78);

mysql> insert into score values (null, 905, '英语', 85);

mysql> insert into score values (null, 906, '计算机', 94);

mysql> insert into score values (null, 906, '英语', 83);

三、查询

1.分别查询student表和score表的所有记录

mysql> select * from student;

mysql> select * from score;

2.查询student表的第2条到5条记录

mysql> select * from student limit 1, 4;

3.从student表中查询计算机系和英语系的学生的信息

mysql> select * from student where department in ('计算机系', '英语系');

4.从student表中查询年龄小于22岁的学生信息

mysql> select * from student where (year(curdate()) - birth_year) < 22;

5.从student表中查询每个院系有多少人

mysql> select department, count(*) as student_count from student group by department;

6.从score表中查询每个科目的最高分

mysql> select c_name, max(grade) as highest_grade from score group by c_name;

7.查询李广昌的考试科目(c_name)和考试成绩(grade)

mysql> select c_name, grade from score where stu_id = (select id from student where name = '李广昌');

8.用连接的方式查询所有学生的信息和考试信息

mysql> select s.*, sc.c_name, sc.grade

-> from student s

-> join score sc on s.id = sc.stu_id;

9.计算每个学生的总成绩

mysql> select stu_id, sum(grade) as total_grade from score group by stu_id;

10.计算每个考试科目的平均成绩

mysql> select c_name, avg(grade) as average_grade from score group by c_name;

11.查询计算机成绩低于95的学生信息

mysql> select s.* from student s join score sc on s.id = sc.stu_id where sc.c_name = '计算机' and sc.grade < 95;

12.将计算机考试成绩按从高到低进行排序

mysql> select * from score where c_name = '计算机' order by grade desc;

13.从student表和score表中查询出学生的学号,然后合并查询结果

mysql> select id as stu_id from student union select stu_id from score;

14.查询姓张或者姓王的同学的姓名、院系和考试科目及成绩

mysql> select s.name, s.department, sc.c_name, sc.grade from student s join score sc on s.id = sc.stu_id where s.name like '张%' or s.name like '王%';

15.查询都是湖南的学生的姓名、年龄、院系和考试科目及成绩

mysql> select s.name, (year(curdate()) - s.birth_year) as age, s.department, sc.c_name, sc.grade from student s join score sc on s.id = sc.stu_id where s.address like '湖南%';

相关推荐
Albert Tan5 分钟前
Oracle 10G DG 修复从库-磁盘空间爆满导致从库无法工作
数据库·oracle
好记忆不如烂笔头abc11 分钟前
oracle-blob导出,在ob导入失败
大数据·数据库·python
私风翼32 分钟前
SQL注入:基于GET和POST的报错注入详解
数据库·sql
残花月伴37 分钟前
linux详细安装/配置(mysql/nginx/tomcat)
linux·mysql·nginx
好龙75751 小时前
MySQL 高级查询:JOIN、子查询、窗口函数
数据库·mysql
西木Qi1 小时前
Redis数据迁移同步
数据库·redis·缓存
暗恋 懒羊羊1 小时前
【MySQL】数据类型
数据库·mysql
逸狼2 小时前
【JavaEE进阶】MyBatis(4)-完善图书管理系统
数据库·java-ee·mybatis
小Tomkk3 小时前
mysql 最长连续登录天数解析
数据库·mysql
快来卷java4 小时前
深入剖析雪花算法:分布式ID生成的核心方案
java·数据库·redis·分布式·算法·缓存·dreamweaver