⑴ mysql常用查詢命令
1. SELECT:查詢內容,語法:SELECT 列名稱 FROM 表名稱
2. SELECT DISTINCT 查詢非重復內容,語法:SELECT DISTINCT 列名稱 FROM 表名稱
3. WHERE 查詢條件, 子句中可以指定任何條件,條件與條件之間用and 和 or 隔開
語法:SELECT 列名稱 FROM 表名稱 WHERE條件1 AND 條件2
4. AND 和 OR 運算符,將 WHERE 中的多個條件結合起來。操作符包括:=(等於)、<>或=!(不等於)、>(大於)、<(小於)、>=(大於等於)、<=(小於等於)
空值條件:IS NULL;非空值IS NOT NULL;查詢多個值IN()
5. ORDER BY 排序,默認為升序,欄位後加DESC為降序
6. GROUP BY 分組 ,對結果進行分組
7. LEFT JOIN 左連接,兩張表合並保留左表的全部內容,只要掌握左連接
語法:SELECT列名稱 FROM 表1 LEFT JOIN 表2 ON 表1.某列 = 表2.某列
了解:RIGHT JOIN(右連接),INNER JOIN(內連接)、FULL JOIN(全連接)
8. UNION all上下合並,兩張表上下合並(了解)
9. LIKE 模糊查詢(了解)
語法: SELECT 列名稱 FROM 表名稱 WHERE 某列 like 「%字元%」
10.SUM 求和
語法:SELECT SUM(列名稱) FROM 表名稱
11. COUNT 計數
語法:SELECT COUNT(列名稱) FROM 表名稱
12. IF 判斷 語法:同excel
13. MIN,MAX等
14. round 四捨五入
15. concat 字元串連接
16. UPDATE:修改內容,語法:update 表名 set 修改欄位= 新內容 where 修改條件
17. substring 字元串截取
18. cast 定義數值類型(了解)
19. CASE … WHEN … THEN …. END 滿足某一個條件時執行/替換,可用於條件計數
20. DATEDIFF 兩個日期之間間隔的天數
21. SUBDATE 日期往前數 ,語法:SUBDATE(date,INTERVAL expr unit)
例子:SUBDATE(「2018-10-1」,INTERVAL 1 day) 代表10月1日往前數1天,結果是9月30;SUBDATE(「2018-10-1」,INTERVAL 1 month) 代表10月1日往前數1月,結果是2018-9-1
⑵ where 子句所有知識點
我們已經看到使用SQL SELECT命令從MySQL表中獲取數據。我們可以用 WHERE子句來篩選出結果的條件子句。使用WHERE子句,我們可以指定一個選擇標准,從表中選擇所需的記錄。
語法
下面是SELECT命令使用WHERE子句來從MySQL表數據的通用SQL語法:
SELECT field1, field2,...fieldN table_name1, table_name2...
[WHERE condition1 [AND [OR]] condition2.....
可以使用逗號分隔一個或多個表,以及WHERE子句包括各種條件,但WHERE子句只是SELECT命令的可選部分
可以指定使用任何條件在WHERE子句中
可以指定一個以上的條件在使用AND或OR運算符中
WHERE子句可以用DELETE 或 UPDATE的SQL命令一起,也可以指定一個條件使用。
WHERE子句就像是if一個條件在編程語言中, 此子句是用來比較給定值的欄位值在MySQL表是否可用。如果從外部給定值等於在MySQL表可用欄位值,那麼它返回該行。
這里是運算符的列表,它可以在WHERE子句中使用。
假設欄位A=10,欄位B=20,則:
操作符
描述
示例
= 檢查兩個操作數的值是否相等,如果是,則條件變為真。 (A = B) 不為 true.
!= 檢查兩個操作數的值是否相等,如果值不相等,則條件變為真。 (A != B) 為 true.
> 檢查左操作數的值是否大於右操作數的值,如果是,則條件為真。 (A > B) 不為 true.
< 檢查左操作數的值是否小於右操作數的值,如果是,則條件為真。 (A < B) 為 true.
>= 檢查左操作數的值是否大於或等於右操作數的值,如果是,則條件為真。 (A >= B) 不為 true.
<= 檢查左操作數的值是否小於或等於右操作數的值,如果是,則條件變為真。 (A <= B) 為 true.
當想要從一個表中提取所選行,尤其是當使用MySQL聯接的WHERE子句是非常有用的。 聯接在另一章討論。
搜索使用主鍵進行快速搜索記錄是常見的做法。
如果給定的條件不匹配表任何記錄,那麼查詢將不會返回任何行。
⑶ which 和 whereis 的區別
一般而言,倘若我們要在 linux 操作系統上開發或者移植一個功能或腳本時,對於功能中涉及的命令或者可執行文件需要使用絕對路徑。
而要在 Linux 操作系統上搜索一條命令的絕對路徑,你一定會選擇 which 或者 whereis 兩個命令中的一個來輔助你查找可執行命令的路徑。當然, which 和 whereis 也可以滿足你的覺大部分需求。
但同時作為查找命令的絕對路徑, which 和 whereis 有什麼區別呢?什麼場景下更推薦 which ,什麼場景下推薦 whereis 呢?
在看 which 和 whereis 的區別之前,先來看看兩個命令官方給的解釋。
which 命令用來展示shell命令的完整路徑,它接收一個或多個參數,執行時所有的參數會展示在shell提示並根據傳入的參數將可執行命令的完整路徑輸出到 stdout 中。
當你在 Linux 終端下試圖查找一條命令的完整路徑時, 終端將輸出查找到的匹配的第一條可執行命令的絕對路徑,如下
若需要查找命令對應的所有完整路徑,你可以在加上 -a 參數
那麼, which 查找命令時是從哪裡查找的?
我們在終端輸入一條不存在的命令,來看看 which 會返回什麼。
當輸入一個不存在的命令時,終端返回了類似 no {command} in (xxxx) 這樣的提示,看到這些 /usr/local/bin 等路徑你是否會覺得熟悉。沒錯,這就是 Linux 操作系統上配置的環境變數。
也即是說, which 查找一條命令是根據當前 Linux 的環境變數來查找的。
被查找的命令在環境變數配置的對應目錄下,則該命令可以被查找到並返回該命令的絕對路徑;倘若環境變數配置的所有目錄下沒有找到對應的命令,則會出現上面的提示。
那麼,如何通過 which 能查找到 initialization 這個可執行文件呢?你可以將 initialization 可執行文件移動到環境變數所配置的目錄下,或者將 initialization 文件當前的路徑添加到環境變數中。不過,針對單一命令,你應該盡可能使用第一種方法。畢竟,隨意添加環境變數並不總是好的。
whereis 查找命令時會返回查找到的二進制文件、源碼文件、和命令對應的手冊信息,搜索時 whereis 會將提供的文件名前面的路徑與後面的擴展名去掉,並找到與之匹配的文件。
當使用 whereis 查找命令的絕對路徑及手冊時,終端會返回可以被匹配到的命令的絕對路徑、源文件及手冊,如下
whereis 搜索命令時提供了一些參數,用來根據需要查找對應的結果。例如,
通過添加 -b 參數只查找可執行文件的路徑
通過添加 -m 參數只查找命令相關的手冊
通過添加 -s 參數查找對應的源文件
正如你所看到的, whereis 查找到的內容不存在時,並不會出現報錯信息,你可以通過 echo $? 來驗證這一點。
那麼, whereis 查找信息是從哪裡查找的呢?
事實上, whereis 命令提供了 -l 參數用來查詢當前 whereis 查找命令的所有有效路徑
可以看到, whereis 查找信息主要分為3部分,其中可執行文件的路徑查找在 bin: 後的所有目錄下查找;手冊查找在 man: 後的所有目錄下查找;源文件在 src: 後的所有目錄下查找。
事實上, bin: 後的所有目錄不正是 Linux的環境變數嗎?
最後,如果你僅僅只需要查找命令的絕對路徑,那麼使用 which 則更便於程序解析,當命令不存在時,你也能第一時間反應到文件不存在;
若你需要命令的源程序信息,那麼使用 whereis 則顯得更加合適了。
⑷ linux如何查找文件
1、使用find命令
Linuxfind命令用來在指定目錄下查找文件。任何位於參數之前的字元串都將被視為欲查找的目錄名。如果使用該命令時,不設置任何參數,則find命令將在當前目錄下查找子目錄或文件。並且將查找到的子目錄和文件全部進行顯示。
語法:find path -option [ -print ] [ -exec -ok command ] {} ;
2、使用locate命令
Linux locate命令用於查找符合條件的文檔,他會去保存文檔和目錄名稱的資料庫內,查找合乎範本樣式條件的文檔或目錄。
一般情況我們只需要輸入locate your_file_name即可查找指定文件。
語法:locate [-d ][--help][--version][範本樣式...]
3、使用which命令
Linux which命令用於查找文件。
which指令會在環境變數$PATH設置的目錄里查找符合條件的文件。
語法:which [文件...]
4、使用whereis命令
Linux whereis命令用於查找文件。
該指令會在特定目錄中查找符合條件的文件。這些文件應屬於原始代碼、二進制文件,或是幫助文件。
該指令只能用於查找二進制文件、源代碼文件和man手冊頁,一般文件的定位需使用locate命令。
語法:whereis [-bfmsu][-B <目錄>...][-M <目錄>...][-S<目錄>...][文件...]
⑸ Linux裡面where和which命令區別是什麼
which是根據PATH裡面的路徑進行查找,一般查找的路徑是/bin/ /sbin/ /usr/bin/ /usr/sbin /usr/local/bin /usr/local/sbin 等目錄
where(??)應該是whereis. whereis 是查找命令相關的文件或幫助文件 ,比which多些幫助文件
⑹ 簡述find命令和whereis命令在查找文件上的區別
linux中查找命令find、locate、whereis、which、type區別
1. find
www.2cto.com
Java代碼
find是最常見和最強大的查找命令,你可以用它找到任何你想找的文件。與查詢資料庫(/var/lib/locatedb)文件不同,find查找磁碟空間
find的使用格式如下:
$ find <指定目錄> <指定條件> <指定動作>
- <指定目錄>: 所要搜索的目錄及其所有子目錄。默認為當前目錄。
- <指定條件>: 所要搜索的文件的特徵。
- <指定動作>: 對搜索結果進行特定的處理。
www.2cto.com
如果什麼參數也不加,find默認搜索當前目錄及其子目錄,並且不過濾任何結果(也就是返回所有文件),將它們全都顯示在屏幕上。
find的使用實例:
$ find . -name 'my*'
搜索當前目錄(含子目錄,以下同)中,所有文件名以my開頭的文件。
$ find . -name 'my*' -ls
搜索當前目錄中,所有文件名以my開頭的文件,並顯示它們的詳細信息。
$ find . -type f -mmin -10
搜索當前目錄中,所有過去10分鍾中更新過的普通文件。如果不加-type f參數,則搜索普通文件+特殊文件+目錄。
2. locate
Java代碼
locate命令其實是「find -name」的另一種寫法,但是要比後者快得多,原因在於它不搜索具體目錄,而是搜索一個資料庫(/var/lib/locatedb),這個資料庫中含有本地所有文件信息。Linux系統自動創建這個資料庫,並且每天自動更新一次,所以使用locate命令查不到最新變動過的文件。為了避免這種情況,可以在使用locate之前,先使用updatedb命令,手動更新資料庫。
locate命令的使用實例:
$ locate /etc/sh
搜索etc目錄下所有以sh開頭的文件。
$ locate ~/m
搜索用戶主目錄下,所有以m開頭的文件。
$ locate -i ~/m
搜索用戶主目錄下,所有以m開頭的文件,並且忽略大小寫。
3. whereis
Java代碼
whereis命令只能用於程序名的搜索,而且只搜索二進制文件(參數-b)、man說明文件(參數-m)和源代碼文件(參數-s)。如果省略參數,則返回所有信息。同locate一樣,查詢資料庫(/var/lib/locatedb)文件
whereis命令的使用實例:
$ whereis grep
4. which
Java代碼
which命令的作用是,在PATH變數指定的路徑中,搜索某個系統命令的位置,並且返回第一個搜索結果。也就是說,使用which命令,就可以看到某個系統命令是否存在,以及執行的到底是哪一個位置的命令。
which命令的使用實例:
$ which grep
5. type
Java代碼
type命令其實不能算查找命令,它是用來區分某個命令到底是由shell自帶的,還是由shell外部的獨立二進制文件提供的。如果一個命令是外部命令,那麼使用-p參數,會顯示該命令的路徑,相當於which命令。
www.2cto.com
type命令的使用實例:
$ type cd
系統會提示,cd是shell的自帶命令(build-in)。
$ type grep
系統會提示,grep是一個外部命令,並顯示該命令的路徑。
$ type -p grep
加上-p參數後,就相當於which命令。