1. sql创建一个存储过程,根据指定的班级,得到该班级的人数的语句怎么写
参考如下:
delimiter$$
DropPROCEDUREIFEXISTSgetCount;
CREATEPROCEDUREgetCount(INv_classNameVARCHAR(30),OUTv_countINTEGER)
BEGIN
declareicountinteger;
selectcount(*)intoicountfrom班级表wherebanji=v_className
END$$
delimiter;
2. 写出完成下列要求的T-SQL语句
-创建学生表,学号为主键,性别默认值为‘男’,学号和姓名要求非空。
use 学生选课
create table 学生表
(学号 char(10) PRIMARY KEY NOT NULL,
姓名 varchar(20) NOT NULL,
性别 char(2) DEFAULT '男',
专业 varchar(50),
籍贯 varchar(40),
出生日期 datetime);
--向选课表插入数据('20180102’,’1002’,89)
INSERT INTO 选课表
VALUES ('20180102','1002',89);
--修改学生表,将“陈明”的出生日期改为“1998-2-12”
UPDATE 学生表
SET 出生日期='1998-2-12'
WHERE 姓名='陈明';
--查询选课成绩不及格的学生的姓名、课程名和成绩,按成绩降序排序。
select 姓名,课程名,分数 as 成绩
FROM 学生表 as a, 选课表 as b,课程表 as c
where a.学号=b.学号 AND b.课程号=c.课程号 AND
b.分数<60
ORDER BY 分数 DESC;
--查询学生表,分别统计男女生人数。
select 性别,count(*) 人数
from 学生表
GROUP BY 性别;
--创建视图“学生_view”,查询输出所有学生的姓名、性别、专业。
create view 学生_view
AS select 姓名,性别,专业
from 学生表;
--创建存储过程“选课统计_proc”,查询选课表,统计输出每门课程的所选学生人数及最高分,并执行该存储过程。
CREATE PROCEDURE 选课统计_proc
AS
BEGIN
SELECT 课程号,COUNT(学号) AS 所选学生人数,MAX(分数) AS 最高分
FROM 选课表
GROUP BY 课程号
END;
EXEC 选课统计_proc