sqlsub
㈠ 数据库连接能否使用sub函数
function OpenConn(DataStr) '数据库连接
'dim conn,db
'dim connstr
db=""&DataStr&".accdb" '数据库文件位置
connstr="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Server.MapPath(""&db&"")
on error resume next
set OpenConn=server.createobject("ADODB.CONNECTION")
if err then
err.clear
Response.Write("服务器维护中,请稍后再试!")
else
OpenConn.open connstr
end if
end function
这里是调用 的
set rs=server.createobject("adodb.recordset")
sql="select * from admin where username='"&username&"'"
rs.open sql,OpenConn("data/data"),3,3
㈡ sql执行报错:sub select detect
碰到相同问题,已解决
是用的PHPMyWind框架吧,全局搜索sub select detect,会在mysql连接配置文件中发现这样的描述"老版本的MYSQL不支持子查询,我们的程序里可能也用得少,但是黑客可以使用它来查询数据库敏感信息",可以发现这一个判断条件"preg_match('~\([^)]*?select~s', $clean) != 0",用来匹配你子查询的.
给$fail值改成false就行了
㈢ sql多表联合查询步骤是什么
有内联左联右联具体字段需要表名加上字段也可以把表名as为一个简单的单词
例如表a有字段:学号课程表b有字段:学号姓名查询每个学生姓名和对应的课程
内联:selecta.课程,b.姓名fromainnerjoinbona.学号=b.学号
左联:selecta.课程,b.姓名fromaleftjoinbona.学号=b.学号
右联:selecta.课程,b.姓名fromarightjoinbona.学号=b.学号
内联是表a和b内容都匹配的才显示
左联是匹配左边这张表内容后面on和where条件匹配的话显示左边这张表的所有数据
右联和左联一样理解
㈣ SQL中什么叫函数 什么叫参数它们的概念!
函数,就是编程中的方法。就比如现实中要把生菜做成美味可口的佳肴的时候,必须经过烹饪,而烹饪的方法都不一样。函数就如这烹饪方法一样。而参数就如这烹饪的食材一样。
㈤ sql语言多表查询
1.查询有不及格成绩的学生姓名
select studName from T_stud
join T_select on T_stud.studNo = T_select.studNo
where score < 60
2.查询有选课的学生姓名和选课数量
select studName,count(*) from T_stud
right join (select studNo,count(*)
from T_select where 1=1 having count(*) > 0
group by studNo ) as A
on T_stud.studNo = A.studNo
3.查询选修了60岁以上老师所教课程的所有学生
select distinct B.studName
from ( select A.studNo,A.studName,teacherNo
from ( select studNo,studName,subNo
from T_stud join T_select
on T_stud.studNo = T_select.studNo ) as A
join T_Sub on T_Sub.subNo = A.subNo ) as B
join T_teacher on T_teacher.teacherNo = B.teacherNo
where T_teacher.teacherAge > 60
4.洪七公老师的学生中,考试不及格的人数(姓名列表)
select distinct B.studName
from ( select A.studNo,A.studName,teacherNo
from ( select studNo,studName,subNo
from T_stud join T_select
on T_stud.studNo = T_select.studNo
where T_select.score < 60 ) as A
join T_Sub on T_Sub.subNo = A.subNo ) as B
join T_teacher on T_teacher.teacherNo = B.teacherNo
where T_teacher.teacherName like '洪七公'
5.洪七公老师教的学生列表以及选修的课程
select B.studName,B.subName
from ( select A.studNo,A.studName,teacherNo,subName
from ( select studNo,studName,subNo
from T_stud join T_select
on T_stud.studNo = T_select.studNo
where T_select.score < 60 ) as A
join T_Sub on T_Sub.subNo = A.subNo ) as B
join T_teacher on T_teacher.teacherNo = B.teacherNo
where T_teacher.teacherName like '洪七公'
6.所有大于50岁老师姓名列表
select teacherName from T_teacher
where teacherAge > 50
7.郭靖的课程平均分
select avg(score) from T_stud
join T_select on T_stud.studNo = T_select.studNo
where studName like '郭靖'
8.王语嫣所选课程名称列表
select subName
from (select subNo
from T_stud join T_select
on T_stud.studNo = T_select.studNo
where studName like '王语嫣') as A
join T_Sub on T_Sub.subNo = A.subNo
9.选修学生最多的课程(这里没有考虑同时多门课程的选修数相等的情况)
select subName
from (select top(1) subNo,count(*)
from T_select
group by subNo order by subNo desc ) as A
join T_Sub on T_Sub.subNo = A.subNo
10.所教学生最多的老师
其他的没时间了,你自己去试着写写吧。。。
㈥ SQL server2000 中如何将,表“sub1”,将列名为“ID”中的“0402010B00”,按照列名为“记录时间”查找
SQLSERVER支持TOP N,按照时间倒序排,取第一个
select top 1 * from sub1 where [id] = '0402010B00' order by 记录时间 desc
