案例:创建一个学生管理系统(PXSCJ1)的数据库(SQL)

这篇具有很好参考价值的文章主要介绍了案例:创建一个学生管理系统(PXSCJ1)的数据库(SQL)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、新建数据库:PXSCJ1

--创建数据库

CREATE DATABASE PXSCJ1 

案例:创建一个学生管理系统(PXSCJ1)的数据库(SQL)

--创建并确认属性:XSB、KCB、CJB(以下代码用于2、3、4、5题)
use PXSCJ1
create table XSB
(学号   char(6)   primary key check(学号 like '[0][8][1][12][0-9][0-9]')  not null,             
 姓名	char(8)   not null, 
 性别   bit  default 1 not null ,
 出生日期 date check(出生日期 >'1980-01-01') ,
 专业   char(12) check(专业 in('计算机','通信工程')),           
 总学分 int default 0 check(总学分<=160 and 总学分>=0),
 备注   varchar(500)
)

create table KCB
(课程号   char(3)   primary key check(课程号>='100'and 课程号<='299') not null,           
 课程名	char(16)  check(课程名 in('计算机基础','程序设计与语言','离散数学')) not null,
 开课学期   tinyint  default '1' check(开课学期>=1 and 开课学期<=8),
 学时 tinyint check(学时>=1 and 学时<=80),
 学分 tinyint check(学分>=1 and 学分 <=10)   not null,      
 )

create table CJB
(学号   char(6)    check(学号>=0 and 学号<='100') not null,           
 课程号	char(3)    not null,
  primary key (学号,课程号), 
 foreign key(学号) references XSB (学号), 
 foreign key(课程号) references  KCB (课程号),    
 成绩  int  default 0 ,   
 )

2、创建并确认属性:XSB、KCB、CJB

代码见上!

案例:创建一个学生管理系统(PXSCJ1)的数据库(SQL)

3、设计每个表的实体完整性:键、索引

代码见上!

案例:创建一个学生管理系统(PXSCJ1)的数据库(SQL)

 案例:创建一个学生管理系统(PXSCJ1)的数据库(SQL)

 4、设计每个表的域完整性:CHECK语句

代码见上!

案例:创建一个学生管理系统(PXSCJ1)的数据库(SQL)

 案例:创建一个学生管理系统(PXSCJ1)的数据库(SQL)

 案例:创建一个学生管理系统(PXSCJ1)的数据库(SQL)

 5、建立表与表之间的参照完整性:XSB与CJB,KCB与CJB

代码见上!

案例:创建一个学生管理系统(PXSCJ1)的数据库(SQL)

6、输入表数据:增加、删除、修改记录

增加和修改记录:

--增加和修改记录信息

use PXSCJ1

insert into XSB(学号,姓名,性别,出生日期,专业,总学分,备注)
values('081101','王林',1,'1990-02-10','计算机',50,null),
('081103','王燕',0,'1989-10-06','计算机',50,null),
('081108','林一帆',1,'1989-08-05','计算机',52,'已提前修完一门课'),
('081202','王林',1,'1989-01-29','通信工程',40,'有一门课不及格,待补考'),
('081204','马琳琳',0,'1989-02-10','通信工程',42,null)

insert into KCB(课程号,课程名,开课学期,学时,学分)
values('101','计算机基础',1,80,5),
('102','程序设计与语言',2,68,4),
('206','离散数学',4,68,4)

insert into CJB(学号,课程号,成绩)
values('081101',101,80),
('081101','102',78),
('081101','206',76),
('081103','101',62),
('081103','102',70),
('081108','101',85),
('081108','102',64),
('081108','206',87),
('081202','101',65),
('081204','101',91)

案例:创建一个学生管理系统(PXSCJ1)的数据库(SQL)

删除:

--删除学生表中总学分为40的学生
use PXSCJ1
delete from XSB
where (总学分=40)

案例:创建一个学生管理系统(PXSCJ1)的数据库(SQL)

7、进行查询操作

7.1查询计算机专业的学生信息:

