欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL表的增刪改查及查詢表中數(shù)據(jù)的三種方式(入門必掌握)

 更新時(shí)間:2025年07月31日 09:57:02   作者:MonkeyPromise  
本文講解SQL的DML(增刪改查)和DQL(查詢)操作,涵蓋創(chuàng)建student表、數(shù)據(jù)插入、更新、刪除及查詢方法如條件篩選、排序、分頁和別名使用,通過案例給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧

一.操作表中的數(shù)據(jù)(DML)

數(shù)據(jù)準(zhǔn)備

--創(chuàng)建一個(gè)student表
表中字段:
學(xué)號(hào), id int
姓名, name varchar(20)
年齡, age int
性別, sex char(1)
地址, address varchar(40)

# 創(chuàng)建學(xué)生表
CREATE TABLE student(
    id INT,
    name VARCHAR(20),
    age INT,
    sex CHAR(1),
    address VARCHAR(40)
);

1.新增數(shù)據(jù)

1.1 單行數(shù)據(jù)+全列插入

語法格式:insert to 表名 values(對(duì)應(yīng)的數(shù)據(jù)庫字段);

#插入兩條記錄,value_list 數(shù)量必須和定義表的列的數(shù)量及順序一致
insert to student values(1,'孫悟空',20,'男','花果山');
insert to student values(2,'豬八戒',18,'男','云棧洞');

1.2 多行數(shù)據(jù)+指定列插入

語法格式:insert to 表名 (指定的數(shù)據(jù)庫字段列)values(與指定的數(shù)據(jù)庫字段列相對(duì)應(yīng))

#插入兩條記錄,value_list 數(shù)量必須和指定列數(shù)量及順序一致
insert to student (id,name,age,sex,address) values
(3,'沙悟凈',18,'男','流沙河'),
(4,'白龍馬',16,'男','東海龍宮'),
(5,'哪吒',17,'女','天宮');

注意:

① 值與字段必須要對(duì)應(yīng),個(gè)數(shù)相同&數(shù)據(jù)類型相同

②值的數(shù)據(jù)大小,必須在字段指定的長(zhǎng)度范圍內(nèi) insert into 表名 (字段名1,字段名2...) values(字段值1,字段值2...); 。

③varchar char date類型的值必須使用單引號(hào),或者雙引號(hào) 包裹。

④如果要插入空值,可以忽略不寫,或者插入null 。

⑤如果插入指定字段的值,必須要上寫列名。

2.更新數(shù)據(jù)

認(rèn)識(shí)一個(gè)關(guān)鍵字where ,這個(gè)關(guān)鍵字在mysql語句中稱為條件查詢語句(在查詢的時(shí)候會(huì)細(xì)講)

語法格式:不帶條件的修改

update 表名 set 列名 = 值;(慎用)

語法格式:帶條件的修改

update 表名 set 列名 = 值 where 字段名 = 值;(字段名為定義的字段,值是保存的字段下的數(shù)據(jù))

2.1 將所有性別改為女(慎用)

update student set sex = '女'

2.2 將id為2的學(xué)生性別改為男

update student set sex = '男' where id = 2;

2.3 將id為2的學(xué)生的年齡改為(20),地址改為天宮

update student set age = 20,address = '天宮' where id = 2;

3.刪除數(shù)據(jù)

語法格式1: 刪除所有數(shù)據(jù)

delete from 表名;

語法格式2: 指定條件刪除數(shù)據(jù)

delete from 表名 where 字段名 = 值;

3.1 刪除id為1的數(shù)據(jù)

delete from student where id = 1;

3.2 刪除所有數(shù)據(jù)

delete from student;

二.查詢表中的數(shù)據(jù)(DQL)

數(shù)據(jù)準(zhǔn)備

創(chuàng)建考試成績(jī)表

 創(chuàng)建考試成績(jī)表
DROP TABLE IF EXISTS exam_result;
CREATE TABLE exam_result (
id INT,
name VARCHAR(20),
chinese DECIMAL(3,1),
math DECIMAL(3,1),
english DECIMAL(3,1)
);
-- 插入測(cè)試數(shù)據(jù)
INSERT INTO exam_result (id,name, chinese, math, english) VALUES
(1,'唐三藏', 67, 98, 56),
(2,'孫悟空', 87.5, 78, 77),
(3,'豬悟能', 88, 98.5, 90),
(4,'曹孟德', 82, 84, 67),
(5,'劉玄德', 55.5, 85, 45),
(6,'孫權(quán)', 70, 73, 78.5),
(7,'宋公明', 75, 65, 30);

