MySQL 基礎學習(2): INSERT 操作

在這篇文章中,我們將專注于 MySQL 中的 INSERT 操作,深入了解如何高效地向表中插入數據,并探索插入操作中的一些常見錯誤與解決方案。

一、基礎 INSERT 語法

在 MySQL 中,INSERT 操作用于向表中插入新記錄,基本語法如下:

INSERT INTO 表名 VALUES (值1, 值2, ...);

例如:

INSERT INTO student VALUES (1, 'zhangsan');

這條語句會向 student 表中插入一條記錄,其中 id1namezhangsan

注意事項

  1. 插入的數據個數和順序必須與表結構完全匹配。
  2. 字符串類型的數據需要用單引號包裹,例如 'zhangsan'
  3. 如果插入的數據類型不匹配,會導致錯誤,例如將字符串插入整型字段:
INSERT INTO student VALUES ('lisi');
-- 錯誤:將字符串插入整型字段會失敗。

解決方法:確保插入的數據類型與表結構一致。


二、指定列插入

有時我們不需要為所有列都插入數據,可以通過指定列名來插入:

INSERT INTO 表名 (列名1, 列名2, ...) VALUES (值1, 值2, ...);

例如:

INSERT INTO student (name, id) VALUES ('王五', 3);

這條語句只為 nameid 列插入數據,其他列會填充默認值(如 NULL)。


三、一次插入多行

為了提高插入效率,可以一次插入多條記錄:

INSERT INTO 表名 VALUES
(值1, 值2, ...),
(值3, 值4, ...),
(值5, 值6, ...);

例如:

INSERT INTO student VALUES
(2, 'lisi'),
(3, 'wangwu'),
(4, 'zhaoliu');

這種方式可以減少客戶端與服務器的交互次數,從而提高性能。

性能對比

  • 單行插入:每次插入一條記錄,適合小規模數據操作。
  • 多行插入:一次性插入多條記錄,適合批量操作,可以顯著減少網絡延遲。

四、插入 NULL 值

在 MySQL 中,如果某些字段沒有數據,可以插入 NULL 值,表示該字段為空。例如:

INSERT INTO student (id, name) VALUES (5, NULL);

這條語句會將 id 設置為 5name 設置為 NULL

注意事項

  • 確保表中的字段允許存儲 NULL 值。
  • 對于不允許為空的字段(如設置了 NOT NULL 約束),插入 NULL 會導致錯誤。

五、插入日期和時間

在需要插入日期或時間數據時,可以使用字符串或 MySQL 提供的內置函數。例如:

手動插入日期

INSERT INTO test (time) VALUES ('2025-01-25 15:30:00');

使用 NOW() 函數

INSERT INTO test (time) VALUES (NOW());

上述語句會將當前系統時間插入 time 字段。


六、常見錯誤與解決辦法

1. 列數不匹配

INSERT INTO student VALUES ('zhangsan');
-- 錯誤:插入的數據列數與表的字段數不匹配。

解決方法:確保插入的值與表結構的列數一致,或者顯式指定列名。

2. 數據類型錯誤

INSERT INTO student VALUES ('lisi');
-- 錯誤:將字符串插入整型字段。

解決方法:檢查數據類型,確保插入數據與字段類型一致。

3. 重復主鍵

INSERT INTO student VALUES (1, 'zhangsan');
-- 錯誤:主鍵重復。

解決方法:確保主鍵的唯一性,或在插入前檢查是否已有相同主鍵值。


七、總結

MySQL 中的 INSERT 操作是數據寫入的重要手段。在實際使用中,合理利用批量插入、指定列插入等技巧,不僅可以提高效率,還能避免常見錯誤。希望本文對你理解 INSERT 操作有所幫助,歡迎在評論區分享你的經驗!

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

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

相關文章

CVE-2023-38831 漏洞復現:win10 壓縮包掛馬攻擊剖析

目錄 前言 漏洞介紹 漏洞原理 產生條件 影響范圍 防御措施 復現步驟 環境準備 具體操作 前言 在網絡安全這片沒有硝煙的戰場上,新型漏洞如同隱匿的暗箭,時刻威脅著我們的數字生活。其中,CVE - 2023 - 38831 這個關聯 Win10 壓縮包掛…

論文閱讀(二):理解概率圖模型的兩個要點:關于推理和學習的知識

1.論文鏈接:Essentials to Understand Probabilistic Graphical Models: A Tutorial about Inference and Learning 摘要: 本章的目的是為沒有概率圖形模型背景或沒有深入背景的科學家提供一個高級教程。對于更熟悉這些模型的讀者,本章將作為…

記錄 | 基于Docker Desktop的MaxKB安裝

目錄 前言一、MaxKBStep 1Step2 二、運行MaxKB更新時間 前言 參考文章:如何利用智譜全模態免費模型,生成大家都喜歡的圖、文、視并茂的文章! MaxKB的Github下載地址 參考視頻:【2025最新MaxKB教程】10分鐘學會一鍵部署本地私人專屬…

Go反射指南

概念: 官方對此有個非常簡明的介紹,兩句話耐人尋味: 反射提供一種讓程序檢查自身結構的能力反射是困惑的源泉 第1條,再精確點的描述是“反射是一種檢查interface變量的底層類型和值的機制”。 第2條,很有喜感的自嘲…

第26篇 基于ARM A9處理器用C語言實現中斷<二>

Q:基于ARM A9處理器怎樣編寫C語言工程,使用按鍵中斷將數字顯示在七段數碼管上呢? A:基本原理:主程序需要首先調用子程序set_A9_IRQ_stack()初始化IRQ模式的ARM A9堆棧指針;然后主程序調用子程序config_GIC…

