MySQL(十二)DML數據的增刪改

来源:https://www.cnblogs.com/leeqico/archive/2018/05/29/9105820.html
-Advertisement-
Play Games

一、DML語言 數據操作語言: 插入:insert 修改:update 刪除:delete 二、插入語句insert 2.1、方式一 語法:insert into 表名(欄位名,...) values(值,...); 特點: 1、要求值的類型和欄位的類型要一致或相容 2、欄位的個數和順序不一定與原始 ...


一、DML語言

數據操作語言:

插入:insert

修改:update

刪除:delete

二、插入語句insert

2.1、方式一

語法:insert into 表名(欄位名,...) values(值,...);

特點:

1、要求值的類型和欄位的類型要一致或相容

2、欄位的個數和順序不一定與原始表中的欄位個數和順序一致,但必須保證值和欄位一一對應

3、假如表中有可以為null的欄位,註意可以通過以下兩種方式插入null值

①欄位和值都省略

②欄位寫上,值使用null

4、欄位和值的個數必須一致

5、欄位名可以省略,預設所有列

註:這裡使用另外一個資料庫進行講解案例


 
 

案例1:插入的值的類型要與列的類型一致或相容

INSERT INTO beauty(id,NAME,sex,borndate,phone,photo,boyfriend_id) VALUES(13,'唐藝昕','女','1990-4-23','1898888888',NULL,2);

案例2:列的順序可以調換

INSERT INTO beauty(NAME,sex,id,phone) VALUES('蔣欣','女',16,'110');

案例3:可以省略列名,預設所有列,而且列的順序和表中列的順序一致

INSERT INTO beauty VALUES(18,'張飛','男',NULL,'119',NULL,NULL);

2.2、方式二

語法: insert into 表名 set 列名=值,列名=值,...

示例:INSERT INTO beauty SET id=19,NAME='劉濤',phone='999';

2.3、兩種方式大pk

1、方式一支持插入多行,方式二不支持

2、方式一支持子查詢,方式二不支持

三、修改語句

3.1、語法

(1)修改單表的記錄★

update 表名 set 列=新值,列=新值,... where 篩選條件;

(2)修改多表的記錄【補充】

sql92語法:

update 表1 別名,表2 別名 set 列=值,... where 連接條件 and 篩選條件;

sql99語法:

update 表1 別名 inner|left|right join 表2 別名 on 連接條件 set 列=值,... where 篩選條件;

3.2、修改單表的記錄

案例1:修改beauty表中姓唐的女神的電話為13899888899

UPDATE beauty SET phone = '13899888899' WHERE NAME LIKE '唐%';

案例2:修改boys表中id好為2的名稱為張飛,魅力值 10

UPDATE boys SET boyname='張飛',usercp=10 WHERE id=2;

3.3、修改多表的記錄

案例 1:修改張無忌的女朋友的手機號為114


 

案例2:修改沒有男朋友的女神的男朋友編號都為2號


 

四、刪除語句

4.1、語法

方式一:delete

1、單表的刪除【★】

delete from 表名 where 篩選條件

2、多表的刪除【補充】

sql92語法:

delete 表1的別名,表2的別名 from 表1 別名,表2 別名 where 連接條件 and 篩選條件;

sql99語法:

delete 表1的別名,表2的別名 from 表1 別名 inner|left|right join 表2 別名 on 連接條件 where 篩選條件;

方式二:truncate

語法:truncate table 表名;

4.2、delete

(1)單表的刪除

案例:刪除手機號以9結尾的女神信息

DELETE FROM beauty WHERE phone LIKE '%9';


 

(2)多表的刪除

案例:刪除黃曉明的信息以及他女朋友的信息

DELETE b,bo FROM beauty b INNER JOIN boys bo ON b.`boyfriend_id`=bo.`id` WHERE bo.`boyName`='黃曉明';


 

4.3、truncate語句

案例:將魅力值>100的男神信息刪除

TRUNCATE TABLE boys ;

4.4、delete pk truncate

(1)delete 可以加where 條件,truncate不能加;

(2)truncate刪除,效率高一丟丟;

(3)假如要刪除的表中有自增長列,如果用delete刪除後,再插入數據,自增長列的值從斷點開始,而truncate刪除後,再插入數據,自增長列的值從1開始;

(4)truncate刪除沒有返回值,delete刪除有返回值;

(5)truncate刪除不能回滾,delete刪除可以回滾.。

關註公眾號:Java後端生活,乾貨文章第一時間送達!


 
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • CentOS 通過yum指令安裝nginx 1.創建nginx安裝來源 將$releasever替換為7,將$basearch替換成x86_64,這兩個指令可以自動獲取系統屬性。 2.安裝 3.啟動 4.本地測試是否啟動服務 Ubuntu 通過apt-get安裝Nginx 1.卸載預設安裝 2.安裝 ...
  • 一、安裝Dnsmasq yum install -y dnsmasq 二、安裝dig yum install dnsmasq -y 三、編輯配置文件 vim /etc/dnsmasq.conf resolv-file=/etc/resolv.dnsmasq.conf strict-order lis ...
  • 這個是網友++C++在群里問的一個關於MySQL的問題,本篇文章實驗測試環境為MySQL 5.6.20,事務隔離級別為REPEATABLE-READ ,在演示問題前,我們先準備測試環境。準備一個測試表test以及一個存儲過程迴圈往test表裡面插入記錄。 CREATE TABLE test( `id... ...
  • MySQL事務的實現涉及到redo和undo以及purge,redo是保證事務的原子性和持久性;undo是保證事務的一致性(一致性讀和多版本併發控制);purge清理undo表空間背景知識,對於Innodb表中的行每一行包括:6位元組的事務ID(DB_TRX_ID)欄位: 用來標識最近一次對本行記錄做 ...
  • 在沒有引入elasticsearch-hadoop-xxx.jar相應的Jar包時,的在Hive中執行ElasticSearch外部表操作,會報如下的異常: [plain] view plain copy Exception in thread "main" java.io.IOException: ...
  • 如果你有多台伺服器想要運維,一般可以考慮ansible,puppet之類的,但是如果只是想簡單的在多台伺服器上執行一下命令,用xshell就可以了。 首先要把”撰寫欄”顯示出來,然後在“撰寫欄”里輸入命令,就可以在多台伺服器上執行了。 體驗千手觀音的感覺 這篇文章雖然很短,但是這個技巧太想安利給童鞋 ...
  • GES ... TX-... GES的全稱是Global Enqueue Service,用於RAC環境的全局共用隊列。從提示信息可以看出,目前的鎖定是DML引發的行級鎖(TX)。 檢查v$lock_object視圖,可以發現一些可疑鎖定,但不能馬上判斷是哪個對象引發的GES。更為直接的方法是檢查如 ...
  • 將Eclipse與資料庫進行連接的步驟: 1. 下載並配置MySQL 2. 為新建的項目配置mysql的jar包(jdbc和connection的配置) a) 可直接引用外部文件(不建議做,這樣項目一部署就失效) b) 找到相應jar包,並複製黏貼到相應項目下,然後build path進行邏輯上的建 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...