数据库常用sql语句有哪些

数据库中常用的SQL语句有哪些?

什么是SQL语句?SQL语句的种类和数量很多,常用的语句也很多。
下面我们就给大家介绍一些常用的SQL语句,供大家参考!

学生(S#,Sname,Sage,Ssex)学生表

课程(C#,Cname,T#)课程表

SC(S#,C#,Score)成绩表

教师(T#,Tname)教师表

问题:

1.查询科目“001”。
比率“002”所有科目成绩高的学生人数;

selecta.S#from(selects#,scorefromSCwhereC#='001')a,(selects#,score

fromSCwhereC#='002')b

b.scoreanda.s#=b.s#;

 2.平均值查询成绩在60分以上的学生人数及其平均成绩;

【selectS#,avg(score)

【fromsc

60;

【3.查看所有学生的学号、姓名、修读课程数、总成绩;

选择Student.S#,Student.Sname,count(SC.C#),sum(分数)

fromStudentleftOuterjoinSConStudent.S#=SC.S#

groupbyStudent.S#,Sname

4。
查询姓“李”的教师人数。

selectcount(distinct(Tname))

fromTeacher

whereTnamelike'lee%';

fromTeacher

whereTnamelike'lee%';

5、查询没有听过“野平”老师课的学生。
学号、姓名;

selectStudent.S#,Student.Sname

fromStudent

【whereS#notin(selectdistinct(SC.S#)fromSC,Course),TeacherwhereSC.C#=Course.C#andTeacher.T#=Course.T#andTeacher.Tname='YesPing');

6.查询学习了“001”并且还学习了数字。
002"学号及课程学生姓名;

selectStudent.S#,Student.SnamefromStudent,SCwhereStudent.S#=SC.S#andSC.C#='001'andexists(Select*fromSCasSC_2whereSC_2.S#=SC.S#andSC_2.C#='002');

7.查询选修过所有“Ping”课程的学生人数和姓名。

selectS#,Sname

佛法学生

佛法佛法法中的S#in(selectS#fromSC,课程,TeacherwhereSC.C#=Course.C#andTeacher.T#=Course.T#andTeacher.Tname='是Ping'groupbyS#havingcount(SC.C#)=(selectcount(C#)fromCourse,TeacherwhereTeacher.T#=Course.T#andTname='YesPing'));查找课程编号“002”的分数百分比。
数字“001”是所有参加低级课程的学生的学号和姓名。

SelectS#,Snamefrom(selectStudent.S#,Student.Sname,score,(selectscorefromSCSC_2whereSC_2.S#=Student.S#andSC_2.C#='002')Score2

fromStudent,SCwhereStudent.S#=SC.S#andC#='001')S_2wherescore2

【selectS#,Sname

【来自学生

60);

10.检查所有科目未通过的学生的学号和姓名。

选择Student.S#,Student.Sname

来自Student,SC

其中Student.S#=SC.S#groupbyStudent.S#,Student.Snamehavingcount(C#)<(selectcount(C#)fromCourse);

11、查询学号为“1001”的一门或多门课程。
""同班同学的学号和姓名;

selectS#,SnamefromStudent,SCwhereStudent.S#=SC.S#andC#inselectC#fromSCwhereS#='1001';

>

12、查询学号为“001”的学生至少修过一门课程的其他学生姓名;

selectdistinctSC.S#,Sname

fromStudent,SC

whereStudent.S#=SC.S#andC#in(selectC#fromSCwhereS#='001');

13.“Leaf”将更改为“SC”表“Ping”教师所教课程的成绩将更改为该课程的平均成绩。

updateSCsetscore=(selectavg(SC_2.score)

来自SCSC_2

whereSC_2.C#=SC.C#)fromCourse,TeacherwhereCourse.C#=SC.C#andCourse.T#=Teacher.T#andTeacher.Tname='叶萍');

14.查询为“1002&rd”的学生正在与具有相同学号和姓名的另一名学生学习同一科目。

selectS#fromSCwhereC#in(selectC#fromSCwhereS#='1002')

groupbyS#havingcount(*)=(selectcount(*)fromSCwhereS#='1002');

 15、“野萍”教师班级学习删除SC表记录;

【SCSelect

【fromcourse,Teacher

】whereCourse.C#=SC.C#andCourse。
T#=Teacher.T#andTname='叶平';

16.在SC表中插入一些记录。
这些记录必须满足以下条件:选修课程“003”的学生平均分是2,

;

InsertSCselectS#,'002',(Selectavg(score)

fromSCwhereC#='002')fromStudentwhereS#notin(SelectS#fromSCwhereC#='002');

17.所有学生“数据库”、“商业管理”和“英语”科目的分数按平均分从最高到最低的顺序显示。
学号、数据库、工商管理、英语、有效课程数、有效平均分

按学号SELECTS#

,(SELECTscoreFROMSCWHERESC.S#=t.S#ANDC#='004')AS数据库

<,(SELECTscoreFROMSCWHERESC.S#=t.S#ANDC#='001')AS企业管理

<,(SELECTscoreFROMSCWHERESC.S#=t.S#ANDC#='006')AS英语

<,COUNT(*)AS有效课程数,AVG(t.score))AS平均分

​FROMSCASt

​GROUPBYS#

​ORDERBYavg(t.score)

​18、查询各科目的最高分和最低分。
:科目ID、最高分、最低分

SELECTL.C#As科目ID、L.scoreAS最高分、R.scoreAS最低分

以FROM格式显示。
SCL,SCASR

WHEREL.C#=R.C#and

L.score=(SELECTMAX(IL.score)

FROMSCASIL,StudentASIM

WHEREL.C#=IL.C#andIM.S#=IL.S#

GROUPBYIL.C#)

R.Score=(SELECTMIN(IR.score)

FROMSCASIR

WHERER.C#=IR.C#

GROUPBYIR.C#

);

19、将各科平均分从低到高排序,通过率从高到低排序。

可选.C#AS课程编号,max(course.Cname)AS课程名称,isnull(AVG(score),0)AS平均分

=60THEN1ELSE0END)/COUNT(*)AS通过率

GROUPBYt.C#

=60THEN1ELSE0END)/COUNT(*)DESC

20.以下科目的平均成绩和查询通过率百分比(显示为“第1行”):业务管理(001)、Marx(002))、OO&UML(003)、数据库(004)

SELECTSUM(CASEWHENC#='001'THENscoreELSE0END)/SUM(CASEC#WHEN'001'THEN1ELSE0END)AS企业管理平均值Score

=60THEN1ELSE0END)/SUM(CASEWHENC#='001'THEN1ELSE0END)AS企业管理通过率

,SUM(CASEWHENC#='002'THENscoreELSE0END)/SUM(CASEC#WHEN'002'THEN1ELSE0END)AS马克思平均分

=60THEN1ELSE0END)/SUM(CASEWHENC#='002'THEN1ELSE0END)马克思去世后比率

、SUM(CASEWHENC#='003'THENscoreELSE0END)/SUM(CASEC#WHEN'003'THEN1ELSE0END)ASUML平均值得分

=60THEN1ELSE0END)/SUM(CASEWHENC#='003'THEN1ELSE0END)ASUML通过率

★,SUM(CASEWHENC#='004'THENscoreELSE0END)/SUM(CASEC#WHEN'004'THEN1ELSE0END)AS数据库平均分

=60THEN1ELSE0END)/SUM(CASEWHENC#='004'THEN1ELSE0END)AS数据库通过率

<21>平均分数按降序显示。

SELECTmax(Z.T#)AS教师ID、MAX(Z.Tname)AS教师姓名、C.C#AS科目ID、MAX(C.Cname)AS科目名称、AVG(Score)AS平均分

FROMSCAST,CourseASC,TeacherASZ

其中T.C#=C.C#andC.T#=Z.T#

GROUPBYC.C#

ORDERBYAVG(分数)DESC

22.以下科目第3至第6名查询上面学生的成绩。
:工商管理(001)、马克思(002)、UML(003)、数据库(004)

【学号】、[学生姓名]、工商管理、马克思、UML、数据库、平均分

选择ECTDISTINCTtop3

SC.S#A学号,

Student.SnameAS学生名称,

T1.scoreAS企业管理,

T3.scoreASUML,

T4.scoreAS数据库,

ISNULL(T1.score,0)+ISNULL(T2.score,0)+ISNULL(T3.score,0)+ISNULL(T4.score,0)总分

FROMStudent,SCLEFTJOINSCAST1

ONSC.S#=T1.S#ANDT1.C#='001'

LEFTJOINSCAST2

ONSC.S#=T2.S#ANDT2。
C#='002'

【LEFTJOINSCAST3

【ONSC.S#=T3.S#ANDT3.C#='003'

【LEFTJOINSCAST4

WHEREstudent.S#=SC.S#and

ISNULL(T1.score,0)+ISNULL(T2.score,0)+ISNULL(T3.score,0)+ISNULL(T4.score,0)

<不>

<(选择

唯一

TOP15WITHTIES

ISNULL(T1.score,0)+ISNULL(T2.score,0)+ISNULL(T3.score,0)+ISNULL(T4.score,0)

:FROMsc

:LEFTJOINscAST1

:ONsc.S#=T1.S#ANDT1.C#='k1'

LEFTJOINscAST2

ONsc.S#=T2.S#ANDT2.C#='k2'

LEFTJOINscAST3

ONsc.S#=T3.S#ANDT3.C#='k3'

>

​LEFTJOINScAST4

​ONsc.S#=T4.S#ANDT4.C#='k4'

ORDERBYISNULL(T1.score,0)+ISNULL(T2.score,0)+ISNULL(T3.score,0)+ISNULL(T4.score,0)DESC);

 23统计输出每个科目的分数以及每个分数范围内的人数:课程ID、课程名称、[100-85]、[85-70]、[70-60],[<60>

SELECTSC.C#课程ID,Cn表示课程名称

 ,SUM(CASEWHENscoreBETWEEN85AND100THEN1ELSE0END)AS[100-85]

、SUM(案例WHENscoreBETWEEN70AND85THEN1ELSE0END)AS[85-70]

A,SUM(CASEWHENscoreBETWEEN60AND70THEN1ELSE0END)AS[70-60]

,SUM(CASEWHENscore<60THEN1ELSE0END>

​FROMSC,课程

【其中SC.C#=课程.C#

【GROUPBYSC.C#,Cname;

【24.查看学生平均成绩及排名

SELECTT1+(SELECTCOUNT(唯一平均分)

FROM(SELECTS#,AVG(score)AS平均分得分

​FROMSC

​GROUPBYS#

​)AST1

T2.平均分)按排名,

S#学生人数,平均分

来自

(NamdongLECTS#,AVG(分数)平均值得分

​FROMSC

​GROUPBYS#

​)AST2

​ORDERBY平均得分desc;

25、查询各科成绩前3名的记录:(不分平分)

SELECTt1.S#按学号,t1.C#按课程号,Scoreas成绩

FROMSCt1

WHEREscoreIN(SELECTTOP3score

FROMSC

WHEREt1.C#=C#

ORDERBYscoreDESC

)

ORDERBYt1.C#;

26、查询每个项目选中的学生人数

selectc#,count(S#)fromscgroupbyC#;

27.输入仅修读一门课程的所有学生的学号和姓名。
查询。

selectSC.S#,Student.Sname,count(C#)AS课程选择计数

fromSC,Student

其中SC.S#=Student.S#groupbySC.S#,Student.Snamehavingcount(C#)=1;

28.男女学生人数查询。

从StudentgroupbySsexha中选择count(Ssex)作为男生的数量。
vingSsex='male';

Selectcount(Ssex)asnumberofgirlsfromStudentgroupbySsexhavingSsex='female';

29、查询姓“张”的学生列表

SELECTSnameFROMStudentWHERESnamelike'张%';

30、查询同名同性别的学生列表,统计同名学生的数量计算。

1;;

31、1981年出生的学生列表(注:Student表的Sage列类型为:Date/次)

selectSname,CONVERT(char(11),DATEPART(year,Sage))asage

:来自学生

:其中CONVERT(char(11),DATEPART(year,Sage))))='1981';

<32>按成绩和平均成绩升序排列结果,平均成绩相同时按科目编号降序排列。

SelectC#,Avg(score)fromSCgroupbyC#orderbyAvg(score),C#降序;

33.查询所有学生的平均分是否高于85分。
学生编号、姓名和平均成绩

selectSname,SC.S#,avg(score)

fromStudent,SC

whereStudent.S#=SC。
#groupbySC.S#,Snamehavingavg(score)>85;

34、查询科目名称为“数据库”且分数小于60的学生的姓名和分数。

SelectSname,isnull(score,0)

fromStudent,SC,课程

whereSC.S#=Student.S#andSC.C#=Course.C#andCourse.Cname='database'andscore<60>

35.查询所有学生的选课状态;

SELECTSC.S#,SC.C#,Sname,Cname

FROMSC,学生,课程

其中SC.S#=Student.S#andSC。
C#=Course.C#;

36、查询70分及以上所有课程的名称、课程名称、成绩。

SELECTdistinctstudent.S#,student.Sname,SC.C#,SC.score

​FROMstudent,Sc

=70ANDSC.S#=student.S#;

​37、勾选不及格科目,输入科目按。
它们从最大到最小排列。

ectc#fromscwherescore<60orderbyC>

38。
查询课号为003、课程成绩80分及以上的学生的学号和姓名。

选择SC.S#,学生。
omSC,StudentwhereSC.S#=Student.S#andScore>80andC#='003';

39.查找选择课程的学生人数

selectcount(*)fromsc;

40.查询选修“叶平”所教课程的得分最高学生的姓名和分数。

selectStudent.Sname,score

fromStudent,SC,CourseC,Teacher

selectStudent.Sname,score

fromStudent,SC,CourseC,Teacher

>

其中Student.S#=SC.S#andSC.C#=C.C#andC.T#=Teacher.T#andTeacher.Tname='是Ping'andSC.score=(selectmax(score)fromSCwhereC#=C.C#);

41、查询每门课程及其选课数。

selectcount(*)fromscgroupbyC#;

42.查询各类课程。
学号,学号,同年级学生人数Score

【selectdistinctA.S#,B.scorefromSCA,SCB其中A.Score=B.ScoreandA.C#<>B.C#;

43、每项技能前2名成绩查询名称

SELECTt1.S#为学生ID,t1.C#为课程ID,Scoreas分数

FROMSCt1

WHEREscoreIN(SELECTTOP2score

FROMSC

:WHEREt1.C#=C#

:ORDERBYscoreDESC

<)

<44>您必须打印出您的学号和所选学生的人数。
搜索结果按照人数降序排列。
如果人数相同,则搜索结果按学号升序排列。
.

选择C#作为课程编号,选择count(*)作为人数。

fromsc

【groupbyC#

【orderbycount(*)desc,c#

【45.修读至少2门课程的学生人数搜索。

选择S#

fromsc

【groupbys#

=2

【46.查看所有学生所修科目的科目编号和科目名称。

选择C#、Cna我

【fromCourse

【whereC#in(selectc#fromscgroupbyc#)

【47.询问那些没有上过“野萍”老师所教课程的人。
学生姓名

selectSnamefromStudentwhereS#notin(selectS#fromCourse,Teacher,SCwhereCourse.T#=Teacher.T#andSC.C#=course.C#andTname='叶平');

48、查询两科及以上科目不及格的学生人数及平均成绩

selectS#,avg(isnull(score,0))fromomSCwhereS#in(selectS#fromSCwherescore<60groupbyS>2)groupbyS#;

49.搜索小于“004”的课程分数。
60.学生人数按分数降序排列

selectS#fromSCwhereC#='004'andscore<60orderbyscoredesc>

50.删除“002”;学生​​“001”课程成绩

deletefromScwhereS#='001'andC#='001';

;

软件测试常用SQL语句总结,快来看

软件测试中常用的SQL语句概述

1.数据定义语言(DDL)

创建和管理数据库结构操作库:定义、创建、修改数据库操作表:创建、修改、删除结构表结构

2.数据操作语言(DML)

处理插入和删除数据更改操作插入:`INSERTINTO`语句删除:`DELETE`语句修改:语句命令`UPDATE`

3.数据查询语言(DQL)

基本和高级查询技巧排序:使用多个条件时,`ORDERBY`按特定规则聚合功能:数值统计列,如COUNT()、SUM()、AVG()、ETC。
分组查询:`GROUPBY`配合聚合函数查询分组数据:`LIMIT`用于设置。
查询每个页面显示数据的连接:内连接、外连接,如隐式和显式内连接。
子查询:嵌套查询、单行/多行/多列数据应用

4数据控制语言(DCL)

管理用户并控制授予和撤销权限删除用户

上述SQL语言是软件测试中不可缺少的一部分,掌握它们可以有效提高测试效率。
对于测试工程师来说,掌握这些知识有助于更深入的系统测试和数据验证。
对于自学或专业开发,以下资源可能有用:

环境包测试文档模板和项目源代码访谈自动化测试指南常见问题解答集合测试Python/Java视频教程测试真实世界文档

如果您有任何疑问或需要更多资源,请加入聊天群以获得专家家族的支持和解答。

数据库常用sql语句有哪些

例如删除stuinfotest1数据表,SQL语句为:Insertrecord此时stuinfo表为空,没有任何数据。
我们想要将记录插入到表中。

sql=selectsum(字段名)作为数据表的别名,其中条件表达式setrs=conn.excute(sql)使用rs(别名)获取统计值,其他函数使用同上。

访问数据库:SELECTiif(len(字段)2,left(字段,2)+...,字段)FROMtablename;Conn.Execute说明Execute方法该方法用于执行SQL语句。