基于GS(Gaussian Splatting)的機器人Sim2Real2Sim仿真平臺

項目地址:RoboGSim 背景簡介 已有的數據采集方法中,遙操作(下左)是數據質量高,但采集成本高、效率低下;傳統仿真流程成本低(下右),但真實度(如紋理、物理&…

「 機器人 」利用沖程對稱性調節實現仿生飛行器姿態與方向控制

前言 在仿生撲翼飛行器中,通過改變沖程對稱性這一技術手段,可以在上沖與下沖兩個階段引入不對稱性,進而產生額外的力或力矩,用于實現俯仰或其他姿態方向的控制。以下從原理、在仿生飛行器中的應用和典型實驗示例等方面進行梳理與闡述。 1. 沖程對稱性原理 1.1 概念:上沖與…

MongoDB部署模式

目錄 單節點模式(Standalone) 副本集模式(Replica Set) 分片集群模式(Sharded Cluster) MongoDB有多種部署模式,可以根據業務需求選擇適合的架構和部署方式。 單節點模式(Standa…

微服務搭建----springboot接入Nacos2.x

springboot接入Nacos2.x nacos之前用的版本是1.0的,現在重新搭建一個2.0版本的,學如逆水行舟,不進則退,廢話不多說,開搞 1、 nacos2.x搭建 1,首先第一步查詢下項目之間的版本對照,不然后期會…

react-native網絡調試工具Reactotron保姆級教程

在React Native開發過程中,調試和性能優化是至關重要的環節。今天,就來給大家分享一個非常強大的工具——Reactotron,它就像是一個貼心的助手,能幫助我們更輕松地追蹤問題、優化性能。下面就是一份保姆級教程哦! 一、…

npm啟動前端項目時報錯(vue) error:0308010C:digital envelope routines::unsupported

vue 啟動項目時,npm run serve 報下面的錯: error:0308010C:digital envelope routines::unsupported at new Hash (node:internal/crypto/hash:67:19) at Object.createHash (node:crypto:133:10) at FSReqCallback.readFileAfterClose [as on…

改進候鳥優化算法之三:引入自適應策略的候鳥優化算法(AS-MBO)

引入自適應策略的候鳥優化算法(Migrating Birds Optimization with Adaptive Strategy,簡稱AS-MBO)是對傳統候鳥優化算法(Migrating Birds Optimization,MBO)的一種改進。MBO算法本身是一種基于群體智能的元啟發式優化算法,其靈感來源于候鳥遷徙時的“V”字形飛行隊列,…

02-機器學習-核心概念

以下是機器學習核心概念的詳細梳理。 1. 機器學習三大范式 類型定義典型應用監督學習使用帶標簽的數據訓練模型,預測未知數據的標簽。分類(郵件垃圾過濾)、回歸(房價預測)無監督學習從無標簽的數據中發現隱藏模式或結…

Redis實戰(黑馬點評)——關于緩存(緩存更新策略、緩存穿透、緩存雪崩、緩存擊穿、Redis工具)

redis實現查詢緩存的業務邏輯 service層實現 Overridepublic Result queryById(Long id) {String key CACHE_SHOP_KEY id;// 現查詢redis內有沒有數據String shopJson (String) redisTemplate.opsForValue().get(key);if(StrUtil.isNotBlank(shopJson)){ // 如果redis的數…

算法-加油站問題

hello 大家好!今天開寫一個新章節,每一天一道算法題。讓我們一起來學習算法思維吧! function canCompleteCircuit(gas, cost) {// 加油站的總數const n gas.length;// 記錄總剩余油量,若總剩余油量小于 0,說明無法繞環…

訊飛繪鏡(ai生成視頻)技術淺析(二):大模型

1.訊飛星火大模型的基礎架構 2.自然語言處理(NLP)技術的具體實現 3.腳本生成的具體過程與模型公式 4.分鏡生成的具體過程與模型公式 5.視頻生成與編輯的技術細節 6.關鍵技術公式的詳細推導與解釋 一、訊飛星火大模型的基礎架構 訊飛星火大模型是基于Transformer架構的深…

【機器學習】深入探索SVM:支持向量機的原理與應用

目錄 🍔 SVM引入 1.1什么是SVM? 1.2支持向量機分類 1.3 線性可分、線性和非線性的區分 🍔 小結 學習目標 知道SVM的概念 🍔 SVM引入 1.1什么是SVM? 看一個故事,故事是這樣子的: 在很久以前的情人節&#xf…

pycharm 運行遠程環境問題 Error:Failed to prepare environment.

問題排查 拿到更詳細的報錯信息: Help > Diagnostic Tools > Debug Log Settings section: 添加下面的配置 com.intellij.execution.configurations.GeneralCommandLine 重顯報錯,我這里是再次運行代碼打開 Help | Collect Logs and Diagnosti…

一組開源、免費、Metro風格的 WPF UI 控件庫

前言 今天大姚給大家分享一個開源、免費、Metro風格的 WPF UI 控件庫:MahApps.Metro。 項目介紹 MahApps.Metro 是一個開源、免費、Metro風格的 WPF UI 控件庫,提供了現代化、平滑和美觀的控件和樣式,幫助開發人員輕松創建具有現代感的 Win…

讀寫和解析簡單的 nc 文件

NetCDF 文件格式在氣象數據工程領域占據著舉足輕重的地位,其結構靈活、強兼容性等優勢使其成為該領域的一個標準。無論是從事學術研究還是工程實踐,掌握這種數據格式變得越發重要。其次,我注意到目前社區中氣象編程大多數課程都聚焦于某個特定…