1. sql语句中怎样查询学生表中所有有着相同的名字的人的信息
方法一:select *from 学生表
where name in 姓名
方法二:
selecct 姓名
from 学生表
group by 姓名
having count(*)>1
如果 having 子句不加,则是统计各名字的数量,加上则只显示 数量大于 1 的人名。
(1)sql同姓查询扩展阅读:
sql 学生表中如何查询与某同学同年的人
SELECT*FROM学生表T1
WHERE EXISTS(SELECT1
FROM学生表T2
WHEREYEAR(T1.生日) = YEAR(T2.生日)
AND 学生编号 = '某同学学生编号')
YEAR是取datetime类型数据的年部分的函数,只要表中的数据存在年份和某学生生日的年份相同就可以。
2. SQL怎么查询一张表中同名同姓的姓名及各自人数
select 名,姓,count(*)数量 from 表 group by 名,姓
3. 用sql 语言怎样 查询同名同姓学生名单,并统计同名人数
select
姓名,count(学号)
as
num
from
学生表
group
by
姓名
having
count(学号)>1
--保证查找到的都是存在2个以上(包括2)的同名同姓的姓名及人数。
4. sql语句中在学生信息表中查询同姓的学生姓名
1.创建一个测试表,如下图
createtabletest_name(idint,namevarchar2(20));
注意事项:
SQLServer的特点如下
1.具有真实的客户端和服务器架构架构。
2.图形用户界面使系统管理和数据库管理更加直观。
3.丰富的编程接口专用工具,为用户进行程序设计提供了更多的选择。
4.它是完全集成的,利用了NT的许多功能,比如发送消息和接收消息。
5. 挑战SQL经典题(一)
建表语句:
表说明:
student(sid,sname,sage,ssex) 学生表
course(cid,cname,tid) 课程表
sc(sid,cid,score) 成绩表
teacher(tid,tname) 教师表
问题:
1、查询“1”课程比“2”课程成绩高的所有学生的学号;(3号-张三)
2、查询平均成绩大于60分的同学的学号和平均成绩;(1、2、3、4号)
3、查询所有同学的学号、姓名、选课数、总成绩;
4、查询姓“李”的老师的个数;(0个)
5、查询没学过“叶平”老师课的同学的学号、姓名; (4号-李四)
6、查询学过“1”并且也学过编号“2”课程的同学的学号、姓名;
(1号-刘一 2号-钱二 3号-张三 6号-赵六 除了4号和5号)---考查EXISTS
7、查询学过“叶平”老师所教的所有课的同学的学号、姓名; (除了4号)
8、查询课程编号“2”的成绩比课程编号“1”课程低的所有同学的学号、姓名;
(3号-张三)
9、查询所有课程有成绩小于60分的同学的学号、姓名;
(1号、3号、5号、6号 除了2号和4号)
10、查询没有学全所有课的同学的学号、姓名; (4号、5号、6号)
11、查询至少有一门课与学号为“1”的同学所学相同的同学的学号和姓名; (All)
12、查询跟学号为“1”的同学学的所有课一样的其他同学学号和姓名; (2号和3号)
13、把“sc”表中“叶平”老师教的课的成绩都更改为此课程的平均成绩; (61.4)
14、删除学习“叶平”老师课的SC表记录;
15、向sc表中插入一条记录,要求符合以下条件:没有上过编号“3”课程的同学学号、2号课的平均成绩;(6号童鞋没有上过3号课程)
16、按平均成绩从高到低显示所有学生的“语文”、“数学”、“英语”三门的课程成绩,按如下形式显示: 学生ID,语文,数学,英语,有效课程数,有效平均分(待更正 语句有错)
17、查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分
18、按各科平均成绩从低到高和及格率的百分数从高到低顺序
19、查询如下课程平均成绩和及格率的百分数(用"1行"显示):
语文-1、数学-2、英语-3、物理-4
20、查询不同老师所教不同课程平均分从高到低显示
21、统计打印各科成绩,各分数段人数:课程ID,课程名称,[100-85],[85-70],[70-60],[ <60]
22、查询学生平均成绩及其名次
23、查询各科成绩前三名的记录:(不考虑成绩并列情况)---------SQL不识别TOP
24、查询每门课程被选修的学生数
25、查询出只选修了一门课程的全部学生的学号和姓名
26、查询男生、女生人数
27、查询姓“张”的学生名单
28、查询同名同姓学生名单,并统计同名人数
29、查询平均成绩大于85的所有学生的学号、姓名和平均成绩
30、查询“物理”课分数不及格的学生姓名和分数
31、查询所有学生的选课情况;
32、查询课程的成绩在80分以上的学生姓名、课程名称和分数;
33、查询选修“周磊”老师所授课程的学生中,成绩最高的学生姓名及其成绩(李四-93)
34、查询不同课程成绩相同的学生的学号、课程号、学生成绩
35、查询两门以上课程大于80分的同学的学号及其平均成绩
36、检索“4”课程分数小于60,按分数降序排列的同学学号
6. 用SQL查询同姓人名语句的
假设姓名字段为name:
slect * from 表名 where name like'姓%'
将语句中’姓‘,替换成你想要的姓,如:李、司马等,复姓也可以
7. SQL查询一张表中同名同姓、同性别的SQL语句怎么写
SELECT*
FROM表名W
WHEREEXISTS(SELECT姓名,性别FROM表名
WHERE姓名=W.姓名AND性别=W.性别
GROUPBY姓名,性别
HAVINGCOUNT(*)>1)
ORDERBY姓名,性别
8. sql 2000中如何找出所有同姓的人,名可以不同
假设你保存姓名的数据表为“abc”,则可以使用如下语句查询出所有姓氏有重复的人员信息:
select * from abc where substring(thexm,1,1) in (select substring(thexm,1,1) 姓氏 from abc group by substring(thexm,1,1) having count(substring(a0101,1,1))>1);
其中:select substring(thexm,1,1) 姓氏 from abc group by substring(thexm,1,1) having count(substring(a0101,1,1))>1部分是查询生成姓氏出现数量大于1次(即有重复)的列表;
然后在从列表中查询出姓氏在这些重复列表之中的人员信息;
substring函数中各参数的意义可以翻阅相关书籍或者网络,having子句等的用法不再详解。