47道题帮助理解

create database mydb

go

use mydb

create table student

(

--学号

sno varchar(3) not null primary key,

--姓名

sname varchar(4) not null,

--性别

ssex varchar(2) not null,

--出生年月

sbirthday datetime,

--所在班级

class varchar(5)

)

create table teacher

(

--教工编号

tno varchar(3) not null primary key,

--教工姓名

tname varchar(4) not null,

--教工性别

tsex varchar(2) not null,

--教工出生日期

tbirthday datetime,

--职称

prof varchar(6),

--所在部门

depart varchar(10)

)

create table course

(

--课程号

cno varchar(5) not null primary key,

--课程名称

cname varchar(10) not null,

--教工编号

tno varchar(3) references teacher(tno)

)

create table score

(

--学号

sno varchar(3) not null references student(sno),

--课程号

cno varchar(5) not null references course(cno),

--成绩

degree decimal(4,1)

)

insert into student

values(‘108‘,‘曾华‘,‘男‘,‘1977-09-01‘,‘95033‘)

insert into student

values(‘105‘,‘匡明‘,‘男‘,‘1975-10-02‘,‘95031‘)

insert into student

values(‘107‘,‘王丽‘,‘女‘,‘1976-01-23‘,‘95033‘)

insert into student

values(‘101‘,‘李军‘,‘男‘,‘1976-02-20‘,‘95033‘)

insert into student

values(‘109‘,‘王芳‘,‘女‘,‘1975-02-10‘,‘95031‘)

insert into student

values(‘103‘,‘陆君‘,‘男‘,‘1974-06-03‘,‘95031‘)

insert into teacher

values(‘804‘,‘李诚‘,‘男‘,‘1958-12-02‘,‘副教授‘,‘计算机系‘)

insert into teacher

values(‘856‘,‘张旭‘,‘男‘,‘1969-03-12‘,‘讲师‘,‘电子工程系‘)

insert into teacher

values(‘825‘,‘王萍‘,‘女‘,‘1972-05-05‘,‘助教‘,‘计算机系‘)

insert into teacher

values(‘831‘,‘刘冰‘,‘女‘,‘1958-08-14‘,‘助教‘,‘电子工程系‘)

insert into course

values(‘3-105‘,‘计算机导论‘,‘825‘)

insert into course

values(‘3-245‘,‘操作系统‘,‘804‘)

insert into course

values(‘6-166‘,‘数字电路‘,‘856‘)

insert into course

values(‘9-888‘,‘高等数学‘,‘831‘)

insert into score

values(‘103‘,‘3-245‘,‘86‘)

insert into score

values(‘105‘,‘3-245‘,‘75‘)

insert into score

values(‘109‘,‘3-245‘,‘68‘)

insert into score

values(‘103‘,‘3-105‘,‘92‘)

insert into score

values(‘105‘,‘3-105‘,‘88‘)

insert into score

values(‘109‘,‘3-105‘,‘76‘)

insert into score

values(‘101‘,‘3-105‘,‘64‘)

insert into score

values(‘107‘,‘3-105‘,‘91‘)

insert into score

values(‘108‘,‘3-105‘,‘78‘)

insert into score

values(‘101‘,‘6-166‘,‘85‘)

insert into score

values(‘107‘,‘6-166‘,‘79‘)

insert into score

values(‘108‘,‘6-166‘,‘81‘)

select * from student

select * from teacher

select * from course

select * from score

--1、查询Student表中的所有记录的Sname、Ssex和Class列。

--2、查询教师所有的单位即不重复的Depart列。

--3、查询Student表的所有记录。

--4、查询Score表中成绩在60到80之间的所有记录。

--5、查询Score表中成绩为85,86或88的记录。

--6、查询Student表中“95031”班或性别为“女”的同学记录。

--7、以Class降序查询Student表的所有记录。

--8、以Cno升序、Degree降序查询Score表的所有记录。

--9、查询“95031”班的学生人数。