--查询计算机专业的学生信息
SELECT * FROM XSB WHERE 专业='计算机'

案例:创建一个学生管理系统(PXSCJ1)的数据库(SQL)

7.2查询CJB表中的学号,课程号,成绩,其中成绩空显示“尚未考试”,<60不及格, =<60---<70及格,=<70---<80中,=<80---<90良,=<90---<100优秀。列标题别名为“成绩等级”:

--查询CJB表中的学号,课程号,成绩,其中成绩空显示“尚未考试”,<60不及格, =<60---<70及格,=<70---<80中,=<80---<90良,=<90---<100优秀。列标题别名为“成绩等级”:

SELECT 学号,课程号,成绩等级=
     CASE
	       WHEN 成绩 IS NULL THEN '尚未考试'
		   WHEN 成绩<60 THEN '不及格'
		   WHEN 成绩>=60 and 成绩<70 THEN '及格'
		   WHEN 成绩>=70 and 成绩<80 THEN '中'
		   WHEN 成绩>=80 and 成绩<90 THEN '良'
		   WHEN 成绩>=90 and 成绩<100 THEN '优秀'
		   ELSE '输入错误'
	 END
	 FROM CJB

案例:创建一个学生管理系统(PXSCJ1)的数据库(SQL)

 7.3对XSB表选择姓名,专业和总学分,返回结果集的前6行:

--对XSB表选择姓名,专业和总学分,返回结果集的前6行:


select top 6 姓名,专业,总学分
from XSB

案例:创建一个学生管理系统(PXSCJ1)的数据库(SQL)

7.4输出成绩的max,min,sum,avg,count五个函数,写出合适的列名:

--输出成绩的max,min,sum,avg,count五个函数,写出合适的列名:

SELECT AVG(成绩) AS '平均分', SUM(成绩) AS '总和', MAX(成绩) AS '最高分',MIN(成绩) AS '最底分',COUNT(成绩) AS '成绩个数'
       FROM CJB

案例:创建一个学生管理系统(PXSCJ1)的数据库(SQL)

7.5查询XSB表中姓“王”且双名的学生情况:

--查询XSB表中姓“王”且双名的学生情况:

SELECT * FROM XSB 
WHERE 姓名 LIKE '王__'

案例:创建一个学生管理系统(PXSCJ1)的数据库(SQL)

7.6查询未选修离散数学的学生情况

--查询未选修离散数学的学生情况

SELECT * FROM XSB 
 WHERE 学号 IN 
 (
SELECT 学号 FROM CJB 
 WHERE 课程号 IN        
    (	
	SELECT 课程号 FROM KCB
      WHERE 课程名 != '离散数学'))

案例:创建一个学生管理系统(PXSCJ1)的数据库(SQL)

7.7查询206号课程成绩不低于101号课程最低成绩的学生学号

--查找206号课程成绩不低于101号课程最低成绩的学生学号

SELECT 学号,成绩 
  FROM CJB
  WHERE 课程号='206' AND 成绩!<
  (SELECT MIN(成绩)
          FROM CJB
       WHERE 课程号='101')

案例:创建一个学生管理系统(PXSCJ1)的数据库(SQL)

7.8查找选修了206号课程且成绩在80分以上的学生姓名成绩 

--查找选修了206号课程且成绩在80分以上的学生姓名及成绩 

 SELECT XSB.姓名,成绩
  FROM XSB,CJB
  WHERE XSB.学号=CJB.学号 AND  课程号='206'  AND 成绩>80

案例:创建一个学生管理系统(PXSCJ1)的数据库(SQL)

7.9查询每个同学选了几门课,并输出选修大于2的记录

--每个同学选了几门课 
SELECT 学号,COUNT(课程号) AS '选课门数' FROM CJB GROUP BY 学号


--并输出选修大于2的记录
SELECT 学号,COUNT(课程号) AS '选课门数' FROM CJB GROUP BY 学号  HAVING COUNT(学号)>=2

案例:创建一个学生管理系统(PXSCJ1)的数据库(SQL)

