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
