欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL創(chuàng)建并調(diào)用自定義函數(shù)方式

 更新時(shí)間:2025年05月24日 09:38:08   作者:壹業(yè)  
這篇文章主要介紹了MySQL創(chuàng)建并調(diào)用自定義函數(shù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

創(chuàng)建方法拼接SQL

DELIMITER $$
DROP FUNCTION IF EXISTS genPerson$$
CREATE FUNCTION genPerson(name varchar(20)) RETURNS varchar(50)
BEGIN
  DECLARE str VARCHAR(50) DEFAULT '';
  SET @tableName=name;
  SET str=CONCAT('create table ', @tableName,'(id int, name varchar(20));');
  return str;
END $$
DELIMITER ;
  • (1)DELIMITER $$ 定義結(jié)束符。MySQL默認(rèn)的結(jié)束符是分號(hào),但是函數(shù)體中可能用到分號(hào)。為了避免沖突,需要另外定義結(jié)束符。
  • (2)DROP FUNCTION IF EXISTS genPerson$$ 如果函數(shù)genPerson已經(jīng)存在了,就刪除掉。
  • (3)CREATE FUNCTION 創(chuàng)建函數(shù)genPerson,函數(shù)的參數(shù)是name,返回值是varchar(50)。
  • (4)函數(shù)體放在BEGIN 與 END之間。
  • (5)DECLARE 聲明變量,str類型是varchar(50),默認(rèn)值是空。
  • (6)CONCAT連接多個(gè)字符串。
  • (7)RETURN 返回拼接后的字符串str。

創(chuàng)建方法直接寫SQL

DELIMITER $$
DROP FUNCTION IF EXISTS getNthHighestSalary$$
CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
	SET N = N -1;
  RETURN (
      # Write your MySQL query statement below.
      select ifnull((select distinct id from user order by id desc limit 1 OFFSET n),null)
  );
END

調(diào)用方法

select genPerson('student');
select getNthHighestSalary(2)

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • mysql字符串格式化方式

    mysql字符串格式化方式

    這篇文章主要介紹了mysql字符串格式化方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • mysql中explain用法詳解

    mysql中explain用法詳解

    EXPLAIN用于SELECT語句中的每個(gè)表返回一行信息。表以它們在處理查詢過程中將被MySQL讀入的順序被列出
    2013-02-02
  • SQL Server 2005 安裝遇到的錯(cuò)誤提示和解決方法

    SQL Server 2005 安裝遇到的錯(cuò)誤提示和解決方法

    在安裝SQL Server 2005時(shí)有時(shí)會(huì)出現(xiàn)意想不到的問題,如IIS,性能計(jì)數(shù)器,OWC11,無法配置外圍應(yīng)用的問題,下面筆者分享一下在安裝SQL Server 2005時(shí)常見問題解決方法
    2014-01-01
  • Sql查詢MySql數(shù)據(jù)庫中的表名和描述表中字段(列)信息

    Sql查詢MySql數(shù)據(jù)庫中的表名和描述表中字段(列)信息

    這篇文章主要介紹了Sql查詢獲取MySql數(shù)據(jù)庫中的表名和描述表中列名數(shù)據(jù)類型,長度,精度,是否可以為null,默認(rèn)值,是否自增,是否是主鍵,列描述等列信息
    2017-12-12
  • .Net Core導(dǎo)入千萬級(jí)數(shù)據(jù)至Mysql的步驟

    .Net Core導(dǎo)入千萬級(jí)數(shù)據(jù)至Mysql的步驟

    最近在工作中,涉及到一個(gè)數(shù)據(jù)遷移功能,從一個(gè)txt文本文件導(dǎo)入到MySQL功能。數(shù)據(jù)遷移,在互聯(lián)網(wǎng)企業(yè)可以說經(jīng)常碰到,而且涉及到千萬級(jí)、億級(jí)的數(shù)據(jù)量是很常見的。今天我們就來談?wù)凪ySQL怎么高性能插入千萬級(jí)的數(shù)據(jù)。
    2021-05-05
  • MySQL Left JOIN時(shí)指定NULL列返回特定值詳解

    MySQL Left JOIN時(shí)指定NULL列返回特定值詳解

    我們有時(shí)會(huì)有這樣的應(yīng)用,需要在sql的left join時(shí),需要使值為NULL的列不返回NULL而時(shí)某個(gè)特定的值,比如0。這個(gè)時(shí)候,用is_null(field,0)是行不通的,會(huì)報(bào)錯(cuò)的,可以用ifnull實(shí)現(xiàn),但是COALESE似乎更符合標(biāo)準(zhǔn)
    2013-07-07
  • MySQL實(shí)現(xiàn)差集(Minus)和交集(Intersect)測試報(bào)告

    MySQL實(shí)現(xiàn)差集(Minus)和交集(Intersect)測試報(bào)告

    MySQL沒有實(shí)現(xiàn)Minus和Intersect功能,就像它也沒有實(shí)現(xiàn)cube的功能一樣。
    2014-06-06
  • MySQL使用binlog2sql工具實(shí)現(xiàn)在線恢復(fù)數(shù)據(jù)功能

    MySQL使用binlog2sql工具實(shí)現(xiàn)在線恢復(fù)數(shù)據(jù)功能

    binlog2sql 是大眾點(diǎn)評(píng)開源的一款用于解析 MySQL binlog 的工具,根據(jù)不同選項(xiàng),可以得到原始SQL、回滾SQL等,下面我們就來看看如何使用binlog2sql實(shí)現(xiàn)在線恢復(fù)數(shù)據(jù)功能吧
    2025-03-03
  • 將phpstudy中的mysql遷移至Linux教程

    將phpstudy中的mysql遷移至Linux教程

    本文主要給大家介紹了關(guān)于將phpstudy中的mysql遷移至Linux的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。希望能版助到大家。
    2018-04-04
  • SQL更新與刪除數(shù)據(jù)操作示例詳解

    SQL更新與刪除數(shù)據(jù)操作示例詳解

    如果要在程序運(yùn)行過程中操作數(shù)據(jù)庫中的數(shù)據(jù),那得先學(xué)會(huì)使用SQL語句,下面這篇文章主要給大家介紹了關(guān)于SQL查詢語句更新和刪除數(shù)據(jù)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-01-01

最新評(píng)論