7.10 将计算机专业的学生的“计算机基础”课程成绩按照降序排列,成绩相同的的再按姓名升序排列:

--将计算机专业的学生的“计算机基础”课程成绩按照降序排列,成绩相同的的再按姓名升序排列:

SELECT XSB.学号,姓名,KCB.课程名,CJB.成绩
FROM XSB,KCB,CJB
WHERE XSB.学号=CJB.学号 AND CJB.课程号 = KCB.课程号 AND  课程名='计算机基础'
ORDER BY 成绩 DESC

案例:创建一个学生管理系统(PXSCJ1)的数据库(SQL)

8、表上建立视图

8.1在XSB上创建计算机专业的视图

--在XSB上创建计算机专业的视图

CREATE  VIEW  CS_XS
	AS 
			SELECT  *
			FROM  XSB
WHERE 专业= '计算机' 

案例:创建一个学生管理系统(PXSCJ1)的数据库(SQL)

8.2使用XSB和CJB创建计算机专业的成绩视图

--使用XSB和CJB创建计算机专业的成绩视图


CREATE  VIEW  CS_KC
	AS 
			SELECT  XSB.学号,课程号,成绩
			FROM  XSB,CJB
			WHERE 专业= '计算机' AND XSB.学号=CJB.学号
WITH CHECK OPTION

案例:创建一个学生管理系统(PXSCJ1)的数据库(SQL)

9、游标

9.1建立游标指向选修计算机基础课程的课程号、课程名、成绩信息:

--建立游标指向选修计算机基础课程的课程号、课程名、成绩信息:

DECLARE KC_CUR3 CURSOR
 LOCAL SCROLL SCROLL_LOCKS
 FOR
SELECT KCB.课程号,课程名,成绩
  FROM KCB,CJB
  WHERE KCB.课程号=CJB.课程号 AND 课程名 = '计算机基础'
 FOR UPDATE OF 成绩

 案例:创建一个学生管理系统(PXSCJ1)的数据库(SQL)

9.2使用游标输出所行

方式一:

--使用游标输出所行

DECLARE KC_CUR3 CURSOR
 LOCAL SCROLL SCROLL_LOCKS
 FOR
SELECT KCB.课程号,课程名,成绩
  FROM KCB,CJB
  WHERE KCB.课程号=CJB.课程号 AND 课程名 = '计算机基础'
 FOR UPDATE OF 成绩
OPEN KC_CUR3
DECLARE @ckh CHAR(6)
DECLARE @kcm CHAR(6)
DECLARE @cj INT
FETCH FIRST FROM KC_CUR3 INTO @ckh,@kcm,@cj
WHILE(@@FETCH_STATUS=0)
BEGIN
SELECT @ckh,@kcm,CAST(@cj AS CHAR(2)) ----CONVER(CHAR(2),@zxf)
FETCH NEXT FROM KC_CUR3 INTO @ckh,@kcm,@cj
END 

案例:创建一个学生管理系统(PXSCJ1)的数据库(SQL)

 方式二:

方式二:
DECLARE KC_CUR3 CURSOR
 LOCAL SCROLL SCROLL_LOCKS
 FOR
SELECT KCB.课程号,课程名,成绩
  FROM KCB,CJB
  WHERE KCB.课程号=CJB.课程号 AND 课程名 = '计算机基础'
 FOR UPDATE OF 成绩
OPEN KC_CUR3
DECLARE @ckh CHAR(6)
DECLARE @kcm CHAR(6)
DECLARE @cj INT
FETCH FIRST FROM KC_CUR3 INTO @ckh,@kcm,@cj
WHILE(@@FETCH_STATUS=0)
BEGIN
PRINT '课程号:'+@ckh
PRINT '课程名:'+@kcm
PRINT '成绩:'+CAST(@cj AS CHAR(2)) ----CONVER(CHAR(2),@zxf)
PRINT '--------------'
FETCH NEXT FROM KC_CUR3 INTO @ckh,@kcm,@cj
END 

案例:创建一个学生管理系统(PXSCJ1)的数据库(SQL)