查詢操作不會(huì)對(duì)數(shù)據(jù)庫中的內(nèi)容進(jìn)行修改,只是顯示數(shù)據(jù)庫的內(nèi)容

1.簡(jiǎn)單查詢

1.1 全列查詢

查詢成績(jī)表的所有信息

語法格式 :select 列名 from 表名;

 # *代表所有字段
select * from exam_result;

1.2 指定列查詢

查詢id,name的學(xué)生

語法格式:select 字段1,字段2 from 表名; 

#字段不用按照指定順序書寫
select id,name from exam_result;

1.3 查詢字段為表達(dá)式

計(jì)算每個(gè)學(xué)生的總成績(jī),且只顯示 id,name,和總分?jǐn)?shù)

select id,name, chinese + math + english from exam_result;

1.4 別名查詢

將所有學(xué)生的信息查詢出來,并將列名改為中文

別名查詢就是給字段起外號(hào),比如 表中的字段 id 我要讓他查詢顯示為 學(xué)號(hào),這樣就叫別名查詢,別名查詢需要用到關(guān)鍵字as(也可以省略)

語法格式 :select id as '起的別名' from exam_result;

select id as '學(xué)號(hào)',name '姓名',chinese '語文',math '數(shù)學(xué)',english '英語' from exam_result;

1.5 去重查詢

對(duì)math這列進(jìn)行去重處理

對(duì)某列數(shù)據(jù)去重

語法格式:select distinct 列名 from 表名;

select distinct math from exam_result;

1.6 order by 排序

asc(升序排序)從小到大

desc (降序排序) 從大到小 

語法格式:select 列名 from 表名 order by 列名 desc;

單列排序 對(duì)數(shù)學(xué)成績(jī)降序排序

select name,math from exam_result order by math desc;

對(duì)別名排序 對(duì)總分升序排序

select name,chinese + math + english total from exam_result order total asc; 

多個(gè)字段排序  對(duì)數(shù)學(xué)成績(jī),以及id排序

select id,name,math from exam_result order by id desc,math desc;

2.條件查詢(where)

如果查詢語句中沒有設(shè)置條件,就會(huì)查詢所有的行信息,在實(shí)際應(yīng)用中,一定要指定查詢條件,對(duì)記錄進(jìn)行過濾

語法格式:select 列名 from 表名 where 條件表達(dá)式;

#先取出表中的每條數(shù)據(jù),滿足條件的數(shù)據(jù)就返回,不滿足的就過濾掉

比較運(yùn)算符:

