sql语句分析。(名牌大学考试题)

2024-05-06 15:48

1. sql语句分析。(名牌大学考试题)

首先要说,这些语法都是基于SQLSERVER数据库的语法,DATEDIFF TOP等,在ORACLE等其他数据库是没有的。
1. 主要是datediff函数的用法,获取两个日期之间的时间差,可以得到年月日小时分秒等等,可以参看这个函数的说明。
这里第一个参数表示获取时间差的类型,minute表示获取两个日期的时间差是分钟。
第二个参数是起始时间,第二个是截止时间,都是datetime类型。
getdate(),获取当前时间的函数。
我觉得你这个语句写的有问题。第一,参数minute,不需要使用单引号,如果使用了单引号,参数就错误了,因为datediff第一个参数不是字符型的。
第二,datediff的函数第二个日期是开始时间,第二个是结束时间,你这个正好反了。
SQL: select * from 日程安排 where datediff(minute,f开始时间,getdate())>5
这个的意思是当前时间已经超过了开始时间5分钟的,会显示出来,而不是提前5分钟提醒。
提前五分钟提醒:SQL: select * from 日程安排 where datediff(minute,getdate(), f开始时间) < 5
距离当前时间小于5分钟的记录,才是提前5分钟提醒。

2.
select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段= a.主键字段 order by a.排序字段

先看from括号内的语句:select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc,按照排序字段降序排列取出前20行数据。
然后再整体看,把表和这个20行数据关联,那么能取到的最大范围也就是这20行了。
然后取出前10行,我不知道这个为什么叫做分页查询,因为根本没有每页多少行以及第几页的参数在。这个语句就是按照排序字段倒叙排列的前20行,然后在按照排序字段正序排列从这前20行中取出前10行。实际上就是取出了按照排序字段倒叙排列的第11-20行的数据并正序排列。

3.内连接:实际上就是两表直接连接,取出连接成立的所有数据。语法使用Inner join
距离:有学生表:student : student_id , student_name
                                             001                 张三
                          002                 李四
                          003                  王五
           成绩表:  score : course_id   student_id       score
                                          课程1            001               85
                                          课程2            001                85
                                           课程1           002                80
                                           课程2           002                90
查询学生选课成绩,显示 student_name, course_id, score
select a.student_name, b.course_id, b.score
from   student a inner join score b on a.student_id = b.student_id
查询结果  student_name, course_id, score
                  张三            课程1      85
                  张三            课程2       85
                  李四            课程1       80
                  李四            课程2        90
可以看到,直接符合连接条件的数据,都会被选择出来,而王五,因为在成绩表没有成绩,所以查询结果并没有王五的数据。

4.外连接,left join, right join,分别是左外连接和右外连接。
就是以一个表为主,而另一个表为辅。主表的数据都会被查询出来,而符合两表连接条件,那么辅表的数据就会显示,否则,为空(NULL)
还以上表和上述语句为例,查询所有学生的成绩清单,没有成绩显示空,但是学生要显示。
select a.student_name, b.course_id, b.score
from   student a left join score b on a.student_id = b.student_id

查询结果:
student_name     course_id     score
张三              课程1          85
张三              课程2          85
李四              课程1          80
李四              课程2          90
王五              NULL          NULL

可以看到,虽然连接条件王五这条并不成立,但是王五的数据一样会被显示出来,只是成绩表的相关数据位空。
有连接和左连接一样,把上面的顺序换过来,效果相同
select a.student_name, b.course_id, b.score
from  score b   right join student a on a.student_id = b.student_id

sql语句分析。(名牌大学考试题)

2. 数据库SQL题目,求解答

详细写到纸上了,有不清楚的可以继续问。


E-R图


逻辑模型及部分查询


查询及更新


触发器
以上是全部回答。

3. 帮忙做下这些SQL题目

