「MySQL」增刪查改

在操作數據庫中的表時,需要先使用該數據庫:

use database;

新增

創建表

先用 use 指定一個數據庫,然后使用 create 新增一個表
比如建立一個學生表

mysql> use goods;
mysql> create table student(-> name varchar(4),-> age int,-> grade decimal(3,1)-> );

通過desc + 表名來查看表結構:
在這里插入圖片描述
其中的 name、age、grade 就是列(MySQL中的列就是我們平時所說的行);Field、Type 等就是行,其中 Null 中的Yes 表示該列可以為空,如果是 NO 則不可為空,Default 表示該列的默認值

表中各行所表示的含義如下:
在這里插入圖片描述


插入記錄

創建好表之后,使用 insert into 表名 values(列名 列名...) 來插入記錄:

mysql> insert into student values("張三",20,98.5);

這里我們把所有列名都插入了,我們也可以指定插入部分列名,只需在表名后面加上要插入的列名就 ok 了:

mysql> insert into student(name,grade) values("李四",90);

插入后查看表
在這里插入圖片描述
可以看到 age 那里是 NULL,它表示這條記錄的這一列為空

我們現在是一條一條地插入,其實也可以一次插入多條記錄:

mysql> insert into student values("王五",25,80),("趙六",24,85);

在這里插入圖片描述

一次插入10個數據比一次插入一個數據,分10次完成的效率高

因為每條 sql 都會涉及到下面的交互過程:
在這里插入圖片描述

  • 如果分 10 條 sql 進行,那意味著在這個過程中,就會有10次網絡交互
    數據庫服務器收到請求之后,也要進行 10 次對應的處理,比如檢查語法、數據校驗、把你要插入的數據的位置在硬盤上進行定位…

  • 如果只用 1 次完成,雖然單次消耗的時間會更長,但是網絡開銷、服務器檢查的開銷都是一份的,這個做法會更高效一些

查詢

查詢方式

可以通過 select * from 表名 查詢到表中所有數據,比如上面就是通過這條語句來查看數據的
也可以使用select 列名,列名 from 表名來查看指定列的信息

注意:在公司的生產環境服務器上,不要隨便敲select* !!!因為數據量很大的話,這個操作會產生大量的硬盤IO和網絡IO,可能把硬盤或網卡的帶寬給吃滿了
而一旦帶寬吃滿,此時服務器就無法正常響應其他客戶端的請求(在其他客戶端的視野中,就會認為MySQL服務器是掛了)

除了上面兩種查詢方式,我們還可以使用表達式查詢
就是在查詢過程中,指定表達式,把查詢出來的每一行,都代入到表達式中進行運算

比如下面的grade-10就是一個表達式
在這里插入圖片描述
進行表達式查詢時,并沒有修改硬盤中存儲的數據,只是在查詢結果的基礎上進行運算,得到一份"臨時表",也就是說 select 進行的任何操作都不會修改數據本體
此時查詢出來的臨時表,為了保證數據的正確性,每個列的類型不再受限于原始表

比如給所有學生的成績加10
在這里插入圖片描述
雖然 grade 限定位數為 3 ,但是為了使數據不會出錯,所以臨時表不會限制位數

查詢操作結束后,臨時表中的數據就會消散了

到這里我們介紹了三種查詢方式:
①查詢所有數據
②查詢指定列數據
③表達式查詢

還有四種查詢方式
④查詢時帶上別名

select 表達式 as 別名 from 表名;

比如現在有一個學生成績表,有語文、數學、英語三個科目,我想查詢某個學生成績的總和,可以這樣:
在這里插入圖片描述
查詢結果的列就只有 sum,而不是 chinese+math+english,這樣可以使查詢結果更簡潔


⑤查詢時進行去重

select distinct 列名 from 表名

根據查詢出的列名進行去重,把列的值相同的記錄合并為一個
比如現在有如下的表:
在這里插入圖片描述
在這里插入圖片描述
現在只查詢一個列,那如果同時查詢多個列并進行去重呢?
在這里插入圖片描述
從上圖我們可以得出:查詢多個列時,只有兩個記錄多個列的值都相同,才算是重復


⑥查詢時進行排序

select 列名 from 表名 order by 列名 

在這里插入圖片描述
(注意前面用desc + 表名來查看表結構;而這里是將desc放在后面排降序)

order by 也可以指定多個列進行排序,指定多個列時,帶有優先級,前面的列優先級高,后面的低。優先級高的列的值相同時,才會去比較優先級低的列
舉個例子:
在這里插入圖片描述


⑦條件查詢
就是查詢時指定篩選條件,只有滿足條件的數據才會保留作為結果集(如果不滿足,那么這個數據會被跳過)

  • 比較運算符