--10、查询Score表中的最高分的学生学号和课程号。

--11、查询‘3-105’号课程的平均分。

--12、查询Score表中至少有5名学生选修的并以3开头的课程的平均分数。

--13、查询每个学生选多门课,他的所有成绩在70到90之间的Sno列。

--14、查询所有学生的Sname、Cno和Degree列。

--15、查询所有学生的Sno、Cname和Degree列。

--16、查询所有学生的Sname、Cname和Degree列。

--17、查询“95033”班所选课程的平均分。

--18、假设使用如下命令建立了一个grade表:

--create table grade(low  int,upp  int,rank  varchar(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‘)

--现查询所有同学的Sno、Cno和rank列。

--19、查询选修“3-105”课程的成绩中高于”109”号成绩的所有同学的记录。//无关子查询

--20、查询score中选学多门课程的同学中分数为非最高分成绩的记录。

--21、查询成绩高于学号为“109”、课程号为“3-105”的成绩的所有记录。

--22、查询和学号为108的同学同年出生的所有学生的记录。

Year(sbirthday)取年份  同理有month day

--23、查询“张旭“教师任课的学生成绩。

--24、查询选修某课程的同学人数多于5人的教师姓名。

子查询不需要去重

--25、查询95033班和95031班全体学生的记录。

并集

--26、查询存在有85分以上成绩的课程Cno.

--27、查询出“计算机系“教师所教课程的成绩表。

Score.*

--28、查询“计算机系”与“电子工程系“不同职称的教师的Tname和Prof。(重点理解)

--29、查询选修编号为“3-105“课程且成绩至少高于选修编号为“3-245”的同学的Cno、Sno和Degree,并按Degree从高到低次序排序。

--30、查询选修编号为“3-105”且成绩高于选修编号为“3-245”课程的同学的Cno、Sno和Degree.(做此题前先将105号学生的3-245的成绩改为95)

--31、查询所有教师和同学的name、sex和birthday.

--32、查询所有“女”教师和“女”同学的name、sex和birthday.

--33、查询成绩比该课程平均成绩低的同学的成绩表。

--34、查询所有任课教师的Tname和Depart.

--35  查询所有未讲课的教师的Tname和Depart.

列名 is null 不能用=(此题用left join形成大量笛卡尔积,运算慢)

子查询 用 not in  效率高

--36、查询至少有2名男生的班号。

--37、查询Student表中不姓“王”的同学记录。

Not like  相同的解决方案,无关子查询比相关子查询效率高

--38、查询Student表中每个学生的年龄。

Year (getdate())取当前时间年份

--39、查询Student表中最大和最小的Sbirthday日期值。

--40、以班号和年龄从大到小的顺序查询Student表中的全部记录。

--41、查询“男”教师及其所上的课程。

--42、查询最高分同学的Sno、Cno和Degree列。

--43、查询和“李军”同性别的所有同学的Sname.

--44、查询和“李军”同性别并同班的同学Sname.

--45、查询所有选修“计算机导论”课程的“男”同学的成绩表。

--46、查询score表中分数最高的学生的信息。//多层嵌套

时间: 2024-08-02 11:29:03

47道题帮助理解的相关文章

记Javascript一道题的理解

代码如下: function Foo(){ getName = function(){ console.log("1"); } return this; } Foo.getName = function(){ console.log("2"); } Foo.prototype.getName = function(){ console.log("3"); } var getName = function(){ console.log("

Python 100道题深入理解

# -*- coding: utf-8 -*- # 题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?# 程序分析:可填在百位.十位.个位的数字都是1.2.3.4.组成所有的排列后再去 掉不满足条件的排列.# 程序源代码: def permutation(nums):    for x in nums:        for y in nums:            for z in nums:                if len(set({x, y,

NYOJ-47过河问题

这是一道经典的贪心算法的题目.首先说一下我对这道题的理解: n个人要过河,已知每个人的过河时间且过河时必须要使用唯一的手电筒.桥只能允许最多 两个人同时过河.让求所有人都过河后的最短时间. 我们不难知道:必须同时两个人过河,因为要把手电筒送回来,让为过河的人过河.使用贪 心的思想解决这个问题,首先要对这n个人的过河时间排序并保存在数组S中.这也是大多数贪心 解决问题的共同点. 根据贪心原则,我们有两个贪心策略: 策略A: 让最快的两个人去送最慢的两个人.首先S[0]和S[1]过河,S[0]把手电

深入理解闭包

闭包之前一直都在看,却总感觉没有深入理解,一直处于云里雾里,今天终于可以炫耀的说我懂了! 闭包是什么? 官方解释我就不说了,只说我理解的吧~ 闭包是提供给外部访问函数内部私有变量的一个接口 一个函数里定义另一个函数就会产生闭包 解释一下: function func() { var a = 10; return function() { return a; }; } var b = func(); console.log(b()); 在函数里定义变量都是私有的,外面无法访问到函数内部,那么,就可

canvas学习作业,模仿做一个祖玛的小游戏

这个游戏的原理我分为11个步骤,依次如下: 1.布局, 2.画曲线(曲线由两个半径不同的圆构成) 3.画曲线起点起始圆和曲线终点终止圆 4.起始的圆动起来, 5.起始的圆沿曲线走起来 6.起始的圆沿曲线走起来,并在曲线初始位置处产生新圆 7.添加图片,这个图片是为了发射子弹 8.让图片跟随鼠标动起来 9.让动起来的图片跟随鼠标的位置发送子弹,并让子弹的颜色变红 10.图片发射的子弹和轨迹上的小圆碰撞检测 11.碰撞检测后让发射的子弹和轨迹上的小圆消失 这就是该程序步骤的的分解. 第一点:布局 <

CodeForces 505B Mr. Kitayuta&#39;s Colorful Graph

Mr. Kitayuta's Colorful Graph Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u Submit Status Practice CodeForces 505B Description Mr. Kitayuta has just bought an undirected graph consisting of n vertices and m edges. The

1003.我要通过!(20)

“答案正确”是自动判题系统给出的最令人欢喜的回复.本题属于PAT的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”. 得到“答案正确”的条件是: 1. 字符串中必须仅有P, A, T这三种字符,不可以包含其它字符:2. 任意形如 xPATx 的字符串都可以获得“答案正确”,其中 x 或者是空字符串,或者是仅由字母 A 组成的字符串:3. 如果 aPbTc 是正确的,那么 aPbATca 也是正确的,其中 a, b, c 均或者是空字符串,或者是

有关货币问题的动态规划题目--有关01背包,完全背包,多重背包

背包dp:参考背包九讲以及给出一些题目 01背包 (先枚举物品,再逆序枚举容量) 给定n件物品和一个容量为V的背包,每件物品的体积是w[i],价值是va[i](1<=i<=n),求在不超过背包的容量的情况下,怎么选择装这些物品使得得到的价值最大? 例如:有5件物品,体积分别是{2,2,6,5,4},价值分别是{6,3,5,4,6} 递归式:F(i,v)=max(F(i-1,v), F(i-1,v-w[i])+va[i]),其中F(i,v)表示把前i种物品恰放入背包容量为v时取得的最大价值 把这

Poj 2559 Largest Rectangle in a Histogram(柱形统计图中的最大矩形面积)

 给出一个柱形统计图中,求其中的最大矩形面积 做完这道题,搜了一下题解大部分基本都是单调栈......然而做之前并不知道这是什么,其实用递推也可以做这道题,理解起来比较容易. 用两个数组l,r记录当前坐标可以向左和向右延伸的最远位置的坐标,然后就是递推了. 初始时将l[i],r[i]的值置为i,即自己的坐标.这里拿l[i]举例: 从左向右扫描统计图,计算当前位置的l[i]时,如果h[i] > h[ l[i] - 1 ]的话,那么l[i] = l[ l[i]-1  ]. 然后对于每个位置,an