運(yùn)算符名稱說明示例
>大于比較左側(cè)值是否大于右側(cè)值salary > 5000
>=大于等于比較左側(cè)值是否大于或等于右側(cè)值age >= 18
<小于比較左側(cè)值是否小于右側(cè)值score < 60
<=小于等于比較左側(cè)值是否小于或等于右側(cè)值quantity <= 100
=等于(NULL 不安全)比較兩側(cè)值是否相等
NULL = NULL 返回 NULL
status = 'active'
NULL = NULL → NULL
<=>等于(NULL 安全)比較兩側(cè)值是否相等(包括 NULL
NULL <=> NULL 返回 TRUE(1)
phone <=> NULL
NULL <=> NULL → 1
!=<>不等于比較兩側(cè)值是否不相等department != 'HR'
status <> 'expired'
BETWEEN a0 AND a1范圍匹配檢查值是否在 [a0, a1] 閉區(qū)間內(nèi)
a0 <= value <= a1 返回 TRUE(1)
age BETWEEN 18 AND 30
date BETWEEN '2023-01-01' AND '2023-12-31'
IN (option, ...)集合匹配檢查值是否在指定集合中id IN (101, 205, 307)
status IN ('active', 'pending')
IS NULL是否為 NULL檢查值是否為 NULLemail IS NULL
IS NOT NULL是否不為 NULL檢查值是否不為 NULLphone IS NOT NULL
LIKE模糊匹配使用通配符匹配文本:
% - 任意多個(gè)字符(含0個(gè))
_ - 單個(gè)任意字符

邏輯運(yùn)算符:

運(yùn)算符說明
AND多個(gè)條件必須都為 TRUE(1),結(jié)果才是 TRUE(1)
or任意一個(gè)條件為 TRUE(1), 結(jié)果為 TRUE(1)
not條件為 TRUE(1),結(jié)果為 FALSE(0)

注意:
1. WHERE條件可以使用表達(dá)式,但不能使用別名。
2. AND的優(yōu)先級(jí)高于OR,在同時(shí)使用時(shí),需要使用小括號(hào)()包裹優(yōu)先執(zhí)行的部分

2.1 基本查詢

查詢英語不及格的同學(xué)及英語成績(jī) ( < 60 )

select name,english from exam_result where english < 60;

查詢語文成績(jī)好于英語成績(jī)的同學(xué)

select name ,chinese,english from exam_result where chinese > english;

查詢總分在 200 分以下的同學(xué)

select name,chinese + english + math 總分 from exam_result where chinese + english + math <200;

2.2 and與or

查詢語文成績(jī)大于80分,且英語成績(jī)大于80分的同學(xué)

select name,chinese,english from exam_result where chinese > 80 and english > 80;

查詢語文成績(jī)大于80分,或英語成績(jī)大于80分的同學(xué)

select name,chinese,english from exam_result where chinese > 80 or english > 80;

觀察AND 和 OR 的優(yōu)先級(jí)

select name,chinese,english from exam_result where chinese > 80 or english > 80 and english > 70;
select name,chinese,english from exam_result where (chinese > 80 or english) > 80 and english > 70;

2.3 范圍查詢 in,between...and...

查詢語文成績(jī)?cè)?[80, 90] 分的同學(xué)及語文成績(jī)

select name,chinese from exam_result where chinese between 80 and 90;

使用 AND 也可以實(shí)現(xiàn)

select name,chinese from exam_result where chinese >= 80 and chinese <= 90;

2.4 模糊查詢 Like

通過模糊查詢姓孫的同學(xué)信息

select name from exam_result where name like '%孫%';

通過模糊查詢孫姓為兩字的名字

select name from exam_result where name like '孫_';

2.5 NULL查詢 is null(is not null)

查詢 有英語成績(jī)的同學(xué)姓名

select name from exam_result where english is not null;

查詢 沒有英語成績(jī)的同學(xué)姓名

select name from exam_rseult where exam_result is null;

3.分頁查詢(limit)

limit 關(guān)鍵字的作用

1.limit是限制的意思,用于 限制返回的查詢結(jié)果的行數(shù) (可以通過limit指定查詢多少行數(shù)據(jù))

2.limit 語法是 MySql的方言,用來完成分頁

語法格式:SELECT 字段1,字段2... FROM 表名 LIMIT offset , length;

limit offset , length; 關(guān)鍵字可以接受一個(gè) 或者兩個(gè) 為0 或者正整數(shù)的參數(shù)

offset 起始行數(shù), 從0開始記數(shù), 如果省略 則默認(rèn)為 0.

length 返回的行數(shù)

查詢成績(jī)表中的前5條數(shù)據(jù)

select * from exam_result limit 5;
select * from exam_result limit 0,5;

查詢成績(jī)表中從第四條開始,查詢2條

select * from exam_result limit 3,2;

分頁操作,每頁顯示2條數(shù)據(jù)

select * from exam_result 0,2;
select * from exam_result 2,2;
select * from exam_result 4,2;

本內(nèi)容有錯(cuò)誤的地方請(qǐng)大家在評(píng)論區(qū)指出!我們一起學(xué)習(xí)進(jìn)步 ?。?!下一個(gè)內(nèi)容我們將學(xué)習(xí)多表查詢以及事務(wù)管理.....?。?!

