【MySQL】4、Select查詢語句

4.Select查詢語句

4.1、select語句

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";// 創建連接
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {die("連接失敗: " . mysqli_connect_error());
}$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = mysqli_query($conn, $sql);   if (mysqli_num_rows($result) > 0) {    //判斷結果集是否有數據// 輸出數據while($row = mysqli_fetch_array($result)) {echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";}
} else {echo "0 結果";
}mysqli_close($conn);
?>

上面這個例子在 $sql 變量中存放由 mysqli_query() 函數返回的數據。接下來,我們使用 mysqli_fetch_array() 函數以數組的形式從記錄集返回第一行。每個隨后對 mysqli_fetch_array() 函數的調用都會返回記錄集中的下一行。?while loop 語句會循環記錄集中的所有記錄。為了輸出每行的值,我們使用了 PHP 的 $result 變量 ($result['FirstName'] 和 $result['LastName'])。

4.2、MySQL Where 條件子句

如需選取匹配指定條件的數據,請向 SELECT 語句添加 WHERE 子句。

SELECT * FROM user WHERE id = 1

下面的運算符可與 WHERE 子句一起使用:

運算符說明
=等于
!=不等于
>大于
<小于
>=大于或等于
<=小于或等于
BETWEEN介于一個包含范圍內
LIKE搜索匹配的模式

注釋:SQL 語句對大小寫不敏感。WHERE 與 where 等效。

4.3、Order By 排序關鍵詞

ORDER BY 關鍵詞用于對記錄集中的數據進行排序。

SELECT column_name(s) FROM table_name ORDER BY column_name

升序或降序的排序

如果您使用 order by 關鍵詞,記錄集的排序順序默認是升序(1 在 9 之前,"a" 在 "p" 之前)。

請使用 DESC 關鍵詞來設定降序排序(9 在 1 之前,"p" 在 "a" 之前):

SELECT column_name(s) FROM table_name ORDER BY column_name DESC

根據兩列進行排序

可以根據多個列進行排序。當按照多個列進行排序時,只有第一列相同時才使用第二列:

SELECT column_name(s) FROM table_name ORDER BY column_name1, column_name2

4.4、limit 限定查詢語句

limit 關鍵詞用于對指定記錄進行查詢,常用于分頁顯示記錄。

select * from guestbook limit  4 , 10 //獲取從第4條后的10條信息
select * from guestbook order by id desc limit  5       //按降序獲取前五條信息

這條語句表示在guestbook表里獲取從第5條開始到第14條結束的記錄。

4.5、like關鍵字的模糊查詢

1、使用通配符“%”的 where 子句

通配符 % 表示 0 個或多個、任意長度和類型的字符,包括中文漢字。
示例 :查找所有包含“好”字或“高”字的文章(這時可以配合 or 運算符來使用)
select * from tb_file where content like '%好%' or content like '%高%';

2、使用通配符“_”的 where 子句

通配符“_”表示匹配任意的單個字符。
示例 :查找用戶名只包含 5 個字符,其中后 4 個字符為 soft 的用戶。代碼如下:
select * from tb_user where regname like '_soft';?
注意:?使用 MySQL 做模糊查詢要注意編碼問題。 如果編碼不統一, 那么查詢時就容易查不到數據,或返回的數據不匹配。所以在安裝 MySQL 時,要保持和系統編碼的統一。常用的編碼格式有 gb2312、ISO-8859-1、utf8 和 gbk 等。

4.6、常規多表查詢(兩個表具有相同的公共字段)

selete * form a,b where a.c=b.c      //c為兩個表中相同的字段,返回a表和b表條件匹配的所有記錄
select * from a left join b where a.c=b.c        //效果同第一句,返回a表和b表條件匹配的所有記錄
注意:
1、第二條語句中,如果用on代替where,則會返回a表所有的記錄和b表條件匹配的記錄。
2、on篩選后再用where子句篩選,和只用where篩選子句的效果相同。
3、兩(多)個表查詢,1(條記錄)-1(條記錄)的記錄查詢出來將顯示一條。1(條記錄)-N(條記錄)的記錄查詢將顯示N條,1部分重復顯示。

left join左連接顯示兩個表的數據詳解

(兩個表具有相同的公共字段)
left join關鍵字會從左表 那里返回所有的記錄,即使在右表 中沒有匹配的行。同時返回右表匹配的記錄。
語法:
select 左表名.字段名,右表名.字段名 from 左表名 left join 右表名  on 左表名.字段名=右表名.字段名
例如:

"Persons" 表:

Id_PLastNameFirstNameAddressCity
1AdamsJohnOxford StreetLondon
2BushGeorgeFifth AvenueNew York

"Orders" 表:

Id_OOrderNoId_P
3224561
4245621
您可以使用下面的 select語句:
select Persons.LastName, Persons.FirstName, Orders.OrderNo from Persons left join Orders ON Persons.Id_P=Orders.Id_P?order by Persons.LastName

結果集:

LastNameFirstNameOrderNo
AdamsJohn22456
AdamsJohn24562
BushGeorge?

