MySQL ——數據的增刪改查

一、DML語言

1.1 insert插入數據

語法:insert [into] 表名 [字段名] values(值列表);

插入一行數據

第一種:insert into file1(id,name,age) values (1,‘aa’,11);

第二種:insert into file1 values(1,‘aa’,11);

插入多行數據

insert into file1(id,name,age) values(1,‘aa’,11),(2,‘bb’,12),(3,‘cc’,13);

注意:為避免表結構發生變化引發錯誤,建議插入數據時寫明具體字段名!

1.2 update 更新數據

語法:UPDATE 表名 SET 字段1=值1,字段2=值2,…,字段n=值n [WHERE 條件];

-- 示例:將id = 1的age改成14
update file1 set age = 14 where id =1;

注意:1、更新多列數據使用逗號隔開;2、添加條件限制

1.3 delete 刪除數據

語法格式:delete from 表名 [where條件];

-- 示例:刪除file1中的數據【表還在】
delete from file1;-- 示例:刪除id=1的數據
delete from file1 where id =1;

1.4 truncate 刪除數據

語法:truncate table 表名;

-- 示例:刪除學生表中的數據【清空數據,表還在】
truncate table students;-- 示例:刪除id是1的學生的數據【報錯,不能加條件】
truncate table students where id = 1;

二、DQL語言

DQL是Data Qurey Language英文縮寫,數據查詢語言

常用語句:

基本查詢語句、條件查詢、多條件查詢、模糊查詢、分組查詢、連接查詢、子查詢

關鍵字:

AS、運算符、IN、BETWEEN AND、DISTINCT、ORDER BY、LIMIT

條件:

模糊查詢

like ’字符‘

關鍵字查詢【具體值】

in

關鍵字查詢【范圍】

between 值1 and 值2

關鍵字查詢【去重】

distinct

關鍵字查詢【順序】

order by 排列列名 【asc升序,desc降序】

根據行數查詢

limit

2.1 select基本查詢語句

語法:select 列名 from 表名;

示例:查詢所有學生信息

select *
from students;

例題:查詢所有學生的姓名,性別

select name,sex
from students;
2.2 運算符

算術運算符

+ - * / %

關系運算符

> < = <> >= <= !=

賦值運算符

=

邏輯運算符

and or not (&& || !)

2.3 where條件查詢

語法:select 列名 from 表名 where 條件

示例:查詢id為1學生的姓名,性別

select name,sex
from students
where id =1;

例題:查詢學生’鄧超’的信息

select *
from students
where name = '鄧超';
2.4 where多條件查詢

語法:select 列名 from 表名 where 條件 運算符 條件

示例:查詢id=1或者id=3學生的姓名,性別、

select name,sex
from students
where id = 1 or id = 3;

例題:查詢性別為女并且在2班的學生的信息

select *
from students
where sex = '女' and cls_id = 2;
2.5 like 模糊查詢

模糊查詢是使用SQL通配符替代一個或多個字符的條件查詢。

語法:select 列名 from 表名 where 字段 like ‘值’

例題:查詢名字里面包含’小’的學生的信息

select * from students where name like '小%';
2.6 in關鍵字查詢 是什么什么

語法:select 列名 from 表名 where 字段 in (值1,值2,……);

示例:查詢id為1,5,6,10的學生的信息

select *
from students
where id in (1,5,6,10);

not in 不是什么什么

示例:查詢id不為1,5,6,10的學生的信息

select *
from students
where id not in(1,5,6,10);
2.7 between關鍵字查詢 在什么什么之內

語法:select 列名 from 表名 where 字段 between 值1 and 值2;

示例:查詢id為8-10的學生的信息

select *
from students
where id between 8 and 10;
2.8 distinct 關鍵字查詢【去重】

語法: select distinct 字段名1,字段名2,…… from 表名;

示例:查詢性別有幾種分類

select distinct sex from students;

示例:查詢有幾個班級

select distinct cls_id from students;
2.9 order by關鍵字查詢

語法:select 字段名列表 from 表名 [where 查詢條件] [order by 排序的列名][asc(升序) 或 desc(降序)]

示例:將學生的身高按照升序排列

select * 
from students
order by height; -- 默認為升序 

示例:將學生的身高按照降序排列

