使用SQL语句创建一个存储过程,要求根据男、女生人数输出不同的信息。如果男生人数大于女生,输出“男比女多”,否则输出“女比男多”。
时间: 2024-03-26 14:34:09 浏览: 48
好的,以下是根据您的要求编写的SQL存储过程代码:
```
CREATE PROCEDURE CompareGenderCount
AS
BEGIN
DECLARE @MaleCount INT
DECLARE @FemaleCount INT
SELECT @MaleCount = COUNT(*) FROM Students WHERE Gender = 'Male'
SELECT @FemaleCount = COUNT(*) FROM Students WHERE Gender = 'Female'
IF @MaleCount > @FemaleCount
SELECT '男比女多' AS Result
ELSE
SELECT '女比男多' AS Result
END
```
上面的代码创建了一个名为 `CompareGenderCount` 的存储过程,该存储过程首先查询学生表中男、女生的人数,然后根据比较结果输出不同的信息。您可以根据实际情况修改表名和字段名。
相关问题
1) 使用 SQL 语句创建一个存储过程,要求根据男女生人数来输出不同的信息。如果男生人 数大于女生人数,输出“男比女多”,否则输出“女比男多”,存储过程名称为 ShowPerson。 2) 查询某学生(根据学号查询)某学期选修课程的成绩,结果显示为学号、姓名、课程编 号、成绩、学期,存储过程名为“查询成绩”。 3) 创建存储过程 cjcx,根据输入的课程名称查询该课程的平均成绩、最高分和最低分。执 行存储过程 cjcx,查询“管理学”课程的信息。 4) 创建存储过程“查询学生信息”,如果给出姓名,则查询指定姓名的学生详细信息(包 括学生信息和班级信息);如果不给出姓名,则查询所有学生的详细信息(包括学生信 息和班级信息)。 5) 创建存储过程“学生成绩综合查询”,参数为姓名、课程名称及学期,显示结果为学号、 姓名、课程名称、成绩、学期。
1) 创建存储过程 ShowPerson:
```
CREATE PROCEDURE ShowPerson
AS
BEGIN
DECLARE @maleCount INT, @femaleCount INT
SELECT @maleCount = COUNT(*) FROM Student WHERE Gender = '男'
SELECT @femaleCount = COUNT(*) FROM Student WHERE Gender = '女'
IF @maleCount > @femaleCount
PRINT '男比女多'
ELSE
PRINT '女比男多'
END
```
2) 创建存储过程查询成绩:
```
CREATE PROCEDURE 查询成绩
@studentId INT,
@semester VARCHAR(50)
AS
BEGIN
SELECT Student.Id AS 学号, Student.Name AS 姓名, Course.Id AS 课程编号, Score.Score AS 成绩, Score.Semester AS 学期
FROM Student
JOIN Score ON Student.Id = Score.StudentId
JOIN Course ON Score.CourseId = Course.Id
WHERE Student.Id = @studentId AND Score.Semester = @semester
END
```
3) 创建存储过程 cjcx:
```
CREATE PROCEDURE cjcx
@courseName VARCHAR(50)
AS
BEGIN
SELECT AVG(Score.Score) AS 平均成绩, MAX(Score.Score) AS 最高分, MIN(Score.Score) AS 最低分
FROM Score
JOIN Course ON Score.CourseId = Course.Id
WHERE Course.Name = @courseName
END
```
执行存储过程 cjcx,查询“管理学”课程的信息:
```
EXEC cjcx '管理学'
```
4) 创建存储过程查询学生信息:
```
CREATE PROCEDURE 查询学生信息
@name VARCHAR(50) = NULL
AS
BEGIN
IF @name IS NULL
SELECT Student.Id AS 学号, Student.Name AS 姓名, Student.Gender AS 性别, Student.Birthday AS 生日, Class.Name AS 班级
FROM Student
JOIN Class ON Student.ClassId = Class.Id
ELSE
SELECT Student.Id AS 学号, Student.Name AS 姓名, Student.Gender AS 性别, Student.Birthday AS 生日, Class.Name AS 班级
FROM Student
JOIN Class ON Student.ClassId = Class.Id
WHERE Student.Name = @name
END
```
5) 创建存储过程学生成绩综合查询:
```
CREATE PROCEDURE 学生成绩综合查询
@name VARCHAR(50),
@courseName VARCHAR(50),
@semester VARCHAR(50)
AS
BEGIN
SELECT Student.Id AS 学号, Student.Name AS 姓名, Course.Name AS 课程名称, Score.Score AS 成绩, Score.Semester AS 学期
FROM Student
JOIN Score ON Student.Id = Score.StudentId
JOIN Course ON Score.CourseId = Course.Id
WHERE Student.Name = @name AND Course.Name = @courseName AND Score.Semester = @semester
END
```
用sql 语句,统计一个班的学生总人数,统计一个班里的男生总人数,统计一个班里的女生总人数,统计一个班里成绩大于70分的人数。
可以使用以下SQL语句实现:
统计班级总人数:
```
SELECT COUNT(*) FROM students;
```
其中,`students`为存储学生信息的表。
统计班级男生总人数:
```
SELECT COUNT(*) FROM students WHERE gender = '男';
```
其中,`gender`为存储学生性别的字段。
统计班级女生总人数:
```
SELECT COUNT(*) FROM students WHERE gender = '女';
```
统计班级成绩大于70分的人数:
```
SELECT COUNT(*) FROM students WHERE score > 70;
```
其中,`score`为存储学生成绩的字段。
阅读全文