mysql之變數

来源:https://www.cnblogs.com/progor/archive/2018/04/18/8870917.html
-Advertisement-
Play Games

本文內容: 系統變數 用戶變數 局部變數 局部變數 首發日期:2018-04-18 系統變數: 系統變數就是系統已經提前定義好了的變數 系統變數一般都有其特殊意義。比如某些變數代表字元集、某些變數代表某些mysql文件位置 系統變數中包括會話級變數(當次會話連接生效的變數,如names),以及全局變 ...



本文內容:

 

  • 系統變數
  • 用戶變數
    • 局部變數

 

首發日期:2018-04-18

 


系統變數:

  • 系統變數就是系統已經提前定義好了的變數
  • 系統變數一般都有其特殊意義。比如某些變數代表字元集、某些變數代表某些mysql文件位置
  • 系統變數中包括會話級變數(當次會話連接生效的變數,如names),以及全局變數(一直生效的變數) 【系統變數中全局變數和會話變數其實是使用一套變數,不同的是會話變數僅當次會話生效。】
    • 會話變數的賦值:set 變數名 = 值;  【比如常用的set names ="utf8";】或者set @@變數名=值
    • 全局變數的賦值:set global 變數名 = 值;

 

查看系統變數:

  • show variables;

系統變數的調用:

  • select @@變數名;

 


用戶變數:

 

  • 用戶變數就是用戶自己定義的變數。
  • 系統為了區別系統變數跟自定義變數,規定用戶自定義變數必須使用一個@符號
  • 變數的定義方式:
    • set @變數名=1
    • select @變數名:=值;
    • select 值 into @變數名;
  • 用戶變數可以不聲明定義,就可以直接使用,不過預設是null值
  • 用戶變數都是會話級的變數,僅在當次連接中生效。

 

局部變數:

  • 由於局部變數是用戶自定義的,可以認為局部變數也是用戶變數【但有所不同,局部中不需要使用@】
  • 局部變數一般用在sql語句塊中,比如存儲過程塊、觸發器塊等
  • 局部變數的定義方法:
    • 先使用declare聲明局部變數,其中可選項default後面可以跟一個付給變數的預設值:【非常重要的一步,不然會設置成用戶變數】【註意:變數聲明語句要在其他語句如select語句之前】
      • 示例:declare myq int;
      • 示例:declare myq int default 666;
    • 設置變數的值:
      • set 變數名= 值;
    • 獲取變數的值:
      • select 變數名;
create procedure myset()
begin 
    declare mya int;
    declare myq int default 777;
    select mya,myq;
    set myq=6;
    set mya=666;
    select mya,myq;
end;

call myset();

 

 

補充:

  • 有些人可能會發現直接set 變數名=值;也可以定義“用戶變數”;但這是一種不好的行為【這種行為忽略了各自變數的功能】,因為你不知道會不會跟系統變數衝突,所以最好用戶變數加上@
  • 因為 = ,有很多地方都用來判斷是否等於,為了避免歧義,也可以使用:=來賦值image
  • 上面雖然給了一些其他的賦值方法,但好像有一些是不通用的,比如:=只用於用戶變數,所以要審慎使用】。

 



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

-Advertisement-
Play Games
更多相關文章
  • 主題 之前簡單介紹了Asp.net core 的初步的使用,本篇我打算給大家介紹一下Identity的架構,讓大家對Identity有一個總體的理解和認識。 簡介 博客原文歡迎訪問我的博客網站,地址是:[深入理解Aspnet Core之Identity(4) ] : https://www.blue ...
  • 使用Json.Net可以把一個Json字元串轉換成一個JObject對象,如果有已知強類型,如果有已知對應的強類型,可以直接轉成對應的類型。但如果沒有,要訪問Json裡面對應的數據的時候,就顯得比較麻煩。我們可以藉助DynamicObject來訪問對應的屬性。 ...
  • 本文的概念內容來自深入淺出設計模式一書 現實世界中的適配器(模式) 我帶著一個國標插頭的筆記本電腦, 來到歐洲, 想插入到歐洲標準的牆壁插座裡面, 就需要用中間這個電源適配器. 面向對象的適配器 你有個老系統, 現在來了個新供應商的類, 但是它們的介面不同, 如何使用這個新供應商的類呢? 首先, 我 ...
  • WFP 的 Generic.xaml ,App.xaml 等中的資源會被調用 Freezable. 在後臺對該資源進行修改等操作會被提示.資源為密封對象. 如果,確定需要在後臺對資源進行修改. 則需要在資源中加入x:Shared="False"聲明 則不對該資源執行 Freezable() ...
  • 第一種-文章出處 > www.miniui.com/demo/listbox/moveitems.html <body> <h1>兩個ListBox之間選擇移動項 </h1> <input type="button" value="Save" onclick="saveData()" style=" ...
  • Enumerable.Distinct 方法 是常用的LINQ擴展方法,屬於System.Linq的Enumerable方法,可用於去除數組、集合中的重覆元素,還可以自定義去重的規則。 有兩個重載方法: // // 摘要: // 通過使用預設的相等比較器對值進行比較返回序列中的非重覆元素。 // / ...
  • 使用MySQL 5.6,搭建主從複製。關於5.6的安裝,可以參考《MySQL 5.6 rpm安裝方法和碰見的問題》。 主庫創建slave用戶,設置複製許可權, mysql> create user 'slave'@'1.1.1.2' identified by 'root'; Query OK, 0 ...
  • 今兒有位同事提出,一套MySQL 5.6的環境,從資料庫伺服器本地登錄,一切正常,可是若從遠程伺服器訪問,就會報錯, ERROR 1045 (28000): Access denied for user 'bisal'@'x.x.x.x' (using password: YES) 我才開始接觸My ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...