注意:在使用left jion時,on和where條件的區別如下:

1、 on條件是在生成臨時表時使用的條件,它不管on中的條件是否為真,都會返回左邊表中的記錄。

2、where條件是在臨時表生成好后,再對臨時表進行過濾的條件。這時已經沒有left join的含義(必須返回左邊表的記錄)了,條件不為真的就全部過濾掉(....left jion...where... 查詢多個表的結果 = ?.... from....where... 查詢多個表的結果相同)。

4.7、GROUP BY 語句

GROUP BY 語句用于結合聚合函數(sum、avg、count、max、min),根據一個或多個列對結果集進行分組統計。
合計函數 (比如 SUM) 常常需要添加 GROUP BY 語句。

舉例:我們擁有下面這個 "Orders" 表:

O_IdOrderDateOrderPriceCustomer
12008/12/291000Bush
22008/11/231600Carter
32008/10/05700Bush
42008/09/28300Bush
52008/08/062000Adams
62008/07/21100Carter

現在,我們希望查找每個客戶的總金額(總訂單)。我們想要使用 GROUP BY 語句對客戶進行組合。

我們使用下列 SQL 語句:

SELECT Customer,SUM(OrderPrice) FROM Orders
GROUP BY Customer                       //根據客戶名字進行統計分組,可同時并存多種分組方式。用逗號隔開

結果集類似這樣:

CustomerSUM(OrderPrice)
Bush2000
Carter1700
Adams2000
注意:在查詢條件中使用聚合函數,不能使用where子句連接,需要用having子句連接。
//having在group by 之后使用
SELECT * from website GROUP BY name HAVING SUM(count) > 200;

4.8、IN子句

IN 操作符指定查詢的條件,允許您在 WHERE 子句中規定多個值。
//下面語句查詢1、3年級的學生:
SELECT * FROM student WHERE grade IN ('1','2');

?

?
?
?
?
?

轉載于:https://www.cnblogs.com/php99/p/9761839.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/277113.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/277113.shtml
英文地址,請注明出處:http://en.pswp.cn/news/277113.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

一、環境調試確認

1、確認系統網絡 2、確認yum可用 3、確認關閉iptables規則 4、確認停用selinux 兩項安裝 yum -y install gcc gcc-c autoconf pcre pcre-devel make automake yum -y install wget httpd-tools vim 一次初始化 cd /opt/ mkdir app backup download logs work轉載于:https…

JavaScript方法

1、hasOwnProperty&#xff1a;是用來判斷一個對象是否有你給出名稱的屬性或對象。不過需要注意的是&#xff0c;此方法無法檢查該對象的原型鏈中是否具有該屬性&#xff0c;該屬性必須是對象本身的一個成員。isPrototypeOf是用來判斷要檢查其原型鏈的對象是否存在于指定對象實…

Ajax:如何運用updatepanle進行局部刷新

1.設定ScriptManager的EnablePartialRendering"true"(一般默認為true)2.設定要進行局部刷新panel的UpdateMode"Conditional"(本panel 的id為zz) 這樣就可以保在本panle內的控件操作refresh頁面時&#xff0c; 不會將整個page刷新&#xff0c;而刷新本pan…

Shell語法—— while 條件語句

while 循環語句 while 循環語句語法格式為&#xff1a; while < 條件表達式 > do指令 done 有關腳本運行的相關用法 命令說明sh file.sh &把 file.sh 腳本放到后臺運行&#xff08;后臺運行腳本的常用方法&#xff09;ctlc停止執行當前腳本或任務ctlz暫停執行當前腳本…

C變量常量

變量是指其值可以變化的量。計算機中&#xff0c;指令代碼、數據都存儲于內存中。變量也需要存儲在內存中。在計算機中&#xff0c;每個變量都被分配了一塊內存空間&#xff0c;在這些空間里存儲的就是變量的值。變量之所以可以變化&#xff0c;就是這個存儲空間可以存儲不同的…

slot

slot就是父組件把內容分發給子組件,插槽模板是slot&#xff0c;它是一個空殼子&#xff0c;因為它的顯示與隱藏以及最后用什么樣的html模板顯示由父組件控制。但是插槽顯示的位置確由子組件自身決定&#xff0c;slot寫在組件template的什么位置&#xff0c;父組件傳過來的模板將…

手把手教你可復用的SSO組件設計(設計篇)

周末陪女朋友去了&#xff0c;沒寫&#xff0c;告罪&#xff0c;上班后急忙補上。 這里說到了可復用得設計&#xff0c;所謂可復用就是指的&#xff0c;引入Dll&#xff0c;改改配置就能使用&#xff0c;而不是打開源代碼東改改西改改再來調試調試最后OK。我們這里盡量提高抽象…

Object類和常用的API

第一章Object類 1.1 概述 1),Object 類是Java語言所有“引用類型”的父類&#xff0c;括我們自定義的類、類庫中的類&#xff0c;數組&#xff0c;集合&#xff0c;字符串。 2),所有的的引用類型都從Object類繼承了一些方法&#xff1a; 如&#xff0c;1).toString() 2).equal…

