day03-MySQL基礎知識02

来源:https://www.cnblogs.com/liyuelian/archive/2022/10/02/16749704.html
-Advertisement-
Play Games

MySQL基礎知識02 4.CRUD 資料庫CRUD語句:增(create)、刪(delete)、改(update)、查(Retrieve) Insert 語句 (添加數據) Update 語句(更新數據) Delete 語句(刪除數據) Select 語句 (查找數據) 指對資料庫中表記錄的操作( ...


MySQL基礎知識02

4.CRUD

資料庫CRUD語句:增(create)、刪(delete)、改(update)、查(Retrieve)

  1. Insert 語句 (添加數據)
  2. Update 語句(更新數據)
  3. Delete 語句(刪除數據)
  4. Select 語句 (查找數據)

指對資料庫中表記錄的操作(DML 操作)

註意:

alter屬於DDL,用來修改基本表,是對錶的結構進行操作,比如對欄位增加,刪除,修改類型;

DML 操例,如update是用來修改表中的數據,修改某一行某一列的值

對行是數據操縱DML(update),對列是數據定義DDL(alter)

4.1Insert語句

  • 使用INSERT 語句向表中插入數據
INSERT INTO tablename [(column [,column ...])]
VALUES 	(value[, value...]);

例子

  1. 創建一商品表goods(id int, goods_name varchar(10),price double);
  2. 添加兩條記錄
# 練習insert語句
-- 1. 創建一商品表goods(id int, goods_name varchar(10),price double);
CREATE TABLE goods(
	id INT,
	goods_name VARCHAR(10),
	price DOUBLE)
	
-- 2. 添加兩條記錄
INSERT INTO goods (id,goods_name,price)
	VALUES(10,'華為手機',2000);
	
INSERT INTO goods (id,goods_name,price)
	VALUES(20,'蘋果手機',3000);

SELECT * FROM goods;
image-20221002184244851
  • INSERT語句註意事項

細節說明:

  1. 插入的數據應該與欄位的數據類型相同,比如把 'abc' 添加到 int 類型會錯誤

  2. 數據的長度應在列的規定範圍之內,例如:不能將一個長度為80的字元串加入到長度為40的列中

  3. 在values中列出的數據位置必須與被加入的列的排列位置對應

  4. 字元和日期型數據應包含在單引號中

  5. 列可以插入空值[前提是該欄位允許為空],insert into table value(null)

  6. insert into table_name(列名...) values (),(),() 形式添加多條記錄

  7. 如果是給表中的所有欄位添加數據,可以不寫前面的欄位名稱

  8. 預設值的使用,當不給某個欄位值時,如果有預設值就會添加預設值,否則報錯

    如果某個列沒有指定not null,那麼當添加數據時,沒有給定值,則會預設給null

    如果我們希望指定某個預設值,可以在創建表時指定

-- - INSERT語句註意事項
-- 細節說明:
-- 1. 插入的數據應該與欄位的數據類型相同
INSERT INTO goods VALUES('北京','小米手機',2000)-- 失敗,id對應的列類型是int

-- 2. 數據的長度應在列的規定範圍之內,例如:不能將一個長度為80的字元串加入到長度為40的列中
INSERT INTO goods VALUES(40,'vovo手機vovovovo手機vovovovo手機vovo',2000)-- 失敗

-- 3. 在values中列出的數據位置必須與被加入的列的排列位置對應
INSERT INTO goods (goods_name,id,price)-- 成功,即使改變了列屬性的位置,只要值是對應的,就ok
	VALUES('vivo手機',50,1800)


-- 4. 字元和日期型數據應包含在單引號中
INSERT INTO goods VALUES(60,小米手機,2000)-- 失敗,字元串應該加上單引號

-- 5. 列可以插入空值[前提是該欄位允許為空],insert into table value(null)
INSERT INTO goods (id,goods_name,price)
	VALUES(11,'boluo手機',NULL)-- 成功,該欄位允許為空

-- 6. insert into table_name(列名...) values (),(),() 形式添加多條記錄
INSERT INTO goods VALUES(13,'三星手機',2300),(14,'四星手機',2300)-- ok

-- 7. 如果是給表中的所有欄位添加數據,可以不寫前面的欄位名稱
INSERT INTO goods (id) VALUES(66); -- ok,指定了欄位

-- 8. 預設值的使用,當不給某個欄位值時,如果有預設值就會添加預設值,否則報錯
	-- 如果某個列沒有指定not null,那麼當添加數據時,沒有給定值,則會預設給null
INSERT INTO goods (id,goods_name) 
	VALUES(88,'格力手機');-- 這裡的price預設設為null
SELECT * FROM goods;
		
-- 如果我們希望指定某個預設值,可以在創建表時指定
-- 例如
CREATE TABLE goods2 (
	id INT ,
	goods_name VARCHAR(10),
	price FLOAT NOT NULL DEFAULT 100);
INSERT INTO goods2 (id,goods_name) VALUES(1,'大西瓜手機');
SELECT * FROM goods2;

goods表:

image-20221002214014175

goods2表:

image-20221002214056677

4.2Update語句

  • 語法:
UPDATE tab_name 
	SET col_name1=expr1[, col_name2=expr2...]
	[WHERE where_definition]

例子

要求:在上面創建的epm表中修改表中的記錄

  1. 將所有員工的薪水改為5000元
  2. 將姓名為‘小妖怪’的員工薪水改為3000元
  3. 將老妖怪的薪水在原有的基礎上加1000元
-- 要求:在上面創建的epm表中修改表中的記錄
SELECT * FROM emp

-- 1. 將所有員工的薪水改為5000元
UPDATE emp SET salary = 5000


-- 2. 將姓名為‘小妖怪’的員工薪水改為3000元
UPDATE emp SET salary = 3000 WHERE user_name = '小妖怪'

-- 3. 將老妖怪的薪水在原有的基礎上加1000元
INSERT INTO emp 
	VALUES(200,'老妖怪','1990-1-1','2004-4-12 12:22:09','捶背的',5000,'給大王捶背','111')
 
 UPDATE emp 
	SET salary = salary + 1000, job='出主意的'
	WHERE user_name = '老妖怪'

image-20221002221709227

  • 使用細節
  1. UPDATE 語法可以用新值更新原有表行中的各列
  2. set子句指示要修改哪些列和要給予哪些值
  3. WHERE子句指定應更新哪些行,如果沒有WHERE子句,則更新所有的記錄。因此要慎用
  4. 如果需要修改多個欄位,可以通過set欄位1=值1,欄位2=值2...

4.3Delete語句

  • 語法
delete from tbl_name 
		[WHERE where_definition]

例子

-- delete語句演示
-- 刪除表中名稱為'老妖怪'的記錄
DELETE FROM emp WHERE user_name ='老妖怪'

-- 刪除表中所有記錄
DELETE FROM emp

SELECT * FROM emp

image-20221002222608594

  • 使用細節
  1. 如果不使用子句,將刪除表中所有數據
  2. delete語句不能刪除某一列的值(可使用update設為null或者 '')
  3. 使用delete語句僅刪除記錄,不刪除表本身。如果要刪除表,使用drop 語句:drop table 表名;

4.4Select語句


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

-Advertisement-
Play Games
更多相關文章
  • 在開發過程中,像側邊欄這種功能的版塊,我們在很多頁面都需要使用到的時候,我們則需要在視圖函數中書寫重覆的代碼,這樣很繁瑣,我們可以將側邊欄製成inclusion_tag,後面我們需要用到側邊欄功能時,只需要導入即可! 將側邊欄製成inclusion_tag的步驟: 1.在應用下創建一個名字必須叫te ...
  • 2022-10-01 關聯查詢: 在Django項目中使用ORM模式設置表後,進行關聯查詢,即兩個表直接有聯繫的查詢。 方式: 可以通過主表查詢從表,也可以通過從表查詢主表。 方式一實例: (1)查詢編號為1的圖書中的人物 前提環境,進入pycharm,進入虛擬環境、進入shell環境。 首先,需要 ...
  • 在本人前一篇博文`《驅動開發:通過ReadFile與內核層通信》`詳細介紹瞭如何使用應用層`ReadFile`系列函數實現內核通信,本篇將繼續延申這個知識點,介紹利用`PIPE`命名管道實現應用層與內核層之間的多次通信方法。 ...
  • 標題是個大命題,場景其實有很多很多,而且千變萬化,一個帖子很難暢聊,以後會慢慢談。說一個最常見的場景。每個員工發張NFC卡,管理者給每人分配的卡裡寫入賬號和密碼,從而實現刷卡自動登錄客戶端系統。我看到這種需求的時候,做了一些研究,發現線上的免費解決方案根本就沒有,既然有需求沒雲端解決方案,我就自己做 ...
  • 簡述 類型:創建型 目的:實現對客戶端中對象族的平替。 對象族 一組對象。比如,華為的手機,筆記本,平板可以統稱為華為族。 我們藉以下案例來說說如何使用抽象工廠模式平替對象族。 優化案例 最初版 public interface Uploader { void upload(String fileN ...
  • 一 引入 項目有個新需求,當點擊或觸碰TextBox時,基於TextBox的相對位置,彈出一個自定義的Keyboard,如下圖所示: 二 KeyboardControl 先實現一個自定義的KeyboardControl,它繼承自Window。 Xaml代碼如下: <Window x:Class="W ...
  • 我們在創建條形碼時,如果以圖片的方式將創建好的條碼保存到指定文件夾路徑,可以在程式中直接載入圖片使用;已生成的條碼圖片,需要通過讀取圖片中的條碼信息,如條碼類型、條碼繪製區域在圖片中的四個頂點坐標位置等,可參考本文中的方法。 註:讀取時,也支持讀取二維碼類型。 引入dll 調用API:Spire.B ...
  • 大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是i.MXRT10xx系列MCU外接24MHz晶振的作用。 痞子衡之前寫過一篇關於時鐘引腳的文章 《i.MXRT1xxx系列MCU時鐘相關功能引腳的作用》,裡面簡單提及了外部晶振相關引腳的作用,但是並沒有詳細展開。最近在客戶支持中,有客戶 ...
一周排行
    -Advertisement-
    Play Games
  • 概述:在C#中,++i和i++都是自增運算符,其中++i先增加值再返回,而i++先返回值再增加。應用場景根據需求選擇,首碼適合先增後用,尾碼適合先用後增。詳細示例提供清晰的代碼演示這兩者的操作時機和實際應用。 在C#中,++i 和 i++ 都是自增運算符,但它們在操作上有細微的差異,主要體現在操作的 ...
  • 上次發佈了:Taurus.MVC 性能壓力測試(ap 壓測 和 linux 下wrk 壓測):.NET Core 版本,今天計劃準備壓測一下 .NET 版本,來測試並記錄一下 Taurus.MVC 框架在 .NET 版本的性能,以便後續持續優化改進。 為了方便對比,本文章的電腦環境和測試思路,儘量和... ...
  • .NET WebAPI作為一種構建RESTful服務的強大工具,為開發者提供了便捷的方式來定義、處理HTTP請求並返迴響應。在設計API介面時,正確地接收和解析客戶端發送的數據至關重要。.NET WebAPI提供了一系列特性,如[FromRoute]、[FromQuery]和[FromBody],用 ...
  • 原因:我之所以想做這個項目,是因為在之前查找關於C#/WPF相關資料時,我發現講解圖像濾鏡的資源非常稀缺。此外,我註意到許多現有的開源庫主要基於CPU進行圖像渲染。這種方式在處理大量圖像時,會導致CPU的渲染負擔過重。因此,我將在下文中介紹如何通過GPU渲染來有效實現圖像的各種濾鏡效果。 生成的效果 ...
  • 引言 上一章我們介紹了在xUnit單元測試中用xUnit.DependencyInject來使用依賴註入,上一章我們的Sample.Repository倉儲層有一個批量註入的介面沒有做單元測試,今天用這個示例來演示一下如何用Bogus創建模擬數據 ,和 EFCore 的種子數據生成 Bogus 的優 ...
  • 一、前言 在自己的項目中,涉及到實時心率曲線的繪製,項目上的曲線繪製,一般很難找到能直接用的第三方庫,而且有些還是定製化的功能,所以還是自己繪製比較方便。很多人一聽到自己畫就害怕,感覺很難,今天就分享一個完整的實時心率數據繪製心率曲線圖的例子;之前的博客也分享給DrawingVisual繪製曲線的方 ...
  • 如果你在自定義的 Main 方法中直接使用 App 類並啟動應用程式,但發現 App.xaml 中定義的資源沒有被正確載入,那麼問題可能在於如何正確配置 App.xaml 與你的 App 類的交互。 確保 App.xaml 文件中的 x:Class 屬性正確指向你的 App 類。這樣,當你創建 Ap ...
  • 一:背景 1. 講故事 上個月有個朋友在微信上找到我,說他們的軟體在客戶那邊隔幾天就要崩潰一次,一直都沒有找到原因,讓我幫忙看下怎麼回事,確實工控類的軟體環境複雜難搞,朋友手上有一個崩潰的dump,剛好丟給我來分析一下。 二:WinDbg分析 1. 程式為什麼會崩潰 windbg 有一個厲害之處在於 ...
  • 前言 .NET生態中有許多依賴註入容器。在大多數情況下,微軟提供的內置容器在易用性和性能方面都非常優秀。外加ASP.NET Core預設使用內置容器,使用很方便。 但是筆者在使用中一直有一個頭疼的問題:服務工廠無法提供請求的服務類型相關的信息。這在一般情況下並沒有影響,但是內置容器支持註冊開放泛型服 ...
  • 一、前言 在項目開發過程中,DataGrid是經常使用到的一個數據展示控制項,而通常表格的最後一列是作為操作列存在,比如會有編輯、刪除等功能按鈕。但WPF的原始DataGrid中,預設只支持固定左側列,這跟大家習慣性操作列放最後不符,今天就來介紹一種簡單的方式實現固定右側列。(這裡的實現方式參考的大佬 ...