select *
from students
order by height desc;
2.10 limit關鍵字查詢

語法:

select 字段名列表

from 表名

[where 查詢條件]

[order by 排序的列名 asc(升序) 或 desc(降序)]

[LIMIT <開始行數,需要查的行數> ];

如果開始行數不寫默認為0

示例:只看前2條學生信息

select *
from students
limit 2;

示例:查看第四行到第七行的學生信息

select *
from students
limit 4,3;

三、連接查詢

連接查詢是將多張表中記錄按照指定的條件進行連接的查詢方式

注意:連接查詢涉及到兩個表以上,在查詢的時候至少要有一個必備的連接條件,這個必備的條件就是兩個表共有的那個字段相等,而且這個字段一定在一個表里是主鍵,在另一個表里是外健

3.1 內連接

內連接是返回連接表中符合連接條件記錄的連接查詢。

包括:顯式內連接、隱式內連接

3.1.1 顯示連接

語法格式:

select 字段 from 表1 inner join 表2 on 連接條件[where 條件]

示例:查看學生所在班級

select s.name as '學生姓名',c.name as '班級名稱' -- as可以省略
from students s inner join classes c
on s.cls_id = c.id;

提問:查看學生所在班級并且班級是1

select s.name '學生姓名',c.name '教室名'
from students s inner join classes c
on s.cls_id = c.id and c.id = 1;
3.1.2 隱式內連接查詢

select 字段 from 表1,表2 where 表1.條件 = 表2.條件

示例:查看學生所在班級

select s.name, c.id
from students s, classes c
where s.cls_id = c.id;
3.2 外連接
3.2.1 左外連接查詢

左外連接是以左表為基表,返回左表中所有記錄及連接表中符合條件的記錄的外連接。

select 字段 from 表1 left join 表2 on 連接條件 [where 條件]

示例:查看老師所在班級

select t.name '教師姓名' , c.id '班級名'
from teachers t left join classes c
on t.id = c.teacher_id;

3.2.1 右外連接查詢

右外連接是以右表為基表,返回右表中所有記錄及連接表中符合條件的記錄的外連接

語法:select 字段 from 表1 right join 表2 on 連接條件 where 條件

select t.name '教室名稱',c.id '班級名稱'
from teachers t right join classes c
on t.id = c.teacher_id;

3.3 聚合函數

如何查看班級同學的平均身高?——使用聚合函數

聚合函數是可以對一組值進行計算,并返回單個值的函數。

語法:select 聚合函數<字段> from 表名 [where 條件][group by 聚合函數]

count()

計數

sum()

求和

max()

最大值

min()

最小值

avg()

平均值

示例:查詢班級學生的平均身高

select avg(height)
from students;

示例:查詢班級有多少同學

select count(*) -- 這里也可以用id
from students
3.4 子查詢【查詢嵌套】

如何只查詢比劉德華高的同一班的學生信息?——子查詢

定義:子查詢是在一個查詢的內部包括另一個查詢的查詢方式

3.4.1 簡單子查詢

示例:查看劉德華同學的所在班級的所有同學

select name
from students
where cls_id = (select cls_id from students where name ='劉德華');
3.4.2 any/some子查詢

示例:查看趙老師所帶的學生信息

select *
from students
where cls_id = any(select id from classes where teacher = 
select id from teachers where name = '趙老師'));
3.5 all子查詢
  • ALL子查詢的關鍵在于對所有子查詢返回值的比較。例如,當使用> ALL時,意味著主查詢中的表達式必須大于子查詢返回的所有值,才能滿足條件。

示例:查看學生所在班級

select *
from students
where cls_id >=all(select id from classes where teacher_id = 
(select id from teachers where name = '趙老師'));

3.6 exists子查詢

示例:刪除表

drop table if exists file1;

示例:查看存在王老師的班級表

select *
from classes 
where exists (select * from teachers where name='王老師');
3.7 not exists子查詢

示例:創建教師表

create table IF NOT EXISTS teachers(id int primary key,name varchar(20)
);

避免重復創建

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

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

相關文章

【CF記錄】貪心——A. Scrambled Scrabble

