【MySQL】MySQL基礎知識詳解(一)

MySQL

  • select
    • 列的別名
    • 去除重復行
    • 空值參與運算
    • 著重號
    • 查詢常數
    • 顯示表結構
    • 過濾數據
  • 排序
    • 使用 ORDER BY 對查詢到的數據進行排序操作。
    • 使用列的別名,進行排序
    • 二級排序
  • 分頁
    • LIMIT 分頁顯示公式:(當前頁數減一)*每頁條數,每頁條數
    • 使用LIMIT句子好處

前言

潔潔的個人主頁
我就問你有沒有發揮!
知行合一,志存高遠。

select

最基本的SELECT語句

# SELECT 字段1,字段2...FROM表名```sql
SELECT 1+1,2*2
此句運行結果·就是· 2,4
其實相當于·```sql
SELECT 1+1,2*2
FROM DUAL;#dual 偽表
SELECT *FROM employees
# * 代表表中所有的字段(列)

其中字段的名字要完全正確(及所寫的字段的名字在表中存在,不可以寫縮寫等)

列的別名

SELECT personname name,personage AS age,personsex "sex"
FROM employees

第一種:
name就是 personname的別名
第二種
age就是personage的別名
as 英文全稱 alias(別名),可以省略
第三種:
sex就是personsex的別名

注意:
不能使用單引號
日期時間,字符串類型的變量需要使用時使用一對 ’ '單引號

去除重復行

SELECT DISTINCT personage
FROM employees

只顯示出一種年齡,比如有兩個相同的年齡,經過此詞語后只會留下一個年齡。
錯誤示范:

SELECT personname, DISTINCT personage
FROM employees 

personname沒有去重,但是personage卻去重了,導致無法通過

SELECT DISTINCT personname,  personage
FROM employees 

實際上對personname,personage兩個都進行卻重,不會報錯,但沒有實際·意義

空值參與運算

空值:NULL
空值不等同于0 或者 ‘ ’
空值參與運算時結果也一定為NULL
那么當字段中有NULL時怎么計算呢?
可以引入IFNULL函數
IFNULL(字段,0)
意思是如果 字段為NULL的話就會把其看作0

著重號

必須保證你到字段沒有和保留字,數據庫系統或常用方法沖突,如果堅持使用,請在sql語句中使用 ``引起來。
比如:

SELECT *FROM ORDER

ORDER 因為是一個排序的關鍵字,所以如果一運行會報錯。
解決方法就是加上一對``

SELECT *FROM `order`

查詢常數

就是在SELECT查詢結果中增加一列固定的常數列,這列的取值是我們規定的,不是從數據表中動態取出的、作為常量出現

SELECT “xiaojiejie”,personage 
FROM employees; 

結果及在每一個年齡·前面都匹配填充上“xiaojiejie”

顯示表結構

顯示表中字段的詳細信息

DESCRIBE employees;
#或者
DESC employees;

過濾數據

SELECT *
FROM employees
WHERE personage=12;

即只顯示表中年齡為12的數據
同理

SELECT *
FROM employees
WHERE personname='xiaojiejie';

即只顯示表中姓名為’xiaojiejie’的數據
因為‘xiaojiejie’是字符串,所以要用單引號
注意:‘xiaojiejie’ 由于Mysql的不嚴謹性,'xiaojiejie’的大小寫不會區分。和不區分單引號,雙引號一樣。
但是在oracl 中就會區分。所以還是要嚴格按照sql的標準來執行學習。

排序

如果假如沒有使用排序操作,默認情況下查詢返回的數據是按照添加數據的順序來顯示的。

SELECT *FROM employees;

使用 ORDER BY 對查詢到的數據進行排序操作。

升序:ASC(ascend)
降序:DESC(descend)
比如:
按照age從高到低的順序進行排序

SELECT age
FROM person
ORDER BY age DESC;

按照age從低到高的順序進行排序

SELECT age
FROM person
ORDER BY age ASC;

如果 ORDER BY age; 后面沒有顯示指定排序的方式的話,則默認按照升序排序。

SELECT age
FROM person
ORDER BY age;

使用列的別名,進行排序

SELECT age*12 agee
FROM person
ORDER BY agee;

注意:列的別名只能在ORDER BY 中使用,不能在WHERE 中使用
比如

SELECT age*12 agee
FROM person
WHERE agee > 10;
#會報錯

那么·當同時出現WHERE 和ORDER BY時應該·怎么寫呢?
格式強調:
WHERE的聲明要寫在FROM后,ORDER BY 之前

SELECT age
FROM person
WHERE age > 10
ORDER BY age;

二級排序

在對列進行排序的時候,首先排序的第一列必須有相同的列值,才會對第二列進行排序。
如果第一列的數據中所有值都是唯一的,將不再對第二列進行排序。
比如:
顯示員工信息。按照age降序排列,salary的升序排列

SELECT name,age,salary
FROM person
ORDER BY age,salary ASC;

分頁

LIMIT 分頁顯示公式:(當前頁數減一)*每頁條數,每頁條數

SELECT *
FROM table
LIMIT (pageNo-1)*pageSize,pageSize;

例如
顯示前10條記錄:

SELECT *
FROM table
LIMIT 0,10

顯示第11條到20條記錄:

SELECT *
FROM table
LIMIT 10,10

顯示第21條到20條記錄:

SELECT *
FROM table
LIMIT 20,10

注意:在mysql8.0當中,可以使用“LIMIT 3 OFFSET 4”
意思是從第5條記錄開始,向后獲取3條記錄。與“LIMIT 4,3”結果一樣。
注意:LIMIT子句一定要放在整個SELECT語句的最后面。

使用LIMIT句子好處

約束返回結果的數量可以減少數據表的網絡傳輸量,也可以提升查詢效率。如果我們知道返回結果只有一條,就可以使用LIMIT 1
告訴SELECT 語句只需要返回一條記錄即可。這樣的好處就是SELECT語句不需要掃描完整的表,只需要檢索到一條符合條件的記錄即可返回。

文章到此結束啦,欲知后事如何,請看下篇!😘

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

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

相關文章

【AIGC】 快速體驗Stable Diffusion

快速體驗Stable Diffusion 引言一、安裝二、簡單使用2.1 一句話文生圖2.2 詳細文生圖 三、進階使用 引言 stable Diffusion是一款高性能的AI繪畫生成工具,相比之前的AI繪畫工具,它生成的圖像質量更高、運行速度更快,是AI圖像生成領域的里程碑…

【100天精通python】Day41:python網絡爬蟲開發_爬蟲基礎入門

目錄 專欄導讀 1網絡爬蟲概述 1.1 工作原理 1.2 應用場景 1.3 爬蟲策略 1.4 爬蟲的挑戰 2 網絡爬蟲開發 2.1 通用的網絡爬蟲基本流程 2.2 網絡爬蟲的常用技術 2.3 網絡爬蟲常用的第三方庫 3 簡單爬蟲示例 專欄導讀 專欄訂閱地址:https://blog.csdn.net/…

【玩轉Linux操作】crond的基本操作

🎊專欄【玩轉Linux操作】 🍔喜歡的詩句:更喜岷山千里雪 三軍過后盡開顏。 🎆音樂分享【Counting Stars 】 歡迎并且感謝大家指出小吉的問題🥰 文章目錄 🍔概述🍔命令?常用選項 🍔練…

軟件-常用軟件系統架構

目錄 1.客戶端-服務器架構 2.分布式架構 3.微服務架構 4.事件驅動架構 5.單體架構 6.混合架構 當我們談論系統架構時,可以將其比喻為一座房子的設計和結構,想象一下你計劃建造一座豪華別墅,你需要考慮各種因素:如房子的大小…

linux下常見編譯問題

linux下常見編譯問題 linux-cmake靜態編譯查看系統支持的的libc版本查看程序需要的動態鏈接庫查看程序需要的libc版本freebsd下 linux-cmake靜態編譯 CMakeLists.txt 添加 set(CMAKE_EXE_LINKER_FLAGS "-static")ELF 64-bit LSB executable, AMD x86-64, version 1…

【微服務】一文了解 Nacos

一文了解 Nacos Nacos 在阿里巴巴起源于 2008 2008 2008 年五彩石項目(完成微服務拆分和業務中臺建設),成長于十年雙十一的洪峰考驗,沉淀了簡單易用、穩定可靠、性能卓越的核心競爭力。 隨著云計算興起, 2018 2018 20…

編程練習(3)

一.選擇題 第一題: 函數傳參的兩個變量都是傳的地址,而數組名c本身就是地址,int型變量b需要使用&符號,因此答案為A 第二題: 本題考察const修飾指針變量,答案為A,B,C,D 第三題: 注意int 型變…

13---內嵌HTML和React

雖然Markdown本身不支持內嵌HTML和React&#xff0c;但可以在Markdown文檔中直接插入HTML代碼和React組件。 一、在markdown中內嵌HTML 在Markdown中&#xff0c;你可以使用HTML標簽來實現更復雜的樣式和布局。例如&#xff0c;你可以使用<div>標簽來創建一個容器&#…

算法與數據結構(五)--樹與二叉查找樹

符號表的增刪查操作&#xff0c;隨著元素個數N的增多&#xff0c;其耗時也是線性增多的&#xff0c;時間復雜度都是O(n)&#xff0c;為了提高運算效率&#xff0c;我們學習樹這種數據結構。 目錄 一.樹的基本定義 二.樹的相關術語 三.二叉樹的基本定義 四.二叉樹的鏈表實現…

leetcode 279. 完全平方數

2023.8.18 與零錢兌換相似&#xff0c;本題屬于完全背包問題&#xff1a;完全平方數為物品&#xff0c;整數n為背包。 直接上代碼&#xff1a; class Solution { public:int numSquares(int n) {vector<int> dp(n1 , INT_MAX);dp[0] 0;for(int i1; i*i<n; i){for(in…

時序預測 | MATLAB實現WOA-CNN-BiGRU鯨魚算法優化卷積雙向門控循環單元時間序列預測

時序預測 | MATLAB實現WOA-CNN-BiGRU鯨魚算法優化卷積雙向門控循環單元時間序列預測 目錄 時序預測 | MATLAB實現WOA-CNN-BiGRU鯨魚算法優化卷積雙向門控循環單元時間序列預測預測效果基本介紹模型描述程序設計參考資料 預測效果 基本介紹 時序預測 | MATLAB實現WOA-CNN-BiGRU鯨…

干翻Dubbo系列第十二篇:Dubbo協議介紹

文章目錄 文章說明 一&#xff1a;Dubbo協議 1&#xff1a;Dubbo協議簡介 2&#xff1a;Dubbo協議優點 3&#xff1a;Dubbo協議幀的組成 (一)&#xff1a;幻數 (二)&#xff1a;2Way (三)&#xff1a;event (四)&#xff1a;Serilization ID (五)&#xff1a;status …

每日一題 142環形鏈表||(快慢指針)

題目 給定一個鏈表的頭節點 head &#xff0c;返回鏈表開始入環的第一個節點。 如果鏈表無環&#xff0c;則返回 null。 如果鏈表中有某個節點&#xff0c;可以通過連續跟蹤 next 指針再次到達&#xff0c;則鏈表中存在環。 為了表示給定鏈表中的環&#xff0c;評測系統內部…

深入理解【二叉樹】

&#x1f4d9;作者簡介&#xff1a; 清水加冰&#xff0c;目前大二在讀&#xff0c;正在學習C/C、Python、操作系統、數據庫等。 &#x1f4d8;相關專欄&#xff1a;C語言初階、C語言進階、C語言刷題訓練營、數據結構刷題訓練營、有感興趣的可以看一看。 歡迎點贊 &#x1f44d…

Java中的異常

認識異常 異常就是程序出現的問題&#xff1b; Integer.valueOf("aaaa"); 異常體系 因為寫代碼時經常會出現問題&#xff0c;Java的設計者們早就為我們寫好了很多個異常類&#xff0c;來描述不同場景下的問題。而有些類是有共性的所以就有了異常的繼承體系 Error&…

日志采集分析ELK

這里的 ELK其實對應三種不同組件 1.ElasticSearch&#xff1a;基于Java&#xff0c;一個開源的分布式搜索引擎。 2.LogStash&#xff1a;基于Java&#xff0c;開源的用于收集&#xff0c;分析和存儲日志的工具。&#xff08;它和Beats有重疊的功能&#xff0c;Beats出現之后&a…

OLED透明屏采購指南:如何選擇高質量產品?

著科技的不斷進步&#xff0c;OLED透明屏作為一種創新的顯示技術&#xff0c;在各個行業中得到了廣泛應用。 在進行OLED透明屏采購時&#xff0c;選擇高質量的產品至關重要。在這篇文章中&#xff0c;尼伽將為您提供一個全面的OLED透明屏采購指南&#xff0c;幫助您了解關鍵步…

day20 飛機大戰射擊游戲

有飛行物類 飛行 爆炸 的連環畫&#xff0c; 飛行的背景圖 &#xff0c; 子彈圖&#xff0c; 還有游戲開始 暫停 結束 的畫面圖。 設計一個飛機大戰的小游戲&#xff0c; 玩家用鼠標操作hero飛行機&#xff0c; 射出子彈殺死敵機&#xff0c;小蜜蜂。 敵機可以獲得分數&…

Jmeter參數化類型

1.參數在多個請求報文中出現&#xff0c;執行一次需要使用同一個參數--隨機生成(隨機變更) 2.參數在請求報文中出現&#xff0c;執行過程需要使用同一個參數(--固定參數) 3.參數從指定幾個固定中隨機獲取一個 4.參數從本地文件中獲取 5.參數在多個請求報文中出現&#xff0c;每…

c++11:std::partition分割,std::is_partitioned判斷

序列 vec.clear();for(int i 0;i<10;i){vec.push_back(i);}重新分割。大于1的排在后&#xff0c;返回第一個 std::vector<int>::iterator it std::partition(vec.begin(),vec.end(),[](int value){return value>1;}); std::cout<<"partition:"&l…