結合實際應用總結mySql語句關鍵場景用法

来源:https://www.cnblogs.com/guobm/archive/2020/04/15/12697343.html
-Advertisement-
Play Games

根據應用場景,不定時更新,歡迎大家把自己遇到的問題留言,稍後完善。 1 mySql三範式 1.1 第一範式(1NF) (必須有主鍵,列不可分)資料庫表中的任何欄位都是單一屬性的,不可再分 1.2 第二範式(2NF) (當一個表是複合主鍵時,非主鍵的欄位不依賴於部分主鍵(即必須依賴於全部的主鍵欄位)) ...


根據應用場景,不定時更新,歡迎大家把自己遇到的問題留言,稍後完善。

1 mySql三範式

1.1 第一範式(1NF)

  (必須有主鍵,列不可分)資料庫表中的任何欄位都是單一屬性的,不可再分

1.2 第二範式(2NF)

  (當一個表是複合主鍵時,非主鍵的欄位不依賴於部分主鍵(即必須依賴於全部的主鍵欄位))

  資料庫表中非關鍵欄位對任一候選關鍵欄位的 都 不存在部分函數依賴

1.3 第三範式(3NF)

  關係模式R(U,F)中的所有非主屬性對任何候選關鍵字都不存在傳遞依賴

2 各種場景

2.1 批量更新表數據

  適用場景:將表table_a數據中欄位a,批量更新到表table_b中。適用於表遷移。

  關鍵字:inner join

  sql語句:update table_a a   inner join table_b b on b.org_id=a.department_id   set a.department_short_name = b.short_name

  解釋:table_a的department_id和table_b的org_id中值一樣,需要將table_b 中idorg_id一樣的short_name批量更新到table_a中。

2.2 條件語句,給欄位重新賦值

  適用場景:每個枚舉,返回對應的字元串。

  關鍵字:case when x=y then e when x=z then f end

  sql語句:(case when a.status=1 then '申請中' when a.status=2 then '受理中' when a.status=3 then '已轉賬' when a.status=4 then '拒絕' end) as status

  解釋:當status為1時狀態為申請中,當status為2時狀態為受理中,當status為3時狀態為已轉賬,當status為4時狀態為拒絕。

2.3 條件語句,給欄位拼接字元

  適用場景:給欄位拼接字元。

  關鍵字:concat

  sql語句:(case when a.type=0 then concat('-',a.score) else concat('+',a.score) end) as showscore

  解釋:當type為0時score增加“-”首碼,當type為其他時score增加“+”首碼。

 


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

-Advertisement-
Play Games
更多相關文章
  • Mongodb從4.0開始支持副本集的多文檔事務,4.2支持分片集群的多文檔事務,本文介紹Mongodb如何快速搭建副本集,使用事務。 ...
  • package com.nll.test; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java. ...
  • 使用limit分頁查詢時,做delete操作,會導致丟失數據 [TOC] 一、準備數據 1.1 mysql數據腳本 mysql SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; Table structure for test_so_item DROP T ...
  • 1. 備份 2. 恢復 3. 傳輸到另一個伺服器恢複數據庫 "scp" r /home/test.tar root@host:/home/others/ 4. Linux "passwd" 命令用來更改使用者的密碼. 忘記密碼可以使用 ...
  • hello,小伙伴們大家好,今天給大家分享的開源項目是 ,這個工具方便我們更直觀的操作數據。對於剛剛學習mongo的小伙伴來說可以更快的掌握,入門。數據可以直接導出csv,json,mysql等格式,也可以生成對應的代碼比如:Python, Java, Node.js, C 代碼等等。這些是大家日常 ...
  • 如何讓mysql按照兩個或多個欄位排序 錯誤方式: 這種方式兩個欄位都是降序的(and隔開哪個,第二個參數不起作用。) 正確方式: ...
  • SQL2008 的收縮日誌 由於SQL2008對文件和日誌管理進行了優化,所以以下語句在SQL2005中可以運行但在SQL2008中已經被取消:SQL2005 清空日誌的方法:Backup Log DNName with no_loggodump transaction DNName with no ...
  • Mongodb視圖可以讓查詢數據變的更加方便,索引讓查詢數據變得更加快捷,本文介紹如何使用Mongodb的視圖功能和索引功能 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...