運算符說明
>, >=, <, <=大于,大于等于,小于,小于等于
=等于
<=>等于
!=, <>不等于
BETWEEN a0 AND a1范圍匹配,[a0, a1],如果 a0 <= value <= a1,返回 TRUE(1)
IN(option…)如果是 option 中的任意一個,返回 TRUE(1)
IS NULL是NULL
IS NOT NULL不是NULL
LIKE模糊匹配。% 表示任意多個(包括 0 個)任意字符;_ 表示任意一個字符

我們重點來講兩個“等于”
對于 NULL = NULL ,它的結果是 false
而如果是 NULL <=> NULL,結果則為 true

  • NULL表示某個單元格沒填,對于 =,它認為等號左右的 NULL 指的不是同一個單元格,沒有可比性,所以二者不相等
  • 而對于 <=>,它只看內容,既然二者都沒有內容,那就都一樣

要使用條件查詢需要搭配關鍵字where
在這里插入圖片描述

  • 邏輯運算符
運算符說明
AND多個條件必須都為 TRUE(1),結果才是 TRUE(1)
OR任意一個條件為 TRUE(1), 結果為 TRUE(1)
NOT條件為 TRUE(1),結果為 FALSE(0)

注意:

  1. WHERE條件可以使用表達式,但不能使用別名
  2. AND的優先級高于OR,在同時使用時,需要使用小括號()包裹優先執行的部分

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

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

相關文章

Compose 介紹

Compose 介紹 Android Compose 是 Google 官方推出的用于構建原生 Android UI 的現代工具包。它使用 Kotlin 語言編寫&#xff0c;可以幫助開發人員更輕松、更快速地創建精美、響應式和高性能的 Android 應用。 Compose 的優勢 聲明式 UI&#xff1a; Compose 使用聲明式 UI…

IIS部署.Net 7項目

&#x1f468; 作者簡介&#xff1a;大家好&#xff0c;我是Taro&#xff0c;前端領域創作者 ?? 個人主頁&#xff1a;唐璜Taro &#x1f680; 支持我&#xff1a;點贊&#x1f44d;&#x1f4dd; 評論 ??收藏 文章目錄 前言一、發布項目二、解決發布失敗1.發布失敗2.托管…

深入理解計算機系統筆記

1.1 嵌套的數組 當我們創建數組的數組時&#xff0c;數組分配和引用的一般原則也是成立的。 例如&#xff0c;聲明 int A[5][3]; 等價于下面的聲明 typedef int row3_t[3]; row3_t A[5] 要訪問多維數組的元素&#xff0c;編譯器會以數組起始為基地址&#xff0c; (可能需…

【Ai生態開發】Spring AI上架,打造專屬業務大模型,AI開發再也不是難事!

大家好 這里是蘇澤 后端是工作 ai是興趣 對于ai的產生我的立場是擁抱ai的 是希望拿他作為提升能力的工具 那么這一篇帶大家來學習如何使用ai打造一個專屬的業務大模型 需求 就是說假設現在有一個 商城系統 里面有查詢訂單的api和獲取商品購買方式的api 用戶只需要輸入 “…

C++二叉搜樹的實現(遞歸和非遞歸)

目錄 1.什么是二叉搜索樹 2.二叉搜索樹的查找 3.二叉搜索樹插入 4.二叉搜索樹的刪除 1.刪除的節點只有左子樹或者右子樹 2.刪除節點左右子樹都有的情況 5.代碼 1.什么是二叉搜索樹 左節點的值小于根節點 右節點大于根節點 左右子樹也滿足上面兩個條件 例&#xff1a;…

平臺工程與安全

平臺工程不是為了取代DevOps&#xff0c;而是DevOps的進一步演進和發展。本文介紹了DevOps和平臺工程&#xff0c;以及對于安全的意義。原文: Platform Engineering and Security: A Very Short Introduction 中國云南大理的日落 我是一名 DevOps 工程師&#xff0c;個人還是希…

c# 調用存儲過程

1.調用返回OUT的存儲過程 a.調用OUT字符串的存儲過程&#xff1b; #region 連接數據庫/// <summary>/// 連接數據庫/// </summary>/// <param name"connStatus"></param>/// <param name"dbNode"></param>/// <ret…

Android WebView訪問網頁+自動播放視頻+自動全屏+切換橫屏

一、引言 近期&#xff0c;我發現電視家、火星直播等在線看電視直播的軟件都已倒閉&#xff0c;而我奶奶也再無法通過這些平臺看電視了。她已六十多歲&#xff0c;快七十歲啦。這些平臺的倒下對我來說其實沒有多大的影響&#xff0c;但是對于文化不多的她而言&#xff0c;生活中…

Linux下的時間同步,以及ntp時間服務器配置流程