https://codeforces.com/contest/2045/problem/A 思路&#xff1a; 由于Y有兩種選擇&#xff0c;NG也是&#xff0c;那我們可以枚舉以下情況&#xff1a;選i個Y做輔音&#xff0c;j個NG做輔音 然后貪心選擇最長的即可&#xff0c;觀察到S最長為5000&#xff0c;即使是也不會…

C語言【指針篇】(四)

前言&#xff1a;正文1. 字符指針變量2. 數組指針變量2.1 數組指針變量是什么?2.2 數組指針變量怎么初始化 3. 二維數組傳參的本質4. 函數指針變量4.1 函數指針變量的創建4.2 函數指針變量的使用4.3 兩段有趣的代碼4.3.1 typedef關鍵字 5. 函數指針數組6. 轉移表 總結 前言&am…

React + TypeScript 實戰指南:用類型守護你的組件

TypeScript 為 React 開發帶來了強大的類型安全保障&#xff0c;這里解析常見的一些TS寫法&#xff1a; 一、組件基礎類型 1. 函數組件定義 // 顯式聲明 Props 類型并標注返回值 interface WelcomeProps {name: string;age?: number; // 可選屬性 }const Welcome: React.FC…

【玩轉正則表達式】將正則表達式中的分組(group)與替換進行結合使用

在文本處理和數據分析領域&#xff0c;正則表達式&#xff08;Regular Expressions&#xff0c;簡稱regex&#xff09;是一種功能強大的工具。它不僅能夠幫助我們匹配和搜索字符串中的特定模式&#xff0c;還能通過分組&#xff08;Grouping&#xff09;和替換&#xff08;Subs…

Flutter 學習之旅 之 flutter 不使用插件,簡單實現一個 Toast 功能

Flutter 學習之旅 之 flutter 不使用插件&#xff0c;簡單實現一個 Toast 功能 目錄 Flutter 學習之旅 之 flutter 不使用插件&#xff0c;簡單實現一個 Toast 功能 一、簡單介紹 二、簡單介紹 Toast 1. 確保正確配置 navigatorKey 2. 避免重復顯示 Toast 3. 確保 Toast …

《OpenCV》——dlib(人臉應用實例)

文章目錄 dlib庫dlib庫——人臉應用實例——表情識別dlib庫——人臉應用實例——疲勞檢測 dlib庫 dlib庫的基礎用法介紹可以參考這篇文章&#xff1a;https://blog.csdn.net/lou0720/article/details/145968062?spm1011.2415.3001.5331&#xff0c;故此這篇文章只介紹dlib的人…

學習日記-250305

閱讀論文&#xff1a;Leveraging Pedagogical Theories to Understand Student Learning Process with Graph-based Reasonable Knowledge Tracing ps:代碼邏輯最后一點還沒理順&#xff0c;明天繼續 4.2 Knowledge Memory & Knowledge Tracing 代碼研究&#xff1a; 一般…

【AI大模型】DeepSeek + Kimi 高效制作PPT實戰詳解

目錄 一、前言 二、傳統 PPT 制作問題 2.1 傳統方式制作 PPT 2.2 AI 大模型輔助制作 PPT 2.3 適用場景對比分析 2.4 最佳實踐與推薦 三、DeepSeek Kimi 高效制作PPT操作實踐 3.1 Kimi 簡介 3.2 DeepSeek Kimi 制作PPT優勢 3.2.1 DeepSeek 優勢 3.2.2 Kimi 制作PPT優…

【ESP-ADF】在 VSCode 安裝 ESP-ADF 注意事項

1.檢查網絡 如果您在中國大陸安裝&#xff0c;請使用魔法上網&#xff0c;避免無法 clone ESP-ADF 倉庫。 2.VSCode 安裝 ESP-ADF 在 VSCode 左側活動欄選擇 ESP-IDF:explorer&#xff0c;展開 advanced 并點擊 Install ESP-ADF 然后會出現選擇 ESP-ADF 安裝目錄。 如果出現…

關于2023新版PyCharm的使用

考慮到大家AI編程的需要&#xff0c;建議大家安裝新版Python解釋器和新版PyCharm&#xff0c;下載地址都可以官網進行&#xff1a; Python&#xff1a;Download Python | Python.org&#xff08;可以根據需要自行選擇&#xff0c;建議選擇3.11&#xff0c;保持交流版本一致&am…

