复制
收藏
提问
简洁

1、创建数据库admin,创建student、score表 Sutdent表的定义: 字段名 字段描述 数据类型 主键 非空 自增 Id 学号 INT(10) 是 是 是 Name 姓名 VARCHAR(20) 是 Sex 性别 VARCHAR(4) Birth 出生年份 YEAR Department 院系 VARCHAR(20) 是 Address 家庭住址 VARCHAR(50) Score表的定义: 字段名  字段描述 数据类型 主键 非空 唯一 自增 外键 Id 编号 INT(10) 是 是 是 是 否 Stu_id 学号 INT(10) 否 是 否 否  是 C_name 课程名 VARCHAR(20) 否 否 否 否 否 Grade 分数 INT(10) 否 否 否 否 否 level 等级 VARCHAR(4) 否 否 否 否 否 2.为student表和score表增加记录 向student表插入记录的INSERT语句如下 901 张老大 男 2005 计算机系 北京市海淀区 902 张老二 男 2001 中文系 北京市昌平区 903 张三 女 2004 中文系 湖南省永州市 904 李四 男 2008 英语系 辽宁省阜新市 905 王五 女 2000 英语系 福建省厦门市 906 王六 男 2011 计算机系 湖南省衡阳市 向score表插入记录的INSERT语句如下: 1 901 计算机 98 2 901 英语 80 3 902 计算机 65 4 902 中文 88 5 903 中文 95 6 904 计算机 70 7 904 英语 92 8 905 英语 94 9 906 计算机 90 10 906 英语 85 3.查询student表的第2条到4条记录 4.从student表查询所有学生的学号(id)、姓名(name)和院系(department)的信息 5.从student表中查询计算机系和英语系的学生的信息 6.从student表中查询年龄18~22岁的学生信息 7.从student表中查询每个院系有多少人 8.从score表中查询每个科目的最高分 9.查询李四的考试科目(c_name)和考试成绩(grade) 10.用连接的方式查询所有学生的信息和考试信息 11.计算每个学生的总成绩 12.计算每个考试科目的平均成绩   13.查询计算机成绩低于95的学生信息 14.查询同时参加计算机和英语考试的学生的信息 15.将计算机考试成绩按从高到低进行排序 16.查询没有参加计算机考试的学生的信息 17.编写一个过程sc_garde,输入学生的姓名和课程名,确定同学该课程的等级,并更新score表中的相应level字段,并调用过程确定王六,计算机的等级。等级划分为优秀(>=90)、良好(>=80)、及格(>=60)、不及格(<60)。 18.编写一个存储函数f_avg,实现的功能是根据学生姓名返回其平均成绩,并查询“张三”的平均成绩。 19.创建一个触发器del_stu,当删除表student表中某位学生的信息时,同时将score表中与该图书有关的数据全部删除。

e457c6a9b
2个月前
全网
文档
学术
百科
知识库
时间不限
自动
回答简洁模式
深入研究一些

创建数据库和表

首先,创建数据库admin,然后创建studentscore表。以下是创建这两个表的SQL语句:

CREATE DATABASE admin;
USE admin;

CREATE TABLE student (
    Id INT(10) PRIMARY KEY NOT NULL AUTO_INCREMENT,
    Name VARCHAR(20) NOT NULL,
    Sex VARCHAR(4),
    Birth YEAR,
    Department VARCHAR(20) NOT NULL,
    Address VARCHAR(50)
);

CREATE TABLE score (
    Id INT(10) PRIMARY KEY NOT NULL AUTO_INCREMENT,
    Stu_id INT(10) NOT NULL,
    C_name VARCHAR(20),
    Grade INT(10),
    level VARCHAR(4),
    FOREIGN KEY (Stu_id) REFERENCES student(Id)
);

插入记录

student表插入记录的SQL语句如下:

INSERT INTO student (Id, Name, Sex, Birth, Department, Address) VALUES
(901, '张老大', '男', 2005, '计算机系', '北京市海淀区'),
(902, '张老二', '男', 2001, '中文系', '北京市昌平区'),
(903, '张三', '女', 2004, '中文系', '湖南省永州市'),
(904, '李四', '男', 2008, '英语系', '辽宁省阜新市'),
(905, '王五', '女', 2000, '英语系', '福建省厦门市'),
(906, '王六', '男', 2011, '计算机系', '湖南省衡阳市');

score表插入记录的SQL语句如下:

INSERT INTO score (Id, Stu_id, C_name, Grade) VALUES
(1, 901, '计算机', 98),
(2, 901, '英语', 80),
(3, 902, '计算机', 65),
(4, 902, '中文', 88),
(5, 903, '中文', 95),
(6, 904, '计算机', 70),
(7, 904, '英语', 92),
(8, 905, '英语', 94),
(9, 906, '计算机', 90),
(10, 906, '英语', 85);

查询操作

以下是针对您提出的问题的查询SQL语句:

  1. 查询student表的第2条到第4条记录:
SELECT * FROM student LIMIT 1, 3;
  1. 查询所有学生的学号、姓名和院系信息:
SELECT Id, Name, Department FROM student;
  1. 查询计算机系和英语系的学生信息:
SELECT * FROM student WHERE Department IN ('计算机系', '英语系');
  1. 查询年龄在18到22岁的学生信息(假设当前年份为2024):
SELECT * FROM student WHERE Birth BETWEEN 2002 AND 2006;
  1. 查询每个院系的学生人数:
SELECT Department, COUNT(*) FROM student GROUP BY Department;
  1. 查询每个科目的最高分:
SELECT C_name, MAX(Grade) FROM score GROUP BY C_name;
  1. 查询李四的考试科目和考试成绩:
SELECT C_name, Grade FROM score WHERE Stu_id = (SELECT Id FROM student WHERE Name = '李四');
  1. 使用连接查询所有学生的信息和考试信息:
SELECT student.*, score.C_name, score.Grade
FROM student
LEFT JOIN score ON student.Id = score.Stu_id;
  1. 计算每个学生的总成绩:
SELECT Stu_id, SUM(Grade) FROM score GROUP BY Stu_id;
  1. 计算每个考试科目的平均成绩:
SELECT C_name, AVG(Grade) FROM score GROUP BY C_name;
  1. 查询计算机成绩低于95的学生信息:
SELECT student.*
FROM student
JOIN score ON student.Id = score.Stu_id
WHERE score.C_name = '计算机' AND score.Grade < 95;
  1. 查询同时参加计算机和英语考试的学生信息:
SELECT student.*
FROM student
WHERE Id IN (
    SELECT Stu_id FROM score WHERE C_name = '计算机'
    AND Stu_id IN (
        SELECT Stu_id FROM score WHERE C_name = '英语'
    )
);
  1. 将计算机考试成绩按从高到低进行排序:
SELECT Stu_id, Grade
FROM score
WHERE C_name = '计算机'
ORDER BY Grade DESC;
你觉得结果怎么样?
如何创建数据库和表
如何向数据库表中插入数据
SQL查询语句的基本用法
如何使用SQL进行数据排序和筛选
SQL中如何进行分组统计
如何使用SQL进行连接查询

以上内容由AI搜集生成,仅供参考

在线客服