Linux下的時間同步&#xff0c;以及ntp時間服務器配置流程 概論常見時間操作命令Linux下的系統時間配置Linux硬件的時間的設置系統時間和硬件時間的同步NTP服務器時間的同步NTP服務的安裝NTP的時間同步定時任務里的時間同步配置文件同步時間 概論 但在Linux下&#xff0c;系統…

SpringBoot中間件簡介

Spring Boot是一個Java框架&#xff0c;它提供了一系列中間件來簡化應用程序的開發和集成。以下是一些常見的Spring Boot中間件&#xff1a; Web中間件&#xff1a; Servlet容器&#xff08;內嵌Tomcat、Jetty或Undertow&#xff09; Spring MVC&#xff08;用于構建Web應用程…

HBuilderX創建uniapp項目使用 tailwindcss

文章目錄 一、創建package.json文件二、打開終端 yarn / npm 安裝依賴三、創建 vue.config.js文件四、創建postcss.config.js文件五、創建tailwind.config.js文件六、App.vue文件的style中引入tailwindcss 一、創建package.json文件 {"devDependencies": {"aut…

藍橋杯算法 一.

分析&#xff1a; 本題記錄&#xff1a;m個數&#xff0c;異或運算和為0&#xff0c;則相加為偶數&#xff0c;后手獲勝。 分析&#xff1a; 369*99<36500&#xff0c;369*100>36500。 注意&#xff1a;前綴和和后綴和問題

知識(202402)

1.Conditional Conditional來源于spring-context包下的一個注解。Conditional中文是條件的意思&#xff0c;Conditional注解它的作用是按照一定的條件進行判斷&#xff0c;滿足條件給容器注冊bean。 可以控制一個配置類是否注入到容器中&#xff0c;比如控制xxl-job不自動注冊…

【wpf】關于綁定的一點明悟

背景簡介 軟件功能為&#xff0c;讀取一個文件夾下的所有子文件夾&#xff0c;每個文件夾對自動對應生成 一組 “按鍵四個勾選” 按鍵點擊觸發&#xff0c;可以發送與其對應文件夾中的一些內容。這個綁定的過程我在之前的文章有過詳細的介紹&#xff0c;非常的簡單。 這里回顧…

3月1日做題總結(靜態庫與動態庫)

前言 最近學到了靜態庫和動態庫的相關知識&#xff0c;就順便整理了一下相關題目。如果對靜態庫和動態庫知識不熟悉的同學&#xff0c;推薦看這篇文章——《靜態庫與動態庫》&#xff0c;講的很詳細。 第一題 關于靜態庫與動態庫的區別&#xff0c;以下說法錯誤的是&#xff…

mac jupyter使用現有的python環境

mood&#xff1a;python 編程真的是在反復的與自己和解啊 本來超級的畏難情緒 讀會兒書 計算機博士的書 感覺還是要堅強的。《研磨記》--一位博士生的回憶錄 作者技術真的強啊 正文開始&#xff1a; 聚焦搜索&#xff0c;打開終端激活虛擬環境&#xff1a;conda activate pyt…

力扣爆刷第83天之hot100五連刷1-5

力扣爆刷第83天之hot100五連刷1-5 文章目錄 力扣爆刷第83天之hot100五連刷1-5一、1. 兩數之和二、49. 字母異位詞分組三、128. 最長連續序列四、283. 移動零五、11. 盛最多水的容器 一、1. 兩數之和 題目鏈接&#xff1a;https://leetcode.cn/problems/two-sum/description/?…

javascript中使用‘use strict’和不使用的區別

錯誤處理&#xff1a; 嚴格模式使得 JavaScript 對某些可能的問題拋出錯誤&#xff0c;而在非嚴格模式下&#xff0c;這些問題可能會被忽略。例如&#xff0c;未聲明的變量&#xff08;即全局變量&#xff09;在非嚴格模式下會被隱式地創建為全局變量&#xff0c;而在嚴格模式…

十一、 二進制位運算

描述 Python有位運算&#xff0c;是直接將數字看成二進制&#xff0c;直接對二進制數字的每一位進行運算。現輸入兩個十進制整數x、y&#xff0c;請計算它們的位與、位或&#xff0c;輸出按照十進制的形式。 輸入描述&#xff1a; 一行輸入兩個整數x、y&#xff0c;以空格間…

git:合并兩個不同倉庫的代碼

有兩個代碼倉庫&#xff1a;代碼倉庫A、代碼倉庫B&#xff0c;其中一個倉庫的代碼是為了新項目拉取的新分支&#xff0c;所以分支的部分修改歷史是相同的 現在要將代碼倉庫B 的代碼合并到代碼倉庫A 實現思路&#xff1a;分支合并 實現步驟&#xff1a; # 1、clone代碼倉庫A…