輕松部署 Stable Diffusion WebUI 并實現局域網共享訪問:解決 Conda Python 版本不為 3.10.6 的難題

這篇博文主要為大家講解關于sd webui的部署問題&#xff0c;大家有什么不懂的可以隨時問我&#xff0c;如果沒有及時回復&#xff0c;可聯系&#xff1a;1198965922 如果后續大家需要了解怎么用代碼調用部署好的webui的接口&#xff0c;可以在評論區留言哦&#xff0c;博主可以…

Leetcode 103: 二叉樹的鋸齒形層序遍歷

Leetcode 103: 二叉樹的鋸齒形層序遍歷 問題描述&#xff1a; 給定一個二叉樹&#xff0c;返回其節點值的鋸齒形層序遍歷&#xff08;即第一層從左到右&#xff0c;第二層從右到左&#xff0c;第三層從左到右&#xff0c;依此類推&#xff09;。 適合面試的解法&#xff1a;廣…

Linux中的進程間通信的方式及其使用場景

在 Linux 系統中&#xff0c;進程間通信&#xff08;Inter-Process Communication, IPC&#xff09;是指不同進程之間傳遞數據、共享信息的機制。Linux 提供了多種進程間通信的方式&#xff0c;每種方式都有不同的特點和使用場景。以下是常見的幾種進程間通信方式及其應用場景&…

springBoot集成emqx 實現mqtt消息的發送訂閱

介紹 我們可以想象這么一個場景&#xff0c;我們java應用想要采集到電表a的每小時的用電信息&#xff0c;我們怎么拿到電表的數據&#xff1f;一般我們會想 直接 java 后臺發送請求給電表&#xff0c;然后讓電表返回數據就可以了&#xff0c;事實上&#xff0c;我們java應用發…

vue Table 表格自適應窗口高度,表頭固定

當表格內縱向內容過多時&#xff0c;可選擇固定表頭。 代碼很簡單&#xff0c;其實就是在table 里面定一個 height 屬性即可。 <template><el-table:data"tableData"height"250"borderstyle"width: 100%"><el-table-columnprop…

多線程-JUC

簡介 juc&#xff0c;java.util.concurrent包的簡稱&#xff0c;java1.5時引入。juc中提供了一系列的工具&#xff0c;可以更好地支持高并發任務 juc中提供的工具 可重入鎖 ReentrantLock 可重入鎖&#xff1a;ReentrantLock&#xff0c;可重入是指當一個線程獲取到鎖之后&…

【每日學點HarmonyOS Next知識】Web Header更新、狀態變量嵌套問題、自定義彈窗、stack圓角、Flex換行問題

【每日學點HarmonyOS Next知識】Web Header更新、狀態變量嵌套問題、自定義彈窗、stack圓角、Flex換行問題 1、HarmonyOS 有關webview Header無法更新的問題&#xff1f; 業務A頁面 打開 webivew B頁面&#xff0c;第一次打開帶了header請求&#xff0c;然后退出webview B頁面…

【ATXServer2】Android無法正確顯示手機屏幕

文章目錄 現象原因分析與解決排查手機內部minicap 解決minicap問題查看移動端Android SDK版本查看minicap支持版本單次方案多次方案 最后問題-如何支持Android SDK 32 現象 原因分析與解決 由于atxserver2在與Android動終端的鏈接過程中使用了agent&#xff1a;atxserver2-and…

【前端跨域】CORS:跨域資源共享的機制與實現

在現代Web開發中&#xff0c;跨域資源共享&#xff08;Cross-Origin Resource Sharing&#xff0c;簡稱CORS&#xff09;是一種非常重要的技術&#xff0c;用于解決瀏覽器跨域請求的限制 CORS允許服務器明確指定哪些外部源可以訪問其資源&#xff0c;從而在保證安全的前提下實…

【設計模式】單例模式|餓漢模式|懶漢模式|指令重排序

目錄 1.什么是單例模式&#xff1f; 2.如何保證單例&#xff1f; 3.兩種寫法 &#xff08;1&#xff09;餓漢模式&#xff08;早創建&#xff09; &#xff08;2&#xff09;懶漢模式&#xff08;緩執行&#xff0c;可能不執行&#xff09; 4.應用場景 &#x1f525;5.多…