日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php单表查询语句,单表查询

發(fā)布時間:2025/4/5 php 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php单表查询语句,单表查询 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、SQL數(shù)據(jù)查詢的一般格式

數(shù)據(jù)查詢是數(shù)據(jù)庫的核心操作。SQL提供了SELECT語句進行數(shù)據(jù)查詢,其一般格式為:

SELECT [ALL | DISTINCT][,]···

FROM[,···] | (SELECT語句>)[AS]

[WHERE]

[GROUP BY[HAVING]]

[ORDER BY[ASC | DESC]];

整個SELECT語句的含義是,根據(jù)WHERE子句的條件表達式從FROM子句指定的基本表、視圖或派生表中找出滿足條件的元組,再按SELECT子句中的目標列表達式選出元組中的屬性值形成結(jié)果表。

如果有GROUP BY子句,則將結(jié)果按的值進行分組,該屬性列值相等的元組為一個組。通常會在每組中作用聚集函數(shù)。如果GROUP BY子句帶HAVING短語,則只有滿足指定條件的組才予以輸出。

如果有ORDER BY子句,則結(jié)果還要按的值的升序或降序排序。

SELECT語句既可以完成簡單的單表查詢,也可以完成復(fù)雜的連接查詢和嵌套查詢。

二、SQL單表查詢(僅涉及一個表的查詢)

1.選擇表中的若干列

(1)查詢指定列

查詢?nèi)w學(xué)生的學(xué)號與姓名

SELECT Sno,Sname

FROM Student;

查詢?nèi)w學(xué)生的姓名、學(xué)號、所在系

SELECT Sname,Sno,Sdept

FROM Student;

(2)查詢?nèi)苛?/p>

查詢?nèi)w學(xué)生的詳細記錄

SELECT *

FROM Students;

等價于

SELECT Sno,Sname,Ssex,Sage,Sdept

FROM Student;

(3)查詢經(jīng)過計算的值

查詢?nèi)w學(xué)生的姓名及其出生年份

SELECT Sname,2014-Sage //查詢結(jié)果的第2列是一個 算術(shù)表達式

FROM Student;

注意:用當時的年份(假設(shè)為2014年)減去學(xué)生的年齡,這樣所得的即是學(xué)生的出生年份。

查詢?nèi)w學(xué)生的姓名、出生年份和所在的院系,要求用小寫字母表示系名

SELECT Sname,'Year of Birth:',2014-Sage,LOWER(Sdept)

FROM Student;

2.選擇表中的若干組

(1)消除取值重復(fù)的行

查詢選修了課程的學(xué)生學(xué)號

SELECT DISTINCT Sno

FROM SC;

(2)查詢滿足條件的元組

查詢滿足指定條件的元組可以通過WHERE子句實現(xiàn)。WHERE子句常用的查詢條件如下表所示查詢條件謂詞

比較=,>,=,<=,!=,<>,!>,!

確定范圍BETWEEN AND,NOT BETWEEN AND

確定集合IN,NOT IN

字符匹配LIKE,NOT LIKE

空值IS NULL,IS NOT NULL

多重條件(邏輯運算)AND,OR,NOT

查詢計算機科學(xué)系全體學(xué)生的名單

SELECT Sname

FROM Student

WHERE Sdept='CS'

查詢所有年齡在20歲以下的學(xué)生姓名及其年齡

SELECT Sname,Sage

FROM Student

WHERE Sage<20;

查詢考試成績不合格的學(xué)生的學(xué)號

SELECT DISTINCT Sno

FROM SC

WHERE Grade<60;

查詢年齡在20~23歲之間的學(xué)生的姓名、系別和年齡

SELECT Sname,Sdept,Sage

FROM Student

WHERE Sage BETWEEN 20 AND 23

查詢年齡在20~23歲之間的學(xué)生的姓名、系別和年齡

SELECT Sname,Sdept,Sage

FROM Student

WHERE Sage NOT BETWEEN 20 AND 23

查詢計算機科學(xué)系(CS)、數(shù)學(xué)系(MA)和信息系(IS)學(xué)生的姓名、系別和年齡

SELECT Sname,Ssex

FROM Student

WHERE Sdept IN('CS','MA','IS');

查詢學(xué)號為201215121的學(xué)生的詳細情況

SELECT *

FROM Student

WHERE Sno LIKE '201215121'

等價于

SELECT *

FROM Student

WHERE Sno='201215121'

此處介紹下字符匹配

謂詞LIKE可以用來進行字符串的匹配。其一般語法格式如下:

[NOT] LIKE'' [ESCAPE '']

其含義是查找指定的屬性列值與相匹配的元組。可以是一個完整的字符串,也可以含有通配符 % 和 _。其中:%(百分號)代表任意長度(長度可以為0)的字符串。例如:a%b 表示以a開頭,以b結(jié)尾的任意長度的字符串。如acb、addgb、ab等。

_(下劃線)代表任意單個字符。例如:a_b表示以a開頭,以b結(jié)尾的長度為3的任意字符串。如acb、agb等。

查詢所有姓劉的學(xué)生的姓名、學(xué)號和性別

SELECT Sname,Sno,Ssex

FROM Student

WHERE Sname LIKE '劉%';

查詢姓“歐陽”且全名為三個漢字的學(xué)生的姓名

SELECT Sname

FROM Student

WHERE Sname LIKE '歐陽_'

注意:數(shù)據(jù)庫字集為ASCII時一個漢字需要兩個_;當字符集為GBK時只需要一個。

查詢名字中第二個字為“陽”的學(xué)生的姓名和學(xué)號

SELECT Sname,Sno,

FROM Student

WHERE Sname LIKE '_陽%';

查詢所有不姓劉的學(xué)生的姓名、學(xué)號和性別

SELECT Sname,Sno,Ssex

FROM Student

WHERE Sname NOT LIKE '劉%';

如果用戶要查詢的字符串本身就含有通配符%或_,這時就要使用 ESCAPE '' 短語對通配符進行轉(zhuǎn)義了。

查詢DB_Design 課程的課程號和學(xué)分

SELECT Cno,Ccredit

FROM Course

WHERE Cname LIKE 'DB \ _Design' ESCAPE '\';

ESCAPE '\' 表示 “\” 為換碼字符。這樣匹配串中緊跟在 “\” 后面的字符“_”不再具有通配符的含義,轉(zhuǎn)義為普通的“_”字符。

查詢以“DB_”開頭,且倒數(shù)第三個字符為i的課程的詳細情況

SELECT *

FROM Course

WHERE Cname LIKE 'DB \_%i__'ESCAPE '\';

某些學(xué)生選修課程后沒有參加考試,所以有選課記錄,但沒有考試成績。查詢?nèi)鄙俪煽兊膶W(xué)生的學(xué)號和相應(yīng)的課程號

SELECT Sno,Cno

FROM SC

WHERE Grade IS NULL; /*分數(shù)Grade是空值*/

注意:這里的“IS”不能用等號(=)代替。

查所有有成績的學(xué)生學(xué)號和課程號

SELECT Sno,Cno

FROM SC

WHERE Grade IS NOT NULL;

查詢計算機科學(xué)系年齡在20歲以下的學(xué)生姓名

SELECT Sname

FROM Student

WHERE Sdept='CS' AND Sage<20;

總結(jié)

以上是生活随笔為你收集整理的php单表查询语句,单表查询的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。