到此這篇關(guān)于MySQL表的增刪改查及查詢表中數(shù)據(jù)的三種方式的文章就介紹到這了,更多相關(guān)mysql增刪改查內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL如何利用存儲(chǔ)過程快速生成100萬條數(shù)據(jù)詳解

    MySQL如何利用存儲(chǔ)過程快速生成100萬條數(shù)據(jù)詳解

    在MySQL數(shù)據(jù)庫中,如果要插入上百萬級(jí)的記錄,用普通的insertinto來操作非常不現(xiàn)實(shí),速度慢人力成本高,這篇文章主要給大家介紹了關(guān)于MySQL如何利用存儲(chǔ)過程快速生成100萬條數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • MySQL內(nèi)存使用率高且不釋放問題排查與總結(jié)

    MySQL內(nèi)存使用率高且不釋放問題排查與總結(jié)

    這篇文章主要給大家介紹了MySQL內(nèi)存使用率高且不釋放問題排查與總結(jié),文中通過代碼示例和圖文結(jié)合的方式給大家講解的非常詳細(xì),對(duì)大家解決問題有一定的幫助,需要的朋友可以參考下
    2024-09-09
  • MySQL transaction事務(wù)安全示例講解

    MySQL transaction事務(wù)安全示例講解

    這篇文章主要為大家介紹了MySQL數(shù)據(jù)庫事務(wù)安全transaction的示例講解教程,事務(wù)就是將一組操作封裝成一個(gè)執(zhí)行單元,要么一塊執(zhí)行成功,要么一塊失敗,不存在部分執(zhí)行成功的情況。事務(wù)保證了執(zhí)行的穩(wěn)定性,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-06-06
  • Oracle與MySQL的區(qū)別及優(yōu)缺點(diǎn)

    Oracle與MySQL的區(qū)別及優(yōu)缺點(diǎn)

    這篇文章主要介紹了Oracle與MySQL的區(qū)別及優(yōu)缺點(diǎn),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參加一下
    2022-08-08
  • MySQL之存儲(chǔ)函數(shù)詳細(xì)介紹

    MySQL之存儲(chǔ)函數(shù)詳細(xì)介紹

    大家好,本篇文章主要講的是MySQL之存儲(chǔ)函數(shù)詳細(xì)介紹,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • 一條SQL語句在MySQL中是如何執(zhí)行的

    一條SQL語句在MySQL中是如何執(zhí)行的

    本篇文章會(huì)分析下一個(gè)sql語句在mysql中的執(zhí)行流程,包括sql的查詢?cè)趍ysql內(nèi)部會(huì)怎么流轉(zhuǎn),sql語句的更新是怎么完成的,需要的朋友可以參考一下
    2021-10-10
  • mysql空間函數(shù)計(jì)算坐標(biāo)距離方式

    mysql空間函數(shù)計(jì)算坐標(biāo)距離方式

    文章介紹了如何使用MySQL的空間函數(shù)`st_distance`和`st_distance_sphere`計(jì)算兩點(diǎn)之間的距離,并對(duì)比了兩種方法的準(zhǔn)確性,`st_distance`函數(shù)計(jì)算的是兩點(diǎn)間的度數(shù),需要乘以111195轉(zhuǎn)換為米,但因每度長(zhǎng)度不一致會(huì)有誤差
    2025-02-02
  • Centos?7.9安裝MySQL8.0.32的詳細(xì)教程

    Centos?7.9安裝MySQL8.0.32的詳細(xì)教程

    這篇文章主要介紹了Centos7.9安裝MySQL8.0.32的詳細(xì)教程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • MySQL實(shí)現(xiàn)查詢處理JSON數(shù)據(jù)的示例詳解

    MySQL實(shí)現(xiàn)查詢處理JSON數(shù)據(jù)的示例詳解

    這篇文章主要為大家詳細(xì)介紹了MySQL如何實(shí)現(xiàn)查詢處理JSON數(shù)據(jù),文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以了解一下
    2023-06-06
  • 超詳細(xì)匯總21個(gè)值得收藏的mysql優(yōu)化實(shí)踐

    超詳細(xì)匯總21個(gè)值得收藏的mysql優(yōu)化實(shí)踐

    這篇文章主要分享的是超詳細(xì)匯總21個(gè)值得收藏的mysql優(yōu)化實(shí)踐,對(duì)正在學(xué)習(xí)的同學(xué)有一定的參考價(jià)值,需要的同學(xué)可以參考一下
    2022-01-01

最新評(píng)論