十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
OR是SQL的關(guān)鍵字,所以不管是SQL SERVER,還是oracle,都是用OR來表示或的
成都創(chuàng)新互聯(lián)成立于2013年,先為德欽等服務(wù)建站,德欽等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為德欽企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
不是你寫錯(cuò)了,而是你后面的那個(gè)or xx is null應(yīng)該是你table里面有超多這樣的紀(jì)錄,所以就出現(xiàn)了很多條,可以通過括號(hào)來改變and or的次序
譬如
select * from [表名] where name = 'xx' and (password is null or xx is null )
and就是與的意思,所有條件都必須成立,
or就是或的意思,只要其中一個(gè)條件成立就行。
and優(yōu)先級(jí)大于or。
加括號(hào)則優(yōu)先執(zhí)行or,后執(zhí)行and;不加括號(hào),會(huì)先執(zhí)行and,再執(zhí)行or,所以查詢結(jié)果不同。舉例:
數(shù)據(jù)庫存在數(shù)據(jù):
Thomas Carter
William?Carter
Thomas?King
執(zhí)行:SELECT * FROM Persons WHERE (FirstName='Thomas' OR FirstName='William')
AND LastName='Carter'
結(jié)果為:
Thomas?Carter
William?Carter
執(zhí)行:SELECT * FROM Persons WHERE FirstName='Thomas' OR FirstName='William'
AND LastName='Carter'
結(jié)果為:
Thomas?Carter
William?Carter
Thomas?King
擴(kuò)展資料:
ORACLE數(shù)據(jù)庫特點(diǎn):
1、完整的數(shù)據(jù)管理功能:
(1)數(shù)據(jù)的大量性
(2)數(shù)據(jù)的保存的持久性
(3)數(shù)據(jù)的共享性
(4)數(shù)據(jù)的可靠性
2、完備關(guān)系的產(chǎn)品:
(1)信息準(zhǔn)則---關(guān)系型DBMS的所有信息都應(yīng)在邏輯上用一種方法,即表中的值顯式地表示;
(2)保證訪問的準(zhǔn)則
(3)視圖更新準(zhǔn)則---只要形成視圖的表中的數(shù)據(jù)變化了,相應(yīng)的視圖中的數(shù)據(jù)同時(shí)變化
(4)數(shù)據(jù)物理性和邏輯性獨(dú)立準(zhǔn)則
3、分布式處理功能:ORACLE數(shù)據(jù)庫自第5版起就提供了分布式處理能力,到第7版就有比較完善的分布式數(shù)據(jù)庫功能了,一個(gè)ORACLE分布式數(shù)據(jù)庫由oraclerdbms、sql*Net、SQL*CONNECT和其他非ORACLE的關(guān)系型產(chǎn)品構(gòu)成。
4、用ORACLE能輕松的實(shí)現(xiàn)數(shù)據(jù)倉庫的操作。
參考資料:百度百科-Oracle數(shù)據(jù)庫
要優(yōu)化or查詢,只要你知道一點(diǎn):
sql or查詢是左截?cái)嗟?,也就是指要or符合條件,就不再走后面的or checking了
明白了這個(gè),唯一的優(yōu)化方案就是
把越能命中的or語句放到最前面,增加前面減少后面的or 邏輯判斷