学生成绩表student中有字段姓名name,课程lesson,分数score。

目前由于业务需要需要在地图上显示离坐标点最近的服务网点信息 

学习本节所用表:

  1. 写一个SQL查询出所有学生成绩并按姓名分组。

前提:定位坐标与网点坐标均知晓:

图片 1图片 2

   select * from student group by name;

算法:

CREATE TABLE TEACHER
(
    ID INT IDENTITY (1,1) PRIMARY KEY ,  --主键,自增长
    TNO INT NOT NULL, --教工号
    TNAME CHAR(10) NOT NULL, --教师姓名
    CNO INT NOT NULL, --课程号
    SAL INT, --工资
    DNAME CHAR(10) NOT NULL, --所在系
    TSEX CHAR(2) NOT NULL, --性别
    AGE INT NOT NULL --年龄
)
INSERT INTO dbo.TEACHER VALUES( 1,'王军',4,400,'数学','男',32)
INSERT INTO dbo.TEACHER VALUES( 2,'李彤',5,6600,'生物','女',54)
INSERT INTO dbo.TEACHER VALUES( 3,'王永军',1,1000,'计算机','女',45)
INSERT INTO dbo.TEACHER VALUES( 4,'刘晓婧',2,8000,'计算机','女',23)
INSERT INTO dbo.TEACHER VALUES( 5,'高维',8,6000,'电子工程','男',54)
INSERT INTO dbo.TEACHER VALUES( 6,'李伟',7,230,'机械工程','女',23)
INSERT INTO dbo.TEACHER VALUES( 7,'刘辉',3,0,'生物','女',65)
INSERT INTO dbo.TEACHER VALUES( 8,'刘伟',9,500,'计算机','男',23)
INSERT INTO dbo.TEACHER VALUES( 9,'刘静',12,0,'经济管理','男',45)
INSERT INTO dbo.TEACHER VALUES( 10,'刘奕锴',13,70000,'计算机','女',65)
INSERT INTO dbo.TEACHER VALUES( 11,'高维',14,70000,'经济管理','男',61)

CREATE TABLE COURSE
(
    ID INT IDENTITY (1,1) PRIMARY KEY ,  --主键,自增长
    CNO INT NOT NULL, --课程号
    CNAME CHAR(30) NOT NULL, --课程名称
    CTIME INT NOT NULL, --学时
    SCOUNT INT NOT NULL, --容纳人数
    CTEST SMALLDATETIME NOT NULL, --考试时间
)
INSERT INTO dbo.COURSE VALUES( 4,'应用数学基础',48,120,'2006-7-10')
INSERT INTO dbo.COURSE VALUES( 5,'生物工程概论',32,80,'2006-7-8')
INSERT INTO dbo.COURSE VALUES( 1,'计算机软件基础',32,70,'2006-7-8')
INSERT INTO dbo.COURSE VALUES( 2,'计算机硬件基础',24,80,'2006-6-28')
INSERT INTO dbo.COURSE VALUES( 8,'模拟电路设计',28,90,'2006-7-10')
INSERT INTO dbo.COURSE VALUES( 7,'机械设计实践',48,68,'2006-7-14')
INSERT INTO dbo.COURSE VALUES( 3,'生物化学',32,40,'2006-7-2')
INSERT INTO dbo.COURSE VALUES( 9,'数据库设计',16,80,'2006-7-1')
INSERT INTO dbo.COURSE VALUES( 6,'设计理论',28,45,'2006-6-30')
INSERT INTO dbo.COURSE VALUES( 10,'计算机入门',25,150,'2006-6-29')
INSERT INTO dbo.COURSE VALUES( 11,'数字电路设计基础',30,125,'2006-6-20')
CREATE TABLE STUDENT
(
    ID INT IDENTITY(1,1) PRIMARY KEY NOT NULL,
    SNO CHAR(4) NOT NULL,    --学号
    SNAME CHAR(10) NOT NULL, --姓名
    DNAME CHAR(10) NOT NULL, --系
    SSEX CHAR(2) NOT NULL,   --性别
    CNO INT ,                --课程号
    MARK DECIMAL(3,1),       --成绩
    TYPE CHAR(4)             --课程类型
)
INSERT INTO dbo.STUDENT VALUES('9701','刘建国','管理工程','男',4,82.5,'必修')
INSERT INTO dbo.STUDENT VALUES('9701','刘建国','管理工程','男',10,70,'选修')
INSERT INTO dbo.STUDENT VALUES('9701','刘建国','管理工程','男',1,78.5,'选修')
INSERT INTO dbo.STUDENT VALUES('9702','李春','环境工程','女',5,63,'必修')
INSERT INTO dbo.STUDENT VALUES('9702','李春','环境工程','女',10,58,'选修')
INSERT INTO dbo.STUDENT VALUES('9703','王天','生物','男',5,48.5,'必修')
INSERT INTO dbo.STUDENT VALUES('9703','王天','生物','男',2,86,'选修')
INSERT INTO dbo.STUDENT VALUES('9704','李华','计算机','女',4,76,'必修')
INSERT INTO dbo.STUDENT VALUES('9704','李华','计算机','女',1,92,'必修')
INSERT INTO dbo.STUDENT VALUES('9704','李华','计算机','女',2,89,'必修')
INSERT INTO dbo.STUDENT VALUES('9704','李华','计算机','女',9,80,'必修')
INSERT INTO dbo.STUDENT VALUES('9704','李华','计算机','女',8,70,'选修')
INSERT INTO dbo.STUDENT VALUES('9705','孙庆','电子工程','男',8,79,'必修')
INSERT INTO dbo.STUDENT VALUES('9705','孙庆','电子工程','男',1,59,'必修')
INSERT INTO dbo.STUDENT VALUES('9705','孙庆','电子工程','男',11,52,'必修')
INSERT INTO dbo.STUDENT VALUES('9705','孙庆','电子工程','男',6,68,'必修')
INSERT INTO dbo.STUDENT VALUES('9706','高伟','机械工程','男',13,93,'必修')
INSERT INTO dbo.STUDENT VALUES('9706','高伟','机械工程','男',12,88.5,'必修')
INSERT INTO dbo.STUDENT VALUES('9706','高伟','机械工程','男',1,78,'选修')
INSERT INTO dbo.STUDENT VALUES('9706','高伟','机械工程','男',10,76,'选修')

数据表
  1. 写一个SQL查询出成绩在80分以上的学生。
round(6378.138*2*asin(sqrt(pow(sin( (lat1*pi()/180-lat2*pi()/180)/2),2)+cos(lat1*pi()/180)*cos(lat2*pi()/180)* pow(sin( (lng1*pi()/180-lng2*pi()/180)/2),2)))*1000)

表数据

   select * from student where score>80;

  

1、关系的集合运算

  集合的3个最普通的运算是并、交和差。对于任意集合R和S(当然,这里的R和S可以是表R和表S),这些运算定义如下。

  R并S,R或S或两者中元素的集合。一个元素在并集中只出现一次,即使它在R和S中都存在。

  R交S,R和S中都存在的元素的集合。

  R差S,在R中而不在S中的元素的集合。注意R差S不同于S差R,后者是在S中而不在R中的元素的集合。
  关于交、并、差运算的示意图如图所示。

发表评论

电子邮件地址不会被公开。 必填项已用*标注