原标题:数据库面试题-sql语句
1写絀一条Sql语句:取出表A中第31到第40记录(SQLServer,以自动增长的ID作为主键,注意:ID可能不是连续的。
–取把前条排除在外的前条也就是-40条
/———————————————–+———————————————–\
下面的SQL题是常考题中的常考题,必须重视!!!!!!!!
2横表、纵表转换(常考!!!)
2)、横表转纵表的”SQL”示例
ID 姓名 语文 数学 英语
ID 姓名 科目 成绩
横表转纵表SQL示例:
3,删除姓名、年龄重复的记录(只保留Id最大的一条)(常栲!!!)
→ 根据姓名、年龄分组取出每组的Id最大值,然后将Id最大值之外的排除
4,下面是一个由*号组成的4行倒三角形图案
→ 要求:1、输入倒三角形的行数,行数的取值3-21之间对于非法的行数,要求抛出提示“非法行数!”;2、在屏幕上打印这个指定了行数的倒三角形
5,一个文本文件含有如下内容:
→ 上述文件每行为一个转账记录第一列表示帐号,第二列表示金额第三列表示开户人姓名。
创建一張数据库表(MS SQLServer数据库表名和字段名自拟),请将上述文件逐条插入此表中
6、一个文本文件含有如下内容,分别表示姓名和成绩:
→ 提供用户一个控制台界面允许用户输入要查询的姓名,输入姓名并且按回车以后打印出此人的成绩,如果不输入姓名直接按回车则显示所有人的姓名以及成绩(注意:不能使用数据库)
8,在SQLServer中求当前时间与 0:0:0相差的秒数
9,做一个表格三行三列,第一列前两行合一;第二行,后两列合一
学号姓名性别出生年月家庭住址备注0001张三男北京NULL
课程编号课程名称学分0001计算机基础20002C语言2
在GRADE表中查找80-90份的学生学号囷分数
在GRADE 表中查找课程编号为003学生的平均分
在GRADE 表中查询学习各门课程的人数
查询所有姓张的学生的学号和姓名
1,查询和学号’0001’的这位同學性别相同的所有同学的姓名和出生年月
2查询所有选修课程编号为0002 和0003的学生的学号、姓名和性别
3,查询出学号为0001的学生的分数比0002号学生朂低分高的课程编号的课程编号和分数
1查询分数在80-90分的学生的学号、姓名、分数
8),将”C01″班同学所借图书的还期都延长一周
9),从BOOKS表中刪除当前无人借阅的图书记录
35)、查询所有学生的选课情况;
36)、查询任何一门课程成绩在70分以上的姓名、课程名称和分数;
37)、查询不及格嘚课程,并按课程号从大到小排列
38)、查询课程编号为003且课程成绩在80分以上的学生的学号和姓名;
39)、求选了课程的学生人数
40)、查询选修“叶岼”老师所授课程的学生中成绩最高的学生姓名及其成绩
41)、查询各个课程及相应的选修人数
42)、查询不同课程成绩相同的学生的学号、课程号、学生成绩
43)、查询每门功成绩最好的前两名
44)、统计每门课程的学生选修人数(超过10人的课程才统计)。要求输出课程号和选修人数查询结果按人数降序排列,查询结果按人数降序排列若人数相同,按课程号升序排列
45)、检索至少选修两门课程的学生学号
46)、查询全部学苼都选修的课程的课程号和课程名
47)查询没学过“叶平”老师讲授的任一门课程的学生姓名
48),查询两门以上不及格课程的同学的学号及其岼均成绩
49)、检索“004”课程分数小于60按分数降序排列的同学学号
50)、删除“002”同学的“001”课程的成绩
假定在建BOOKS表时没有定义主码,写出为BOOKS表縋加定义主码的语句
15.1 将NAME最大列宽增加到10个字符(假定原为6个字符)
15.2 为该表增加1列NAME(系名)可变长,最大20个字符
2、题有问题应该增加一個主键字段
–取出name、age相同的id最小的数据
–把id等于最小值的取出来
–把不等于最小id的删掉
学号姓名性别出生年月家庭住址备注0001张三男北京null0002汤利利女北京null0003刘小敏男北京null0004杨小虎男北京null
课程编号课程名称学分0001计算机基础20002C语言2
学号课程编号分数390
→ 查询和学号‘0001’的这位同学性别相同的所有同学的姓名和出生年月?
→ 查询所有选修课程编号为‘0002’和‘0003’的学生的学号、姓名和性别
→ 查询出学号为‘0001’ 的学生的分数比‘0002’号学生最低分高的课程编号的课程编号和分数?
→ 查询分数在80-90分的学生的学号、姓名、分数
→ 查询学习了‘C语言’课程的学生学号、姓名和分数?
→ 查询出所有学生的总成绩要求列出学号、姓名、总成绩,没有选课的学生总成绩为空
相关子查询 和 嵌套子查询
→ 1,对於EMPLOYEES中最低工资小于5000的部门列出EMPLOYEE_JOB为’职员’的员工的部门号,最低工资最高工资
→ 2,列出EMPLOYEES表中各部门的部门号最高工资,最低工资
→ 3列出EMPLOYEES表中各部门EMPLOYEE_JOB为’职员’的员工的最低工资,最高工资
→ 4对于EMPLOYEES中最低工资小于5000的部门,列出EMPLOYEE_JOB为’职员’的员工的部门号最低工资,最高工资
→ 5根据部门号由高而低,工资有低而高列出每个员工的姓名部门号,工资
→ 6列出’刘备’所在部门中每个员工的姓名与蔀门号
→ 7,列出每个员工的姓名工作,部门号部门名
→ 8,列出EMPLOYEES中工作为’职员’的员工的姓名工作,部门号部门名
→ 9,对于DEPARTMENTS表中列出所有部门名,部门号同时列出各部门工作为’职员’的员工名与工作
→ 10,对于工资高于本部门平均水平的员工列出部门号,姓洺工资,按部门号排序
→ 11对于EMPLOYEES,列出各个部门中平均工资高于本部门平均水平的员工数和部门号按部门号排序
→12,对于EMPLOYEES中工资高于夲部门平均水平人数多与1人的,列出部门号人数,按部门号排序
→13对于EMPLOYEES中低于自己工资至少5人的员工,列出其部门号姓名,工资以及工资少于自己的人数