9.3使用游标把数据集的成绩加10:

方式一:

--使用游标把数据集的成绩加10

DECLARE KC_CUR3 CURSOR
 LOCAL SCROLL SCROLL_LOCKS
 FOR
SELECT KCB.课程号,课程名,成绩
  FROM KCB,CJB
  WHERE KCB.课程号=CJB.课程号 AND 课程名 = '计算机基础'
 FOR UPDATE OF 成绩

OPEN KC_CUR3
FETCH FIRST  FROM KC_CUR3  
WHILE(@@FETCH_STATUS=0)
BEGIN
UPDATE CJB SET 成绩=成绩+10 WHERE CURRENT OF KC_CUR3
FETCH NEXT  FROM KC_CUR3  
END 

 案例:创建一个学生管理系统(PXSCJ1)的数据库(SQL)

方式二:

方式二:

DECLARE KC_CUR3 CURSOR
 LOCAL SCROLL SCROLL_LOCKS
 FOR
SELECT KCB.课程号,课程名,成绩
  FROM KCB,CJB
  WHERE KCB.课程号=CJB.课程号 AND 课程名 = '计算机基础'
 FOR UPDATE OF 成绩
OPEN KC_CUR3
DECLARE @ckh CHAR(6)
DECLARE @kcm CHAR(6)
DECLARE @cj INT
FETCH FIRST FROM KC_CUR3 INTO @ckh,@kcm,@cj
WHILE(@@FETCH_STATUS=0)
BEGIN
PRINT '课程号:'+@ckh
PRINT '课程名:'+@kcm
PRINT '成绩:'+CAST(@cj+10 AS CHAR(2)) ----CONVER(CHAR(2),@zxf)
PRINT '--------------'
FETCH NEXT FROM KC_CUR3 INTO @ckh,@kcm,@cj
END 

案例:创建一个学生管理系统(PXSCJ1)的数据库(SQL)

 9.4使用游标删除数据集的所有行

--使用游标删除数据集的所有行

DECLARE KC_CUR3 CURSOR
 LOCAL SCROLL SCROLL_LOCKS
 FOR
SELECT KCB.课程号,课程名,成绩
  FROM KCB,CJB
  WHERE KCB.课程号=CJB.课程号 AND 课程名 = '计算机基础'
 FOR UPDATE OF 成绩

OPEN KC_CUR3
FETCH FIRST  FROM KC_CUR3  
WHILE(@@FETCH_STATUS=0)
BEGIN
DELETE FROM CJB WHERE CURRENT OF KC_CUR3
FETCH NEXT  FROM KC_CUR3  
END 

 案例:创建一个学生管理系统(PXSCJ1)的数据库(SQL)案例:创建一个学生管理系统(PXSCJ1)的数据库(SQL)

10、将课程号为101、学号为081101的成绩循环修改到大于等于94,每次加5,并输出循环次数。

-- 将课程号为101、学号为081101的成绩循环修改到大于等于94,每次加5,并输出循环次数。
 
DECLARE @num INT
SET @num=0
WHILE (SELECT 成绩 FROM CJB WHERE 学号='081101' and 课程号 = '101')<=94
BEGIN
	UPDATE CJB SET 成绩=成绩+5 WHERE 学号='081101' and 课程号 = '101'
	SET @num=@num+1
END
SELECT @num AS 循环次数 

案例:创建一个学生管理系统(PXSCJ1)的数据库(SQL)

 文章来源地址https://www.toymoban.com/news/detail-498604.html