判断题:错对错错错
填空题:1tempdb 2sp_helpdb 3distinct 4DBMS
选择题:CBACDDBACD
操作题:1、select 学号,姓名,年龄 from 学生 where 学号='S!'
2、select distinct S.学号,count(SC.课程号) from 学生 S ,学生选课表 SC where S.学号 = SC.学号 group by S.学号
3、(1)create table 教师表(
编号 char(6)primary key,
姓名 varchar(20)not null ,
性别 char(2),
民族 varchar(20)default('汉'),
职称 varchar(20),
身份证号 char(18)unique nonclustered)
alter table 任课表 add
constraintT 教师表_任课表 foreign key 教师编号
references  教师表(编号)
(2)insert table 课程表 values(‘100001’,‘SQL SERVER 数据库’);
insert table 课程表 values(‘100002’,‘数据结构’)
(3) update 课程表 set 名称 = ‘Visual Basic 程序设计’
(4)delete from 课程表 where 课程号='100003'
(5) select 教师表.姓名 ,count(任课表.学时数) from 任课表, 教师表  where 任课表.教师编号=教师表.编号 and 教师表.姓名='郭老师' group by 教师表.姓名

帮忙做下这些SQL题目

4. 求SQL答案

1.	(  C )是被长期存放在计算机内的、有组织的、统一管理的相关数据的集合。
A.DATA	     B.INFORMATION	  C.DB		      D.DBS
2.	需求分析的主要方法是(   A  )。
A.自顶向下     B.自底向上       C.从左到右     D.混合策略
3.	在关系运算中,选取符合条件的元组是(  D   )运算。
A.除法	    	B.投影	          C.连接	      D.选择
4.	关系数据库的规范化理论指出,关系数据库中的关系应满足一定的要求,最起码的要求是达到1NF,既满足(  D   )。
A.主关键字唯一标识表中的每一行
B.关系中的行不允许重复
C.每个非关键字列都完全依赖于主关键字
D.每个属性都有是不可再分的基本数据项
5.	SQL Server 2005中表查询的命令是(   B  )。
A. USE         B.SELECT        C.UPDATE       D.DROP
6.	表达式 ‘123’+’456' 的结果是(C )。 
A . '579'         B . 579             C . '123456'       D . '234567' 
7.	在SQL Server 2005中,下列变量名正确的是(  A   )。
A.@sum        B.j            C.sum           D.4kk
8.	建立索引的目的是(  D   )。
A.降低SQL Server数据检索的速度
B.与SQL Server数据检索的速度无关
C.加快数据库的打开速度
D.提高SQL Server数据检索的速度
9.	用于求系统日期的函数是(  B   )。
A.YEAR()    B.GETDATE()   C.COUNT()     D.SUM()
10.	向用户授予操作权限的SQL语句是(  D   )。
A.CTEATE      B.REVOKE        C.SELECT        D.GRANT
 
11SQL Server 2005用的身份验证模式有Windows身份验证模式和____混合验证_____模式。
12在查询语句中,应在_select____子句中指定输出字段。

13____视图____是由一个或多个数据表(基本表)或视图导出的虚拟表。
14从 Windows“ 开始 ” 菜单启动查询分析器后,默认数据库为_____master_____。
15表的 CHECK 约束是对___数据合法性_______的有效性检验规则。
16_____存储过程____是已经存储在SQL Server服务器中的一组预编译过的Transact-SQL语句。
17关系完整性包括实体完整性、  域完整性 、参照完整性和用户自定义完整性。
18数据库管理系统的安全性通常包括两个方面,一是指数据访问的安全性,二是指数据_管理______的安全性。
19触发器定义在一个表中,当在表中执行insert、___update_____或delete操作时被触发自动执行。
20数据文件的自动增长方式有:按百分比和按___文件大小_________两种方式。

5. sql 数据库习题谢谢

