`
xiangxingchina
  • 浏览: 523688 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

SQL基础实例(学生课程系统)

阅读更多

drop   table  student,course,score,teacher

CREATE   TABLE  STUDENT   -- 学生表
 (SNO  VARCHAR ( 3 NOT   NULL ,    -- 学号
  SNAME  nVARCHAR ( 4 NOT   NULL ,    -- 姓名
  SSEX  nVARCHAR ( 2 NOT   NULL ,     -- 性别
  SBIRTHDAY  DATETIME ,    -- 出生年月
  CLASS  VARCHAR ( 5 ))      -- 班级编号
go
CREATE   TABLE  COURSE        -- 课程表
 (CNO  VARCHAR ( 5 NOT   NULL ,         -- 课程ID
  CNAME  nVARCHAR ( 10 NOT   NULL ,     -- 课程名称
  TNO  VARCHAR ( 10 NOT   NULL )    -- 教师ID
go  
CREATE   TABLE  SCORE      -- 成绩表
 (SNO  VARCHAR ( 3 NOT   NULL ,     -- 成绩ID
  CNO  VARCHAR ( 5 NOT   NULL ,    -- 课程编号
  DEGREE NUMERIC( 10 1 NOT   NULL )      -- 分数
go  
CREATE   TABLE  TEACHER    -- 教师表
 (TNO  VARCHAR ( 3 NOT   NULL ,     -- 教师ID
  TNAME  nVARCHAR ( 4 NOT   NULL -- 教师姓名
  TSEX  nVARCHAR ( 2 NOT   NULL ,    -- 性别
  TBIRTHDAY  DATETIME   NOT   NULL -- 出生年月  
  PROF  nVARCHAR ( 6 ),  -- 级称
  DEPART  nVARCHAR ( 10 NOT   NULL )   -- 所属系部
go
INSERT   INTO  STUDENT (SNO,SNAME,SSEX,SBIRTHDAY,CLASS)  VALUES  ( 108  ,N ' 曾华 '  ,N ' '  , 1977 - 09 - 01 , ' 95033 ' );
INSERT   INTO  STUDENT (SNO,SNAME,SSEX,SBIRTHDAY,CLASS)  VALUES  ( 105  ,N ' 匡明 '  ,N ' '  , 1975 - 10 - 02 , ' 95031 ' );
INSERT   INTO  STUDENT (SNO,SNAME,SSEX,SBIRTHDAY,CLASS)  VALUES  ( 107  ,N ' 王丽 '  ,N ' '  , 1976 - 01 - 23 , ' 95033 ' );
INSERT   INTO  STUDENT (SNO,SNAME,SSEX,SBIRTHDAY,CLASS)  VALUES  ( 101  ,N ' 李军 '  ,N ' '  , 1976 - 02 - 20 , ' 95033 ' );
INSERT   INTO  STUDENT (SNO,SNAME,SSEX,SBIRTHDAY,CLASS)  VALUES  ( 109  ,N ' 王芳 '  ,N ' '  , 1975 - 02 - 10 , ' 95031 ' );
INSERT   INTO  STUDENT (SNO,SNAME,SSEX,SBIRTHDAY,CLASS)  VALUES  ( 103  ,N ' 陆君 '  ,N ' '  , 1974 - 06 - 03 , ' 95031 ' );
GO
INSERT   INTO  COURSE(CNO,CNAME,TNO) VALUES  ( ' 3-105 '  ,N ' 计算机导论 ' , 825 )
INSERT   INTO  COURSE(CNO,CNAME,TNO) VALUES  ( ' 3-245 '  ,N ' 操作系统 '  , 804 );
INSERT   INTO  COURSE(CNO,CNAME,TNO) VALUES  ( ' 6-166 '  ,N ' 数据电路 '  , 856 );
INSERT   INTO  COURSE(CNO,CNAME,TNO) VALUES  ( ' 9-888 '  ,N ' 高等数学 '  , 100 );
GO
INSERT   INTO  SCORE(SNO,CNO,DEGREE) VALUES  ( 103 , ' 3-245 ' , 86 );
INSERT   INTO  SCORE(SNO,CNO,DEGREE) VALUES  ( 105 , ' 3-245 ' , 75 );
INSERT   INTO  SCORE(SNO,CNO,DEGREE) VALUES  ( 109 , ' 3-245 ' , 68 );
INSERT   INTO  SCORE(SNO,CNO,DEGREE) VALUES  ( 103 , ' 3-105 ' , 92 );
INSERT   INTO  SCORE(SNO,CNO,DEGREE) VALUES  ( 105 , ' 3-105 ' , 88 );
INSERT   INTO  SCORE(SNO,CNO,DEGREE) VALUES  ( 109 , ' 3-105 ' , 76 );
INSERT   INTO  SCORE(SNO,CNO,DEGREE) VALUES  ( 101 , ' 3-105 ' , 64 );
INSERT   INTO  SCORE(SNO,CNO,DEGREE) VALUES  ( 107 , ' 3-105 ' , 91 );
INSERT   INTO  SCORE(SNO,CNO,DEGREE) VALUES  ( 108 , ' 3-105 ' , 78 );
INSERT   INTO  SCORE(SNO,CNO,DEGREE) VALUES  ( 101 , ' 6-166 ' , 85 );
INSERT   INTO  SCORE(SNO,CNO,DEGREE) VALUES  ( 107 , ' 6-166 ' , 79 );
INSERT   INTO  SCORE(SNO,CNO,DEGREE) VALUES  ( 108 , ' 6-166 ' , 80 );
INSERT   INTO  SCORE(SNO,CNO,DEGREE) VALUES  ( 105 , ' 6-166 ' , 82 );
GO
INSERT   INTO  TEACHER(TNO,TNAME,TSEX,TBIRTHDAY,PROF,DEPART) 
    
VALUES  ( 804 ,N ' 李诚 ' ,N ' ' , ' 1958-12-02 ' ,N ' 副教授 ' ,N ' 计算机系 ' );
INSERT   INTO  TEACHER(TNO,TNAME,TSEX,TBIRTHDAY,PROF,DEPART) 
    
VALUES  ( 856 ,N ' 张旭 ' ,N ' ' , ' 1969-03-12 ' ,N ' 讲师 ' ,N ' 电子工程系 ' );
INSERT   INTO  TEACHER(TNO,TNAME,TSEX,TBIRTHDAY,PROF,DEPART)
    
VALUES  ( 825 ,N ' 王萍 ' ,N ' ' , ' 1972-05-05 ' ,N ' 助教 ' ,N ' 计算机系 ' );
INSERT   INTO  TEACHER(TNO,TNAME,TSEX,TBIRTHDAY,PROF,DEPART) 
    
VALUES  ( 831 ,N ' 刘冰 ' ,N ' ' , ' 1977-08-14 ' ,N ' 助教 ' ,N ' 电子工程系 ' );


go  
-- 1、 查询Student表中的所有记录的Sname、Ssex和Class列。
select  sname,ssex,class  from  student
-- 2、 查询教师所有的单位即不重复的Depart列。
select   distinct  depart  from  teacher
-- 3、 查询Student表的所有记录。
select   *   from  student
-- 4、 查询Score表中成绩在60到80之间的所有记录。
select   *   from  score  where  degree  between   60   and   80
-- 5、 查询Score表中成绩为85,86或88的记录。
select   *   from  score  where  degree  in  ( 85 , 86 , 88 )

select   *   from  score  where  degree  = 85   or  degree  =   86   or  degree  =   88
-- 6、 查询Student表中“95031”班或性别为“女”的同学记录。
select   *   from  student  where  class  = ' 95031 '   or  ssex =  N ' '

-- 7、 以Class降序查询Student表的所有记录。
select   *   from  student  order   by  Class  DESC
-- 8、 以Cno升序、Degree降序查询Score表的所有记录。
select   *   from  score  order   by  Cno  ASC ,Degree  DESC
-- 9、 查询“95031”班的学生人数。
select   count ( * from  student  where  class  =   ' 95031 '
-- 10、查询Score表中的最高分的学生学号和课程号。
select   distinct  s.Sno,c.Cno  from  student  as  s,course  as  c ,score  as  sc 
where  s.sno = ( select  sno  from  score  where  degree  =  ( select   max (degree)  from  score))
and  c.cno  =  ( select  cno  from  score  where  degree  =  ( select   max (degree)  from  score))

-- 11、查询‘3-105’号课程的平均分。
select   avg (degree)  from  score  where  cno  =   ' 3-105 '
-- 12、查询Score表中至少有5名学生选修的并以3开头的课程的平均分数。
select   avg (degree)  from  score  where  cno  like   ' 3% '   group   by  Cno  having   count ( * ) >= 5
-- 13、查询最低分大于70,最高分小于90的Sno列。
select  sno  from  score  group   by  sno  having   min (degree)  >   70   and   max (degree)  <   90

select   distinct  sno  from  score a  where ( select   min (degree)  from  score  where  sno  =  a.sno)  >   70   and
(
select   max (degree)  from  score  where  sno  =  a.sno)  <   90  

-- =================================

go
-- 14、查询所有学生的Sname、Cno和Degree列。
select  s.sname,sc.cno,sc.degree  from  student  as  s,score  as  sc  where  s.sno  =  sc.sno
-- 15、查询所有学生的Sno、Cname和Degree列。
select  sc.sno,c.cname,sc.degree  from  course  as  c,score  as  sc  where  c.cno  =  sc.cno
-- 16、查询所有学生的Sname、Cname和Degree列。
select  s.sname,c.cname,sc.degree  from  student  as  s,course  as  c,score  as  sc  where  s.sno  =  sc.sno  and  c.cno  =  sc.cno

-- 17、查询“95033”班所选课程的平均分。
select   avg (degree)  from  score  where  sno  in  ( select  sno  from  student  where  class  =   ' 95033 ' )
-- 18、假设使用如下命令建立了一个grade表:
   create   table  grade(low numeric( 3 , 0 ),upp  numeric( 3 ),rank   char ( 1 ))
  
insert   into  grade  values ( 90 , 100 , ' A ' )
  
insert   into  grade  values ( 80 , 89 , ' B ' )
  
insert   into  grade  values ( 70 , 79 , ' C ' )
  
insert   into  grade  values ( 60 , 69 , ' D ' )
  
insert   into  grade  values ( 0 , 59 , ' E ' )
  
commit ;
-- ================go
select   *   from  student
select   *   from  course
select   *   from  score
select   *   from  teacher
select   *   from  grade
--   现查询所有同学的Sno、Cno和rank列。
select  sno,cno,
(
case    when  degree > 90   then   ' A '
    
when  degree > 80   then   ' B '
    
when  degree > 70   then   ' C '
       
when  degree > 60   then   ' D '
    
else   ' E '   end )
from  score 
-- 19、查询选修“3-105”课程的成绩高于“109”号同学成绩的所有同学的记录。
select   *   from  student  where  sno  in ( select  sno  from  score  where   degree  >  
(
select  degree  from  score  where  sno = ' 109 '   and  cno = ' 3-105 ' ))
-- 20、查询score中选学一门以上课程的同学中分数为非最高分成绩的记录。
select  sno,degree  from  score a  where   not   exists  
(
select   *   from  score  where  sno  =  a.sno  and  degree  <  a.degree) 

select  sno,degree  from  score 

select  sno,degree  from  score a  where  sno  in  ( select  sno 

分享到:
评论

相关推荐

    SQL课程设计(学生成绩管理系统)

    在这个“SQL课程设计”中,我们聚焦于一个具体的应用实例——“学生成绩管理系统”。这个系统不仅帮助教育机构有效地存储和管理学生的成绩数据,还为教师、学生和管理人员提供了方便的数据查询和分析工具。 1. **...

    VC++和SQL开发的学生选课系统源代码

    在这个系统中,SQL发挥了核心作用,存储并管理学生的个人信息、课程信息以及选课记录等数据。开发者可能使用SQL语句进行数据的增删改查操作,以确保数据的一致性和完整性。例如,当学生选课时,系统会通过SQL更新...

    vb+sql 学生信息管理系统 课程设计实例

    《VB+SQL学生信息管理系统课程设计实例详解》 在信息技术领域,数据库管理和用户界面的设计是不可或缺的技能。本文将深入探讨一个基于Visual Basic (VB) 和 SQL 的学生信息管理系统,这是一个精心制作的课程设计...

    用vb.net +sql编写的学生管理系统

    本项目“用VB.NET + SQL编写的学生管理系统”正是这样一个实例,它利用了VB.NET的强大编程能力以及SQL数据库的高效数据处理功能,为我们提供了一个完整的教育管理解决方案。 VB.NET,全称Visual Basic .NET,是微软...

    学生管理系统(三种方法控制台实现:ArrayList、SQL语句、存储过程)

    在学生管理系统中,我们可以通过创建表格来存储学生信息,并使用SQL语句进行插入、更新、删除和查询操作。例如,`INSERT INTO Students (Name, ID, Age) VALUES ('张三', 1, 20)`可以用来添加学生,`SELECT * FROM ...

    学生管理系统sql做的

    总的来说,这个学生管理系统是一个基础的数据库应用示例,适合初学者掌握SQL语言和数据库设计的基础知识。通过实践这样的项目,不仅可以提升SQL技能,还能对数据库管理有更深入的理解,为今后在更复杂的业务场景中...

    50个常用sql语句实例(学生表课程表成绩表教师表)[归类].pdf

    本文档提供了 50 个常用 SQL 语句实例,涵盖了学生表、课程表、成绩表、教师表等多个方面的查询操作。这些实例涵盖了基本的 SELECT 语句、JOIN 语句、子查询、聚合函数等多种 SQL 技术。 1. 查询“ ”课程比“ ”...

    SQL2012+PHP学生管理系统课程设计

    在“SQL2012+PHP学生管理系统课程设计”项目中,主要涵盖了三个核心领域:SQL Server 2012数据库管理,PHP编程语言以及数据库的连接与交互。这个课程设计是一个实际操作的实践项目,旨在让学生掌握如何利用这些技术...

    学生选课管理系统sql数据库课程设计.doc

    【学生选课管理系统SQL数据库课程设计】是一份详细的数据库开发报告,主要涵盖了使用PowerBuilder作为开发工具,结合SQL Server数据库进行系统设计与实现的过程。该报告的目标在于让学生掌握多种技术,包括数据库...

    SQL Sever 课程设计实例

    本课程设计实例旨在指导学生使用 SQL Server 2000 和 C#.NET 平台开发一个宾馆管理系统。该系统旨在为宾馆实现整体信息化,提供灵活、方便的操作,使数据操作高效、迅速。 课程设计要求 学生需要在 SQL Server ...

    SQl 学生宿舍管理系统数据库课程设计E-R+需求分析说明书

    《SQL学生宿舍管理系统数据库课程设计E-R+需求分析说明书》 在进行数据库系统设计时,学生宿舍管理系统是一个常见的实例,它能帮助高校有效地管理和优化住宿资源。本课程设计旨在通过SQL语言实现一个全面的学生宿舍...

    vb+sql sever 2000学生管理系统

    VB(Visual Basic)与SQL Server 2000结合开发的学生管理系统,是信息技术应用于教育管理领域的一个实例,它旨在提高学校对学生信息的处理效率和管理水平。这个系统的核心是通过VB作为前端开发工具,与SQL Server ...

    学生管理系统及课程管理系统+SQL源码

    本文将深入探讨一个重要的应用实例——学生管理系统及课程管理系统,并结合SQL源码,解析其背后的关键技术与设计思想。 首先,学生管理系统是教育机构中用于管理学生信息的重要软件。它涵盖了学生的基本信息管理、...

    vf数据库应用实例学生选课系统

    在本案例中,“VF数据库应用实例学生选课系统”是一个基于VF开发的实用项目,旨在帮助我们理解如何利用VF来设计和实现一个学生选课系统。 首先,我们要了解VF数据库的基础知识。VF支持创建数据库、表、索引等数据库...

    sqlServer实例

    这里提到的"sqlServer实例"是针对教学管理系统的具体应用,结合了数据库文件和VB(Visual Basic)代码,旨在帮助学习者理解和实践SQL Server的相关功能。 首先,我们要理解SQL Server的核心概念。SQL(Structured ...

    Struts+Hibernate经典实例 学生课程成绩及管理系统

    在这个"Struts+Hibernate经典实例——学生课程成绩及管理系统"中,我们将深入探讨这两个框架如何协同工作以实现数据持久化和业务逻辑的控制。 Struts是一个基于MVC(Model-View-Controller)设计模式的开源框架,...

    vb+sql学生成绩管理系统+学生选课系统指导书

    《VB+SQL学生成绩管理系统+学生选课系统》是一个基于Visual Basic (VB)编程语言和SQL数据库技术的教育信息化应用实例。这个系统主要用于管理学生的成绩数据和选课流程,帮助提升学校教务工作的效率。下面将详细阐述...

    SQL Server 学籍管理系统

    SQL Server 学籍管理系统是一个典型的数据库应用实例,它主要利用了SQL Server 2008 R2这一强大的关系型数据库管理系统来设计和实现。该系统主要用于学校中学生的学籍信息管理,包括学生的基本信息、成绩、课程等...

    SQL server2000实例

    本实例聚焦于SQL Server 2000的教学管理系统,通过源代码的形式,为学习者提供了一个实际操作的平台,帮助他们更好地理解和掌握SQL Server 2000的核心功能。 首先,教学管理系统的设计通常涵盖学生信息管理、课程...

    c#.net+sqlserver毕业设计学生成绩管理系统

    本系统——“C#.NET+SQLServer毕业设计学生成绩管理系统”就是这样一个实例,它展示了如何运用这两项技术实现高效、稳定的学生成绩管理。 首先,C#.NET是一种面向对象的编程语言,由微软公司开发,是.NET框架的重要...

Global site tag (gtag.js) - Google Analytics