前端能力劃分

前端學習學的是什么&#xff0c;在不同的階段我思考這個問題。 最近的結論是&#xff1a;前端學習要學的是前端的三大能力。工程能力&#xff0c;架構能力&#xff0c;開發能力。 工程能力 工程能力的范疇我認為涵蓋了項目模板的自動化生成、項目的自動化編譯和構建。 當然傳統…

英語學習網址

英文寫作網 &#xff08; www.4ewriting.com &#xff09;提供英文寫作的各種相關技巧&#xff0c;主要內容包括寫作語法文法、應用寫作、考試作文、寫作范文、背景文化 佳作欣賞、原創發表、英文blog、英語筆友、名師指導、寫作論壇等。 1. 英語學習&#xff1a;英語學習頻道(…

Anaconda+vscode+pytorch環境搭建

1、安裝Anaconda Anaconda指的是一個開源的Python發行版本&#xff0c;其包含了conda、Python等180多個科學包及其依賴項。在官網上下載https://www.anaconda.com/distribution/&#xff0c;因為服務器在國外會很慢&#xff0c;建議從清華鏡像https://mirrors.tuna.tsinghua.ed…

git learn

$ git config --global user.name "Your Name" $ git config --global user.email "emailexample.com"因為Git是分布式版本控制系統&#xff0c;所以&#xff0c;每個機器都必須自報家門&#xff1a;你的名字和Email地址。你也許會擔心&#xff0c;如果有人…

C#.NET 中的類型轉換

C# 出來也有些日子了&#xff0c;最近由于編程的需要&#xff0c;對 C# 的類型轉換做了一些研究&#xff0c;其內容涉及 C# 的裝箱/拆箱/別名、數值類型間相互轉換、字符的 ASCII 碼和 Unicode 碼、數值字符串和數值之間的轉換、字符串和字符數組/字節數組之間的轉換、各種數值…

AngularJS的學習--$on、$emit和$broadcast的使用

來源&#xff1a;http://www.cnblogs.com/CraryPrimitiveMan/p/3679552.html AngularJS中的作用域有一個非常有層次和嵌套分明的結構。其中它們都有一個主要的$rootScope(也就說對應的Angular應用或者ng-app)&#xff0c;然后其他所有的作用域部分都是繼承自這個$rootScope的&a…

17、【 商品管理模塊開發】——后臺商品圖片的springmvc和富文本上傳以及ftp文件服務器的開發...

1、FTP文件服務器的搭建&#xff1a; 軟件下載&#xff1a;ftpserver&#xff1b; image.png瀏覽器訪問&#xff1a;ftp://127.0.0.1/image.png點擊任意一個文件&#xff0c;就可以看到我們圖片啦&#xff0c;前提是前面指定的目錄里面有圖片文件~ image.png2、接口編寫&#x…

我們常說……

從過完元旦到現在&#xff0c;乖乖在公司辦公的時間很少&#xff0c;好多時候都是在外地&#xff0c;或者是在路上、車上。有n多次&#xff0c;乖乖一天至少坐6個小時的車&#xff0c;回到家里都是帶著一身的疲憊&#xff0c;雖然他并不表現出來&#xff0c;但是因為長時間坐車…

那些油管上高質量的學習編程的頻道 之一

國內確實有很多不錯的學習編程的網站或者個人博客&#xff0c;但是對于初學者&#xff0c;往往更希望獲得那種引導性的教學&#xff1a;即一步一步的教你跟著操作的教學。這種教學最好的方式當然就是視頻了。畢竟在Apple Podcast上超火爆的斯坦福教授iOS開發的課程也是這種形式…

SQL Server 2005 Express附加(Attach)的數據庫為“只讀”的解決方法

我的操作系統為Windows 2003 Server , 文件系統NTFS, 在SQL Server 2005 Express 上附加(Attach)從另外一臺電腦Copy過來的數據庫后&#xff0c;數據庫為“只讀”。如下圖&#xff1a; 解決辦法&#xff1a; 打開 SQL Server Configuration Manager, 打開SQL Server SQLEXPRESS…

[導入]blog年終小結

1. 2006-11-30 注冊了本域名thws.cn&#xff0c;喜歡的thw.com被注冊了&#xff0c;只好退而就其次了&#xff1b;2. 12-20在alexa上登陸站點&#xff0c;綜合排名從起初490多萬上升到現在的590327,下期566,880&#xff1b;3. 2007-1-11適逢google PR更新&#xff0c;PR值從0變…

Maven學習筆記(2) --mvn archetype:create 說明

前面一篇相對比較簡單。 看完前面的內容我們會來到實戰部分&#xff0c;也就是創建一個簡單的項目 1 mvn archetype:create -DgroupIdorg.sonatype.mavenbook.ch03 \ 2 -DartifactIdsimple \ 3 -DpackageNameorg.sonatype.mavenbook 于是我們得到了步入Maven領域的第一份打擊 真…