到了这里,关于案例:创建一个学生管理系统(PXSCJ1)的数据库(SQL)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python项目开发案例————学生信息管理系统(附源码)

              本文使用Python语言开发了一个学生信息管理系统,该系统可以帮助教师快速录入学生的信息,并且对学生的信息进行基本的增、删、改、查操作;还可以实时地将学生的信息保存到磁盘文件中。         为了顺应互联网时代用户的获取数据需求,学生信息管理系统

    2024年02月11日
    浏览(51)
  • 用JAVA实现一个学生管理系统和登录系统

    目录 一、学生管理系统: 1.创建学生对象Student的javabean类: 2.创建出学生管理系统 StudentSystem类: 1.addStudent方法:添加学生 2.ifOne方法,用来判断我们输入的学生id是否唯一(如果存在学生就不用再添加此学生): 3.queryStudent方法,把我们表中的所有学生显示出来 4.getIndex()如果

    2024年02月11日
    浏览(47)
  • Java连接数据库(学生管理系统案例,可以实现增删改查)

    首先,需要做一个准备工作 ——下载jar包,这个包是用来支持数据库的连接的 官网的下载链接:MySQL :: Download Connector/J 点击链接进入页面: 选择画红框的下载按钮。 与此同时,打开IDEA开发工具,在当前项目目录下新建一个lib目录文件夹用来存放第三方jar包,这样做方便管

    2024年02月07日
    浏览(55)
  • 使用spring boot写一个学生管理系统

    目录 前言 二、博客地址 三、实现步骤 3.1 创建Spring Boot 项目 3.2连接数据库 3.3代码层级 3.3.1model层 3.3.2Repository层 3.3.3service层 3.3.4控制层controller 3.3.5视图层 3.3.6BootStrap 4.1登录 4.2增 4.3 删 4.4查 4.5改 4.6分页 总结 学生管理系统是一种常见的应用程序,它可以用于管理学生、学院

    2024年02月02日
    浏览(36)
  • 用Java实现一个学生管理系统(附源码)

    目录 一、题目要求  二、设计思路 (2)代表课程的类——Course类 (3)具体功能实现类——Function类 (4)测试类——Test类 三、代码实现 (1)Student.java文件 (2)Course.java文件 (3)Function.java文件 (4)Test.java文件         编写一个学生成绩管理系统。学生的属性包括学

    2024年02月08日
    浏览(41)
  • JSP设计一个简单的学生成绩管理系统

    XsCjZj.jsp      XsCjZj0.jsp XsCx.jsp     XsWh.jsp XsXq.jsp  XsXg.jsp   XsXg0.jsp XsSc.jsp   XsSc0.jsp  

    2024年02月11日
    浏览(46)
  • 用PHP写一个学生成绩管理系统-基础版

    在开始编写代码前,首先需要在MySQL数据库中创建一个名为student的表,并添加id、name、math、english、science五列,分别用于存储学生ID、姓名、数学成绩、英语成绩和科学成绩的数据。具体SQL命令如下: 接下来,我们使用PHP来实现一个学生成绩管理系统。首先创建一个名为ind

    2024年02月12日
    浏览(82)
  • 利用java和mysql数据库创建学生信息管理系统

    管理系统的使用可以大大提高我们的工作效率,给我们的生活带来极大的便利,因此我们在学习编程语言的时候大多是要学习和实现一个管理系统的创建的。 学生信息管理系统是进一步推进学生学籍管理规范化、电子化控制和管理学生信息的总要举措。系统针对学校学生信息

    2024年02月04日
    浏览(60)
  • ChatGPT实现用C语言写一个学生成绩管理系统

    随着ChatGPT爆火,大家都在使用ChatGPT来帮助自己提高效率,对于程序员来说使用它来写代码怎么样呢?今天尝试让ChatGPT,写了一个学生成绩管理系统。 问题是:使用C语言写一个学生成绩管理系统,要求使用链表,实现增删改查功能。 下面是ChatGPT写的代码,用时不到30秒,速

    2023年04月13日
    浏览(56)
  • 学生管理系统-课后程序(JAVA基础案例教程-黑马程序员编著-第六章-课后作业)

    【案例6-2】 学生管理系统 【案例介绍】 1.任务描述 在一所学校中,对学生人员流动的管理是很麻烦的,本案例要求编写一个学生管理系统,实现对学生信息的添加、删除、修改和查询功能。每个功能的具体要求如下: 系统的首页:用于显示系统所有的操作,并根据用户在控

    2024年02月03日
    浏览(64)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包