1. select '类别为:'+tushuleibie 图书分类  from T_Book 
2. select shuming 书名,zuozhe 作者,jiage*0.7 价格 from T_Book where chubanshe ='机械工业出版社'
3. select shuming 书名,zuozhe 作者,jiage 价格, chubanshe 出版社 from T_Book where jiage between 30 and 60
4. select top 3 shuming 书名,zuozhe 作者,chubanshe 出版社, jiage 价格  from T_Book order by jiage desc

6.select chubanshe 出版社,AVG(jaige) 平均价,MAX(jiage) 最高价 ,MIN(jaige) 最低价  from T_Book group by chubanshe order by SUM(jiage) desc

10.select top 1 chubanshe 出版社, count(*) 出版图书个数 from T_Book group by chubanshe order by COUNT(*) desc
book表的做好了 reader的自己做吧 字段名我用拼音做代替的 你自己替换成你表中的字段

sql 数据库习题谢谢

6. SQL数据库题目,求助

1、select * from 学生信息 where 年龄=18;
2、select 学号,姓名,班级 from 学生信息 where 班级='08电商1';
3、select 姓名,班级 from 学生信息 where 姓名 like '李%';
4、select * from 老师信息 where 姓名 like '_丽%';
5、select 班级,姓名,年龄 from 学生信息 where 班级='08电商1' or 班级='08物流2';
6、select 工号,姓名,部门 from 教师信息 where 工资>2500;
7、select 班级,count(*) as 人数 from 学生信息 group by 班级;
8、select top 10 学号,姓名 from 学生信息 order by 年龄 desc;
9、select * from 学生信息 where 班级='08电商2' order by 学号 asc;
10、select 性别,sum(年龄)/count(年龄) as 平均年龄  from 学生信息 group by 性别;或者select 性别,avg(年龄) as 平均年龄  from 学生信息 group by 性别

7. 各位高手,帮一下忙,这是一道考试试题,要用SQL语句写出基本表,如下

这几题的SQL语句如下:
1.
select 姓名 from 职工 where 年龄>45

2.
select 参加.职工号 from 社会团体,参加 where 社会团体.编号=参加.编号 and 社会团体.名称='蓝球队'

3.
select 职工号 from 职工 where not exists(select 1 from 参加 where 参加.职工号=职工.职工号)

4.
select 名称 from 社会团体 order by 名称

5.
select 名称,count(1) as 人数 from 社会团体 group by 名称

各位高手,帮一下忙,这是一道考试试题,要用SQL语句写出基本表,如下

8. SQL题目,求高手帮忙100分。

这个设计很简单,需要三张表,即学生表(S),课程表(C),选课表(SC)。因为学生与课程是相对独立的两个对象,不会因为增删某个学生而影响课程,也不会因为增删某个课程而删除学生。

三张表的关系如下:
1.学生表保存学生信息,课程表保存课程信息,选课表保存学生与课程的对应关系。
2.增删学生表,不会改变课程表,反过来也一样。
3.删除某个学生时,同时删除选课表中相应的学生信息。
4.删除某个课程时,同时删除选课表中相应的课程信息。

三张表的设计如下
学生表(S)
SNO 学号
SNAME 姓名
.....(以下略,可根据需要增加字段)

课程表(C)
CNO 课程编号
CNAME 课程名
.....(以下略,可根据需要增加字段)

选课表(SC)
SNO 学号
CNO 课程编号
SCORE 分数
.....(以下略,可根据需要增加字段)


查学号为123的学生选择了什么课程及成绩:
SELECT S.SNAME AS 姓名,C.CNAME AS 课程名,SC.SCORE AS 分数 FROM S,C,SC WHERE S.SNO=SC.SNO AND C.CNO=SC.CNO AND S.SNO='123' 

查课程号为abc的课程的学生及成绩(从高到低排序):
SELECT C.CNAME AS 课程名,S.SNAME AS 姓名,SC.SCORE AS 分数 FROM S,C,SC WHERE S.SNO=SC.SNO AND C.CNO=SC.CNO AND C.CNO='abc' ORDER BY SC.SCORE DESC