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

MySQL可直接使用的查詢表的列信息(實(shí)現(xiàn)方案)

 更新時(shí)間:2025年01月23日 10:16:30   作者:夢幻通靈  
本文介紹了如何使用SQL快速將下劃線命名的表字段轉(zhuǎn)換為駝峰命名格式,包括確定下劃線位置、找到第一個(gè)字符、截取并拼接字符串等步驟,通過使用LOCATE、CONCAT、UCASE和LOWER等函數(shù),可以實(shí)現(xiàn)高效的字段命名轉(zhuǎn)換,感興趣的朋友跟隨小編一起看看吧

背景

最近產(chǎn)品找來,想讓幫忙出下表的信息,字段駝峰展示,每張表信息show create table全部展示,再逐個(gè)粘貼,有點(diǎn)太耗費(fèi)時(shí)間,本篇記錄快速方法,方便備查。

實(shí)現(xiàn)方案

第一步、確定下劃線【_】的位置,可使用LOCATE函數(shù);
第二步、找到下劃線后第一個(gè)字符;
第三步、各個(gè)區(qū)域截取【下劃線前的字符+下劃線后的第一位要大寫+剩余字符串小寫】,使用CONCAT拼接。
實(shí)現(xiàn)效果如下所示。

模板SQL

可直接使用的模板SQL,只需要將【tb_order】改成所要統(tǒng)計(jì)的表即可,如下所示

SELECT 
    COLUMN_NAME AS `數(shù)據(jù)元素`,
    LOCATE('_', COLUMN_NAME, 1) + 1 AS `下劃線第一個(gè)位置`,
    UCASE(SUBSTRING(COLUMN_NAME,
                LOCATE('_', COLUMN_NAME, 1) + 1,
                1)) AS `下劃線第一個(gè)位置的字母`,
    CASE
        WHEN
            LOCATE('_', COLUMN_NAME, 1) != 0
        THEN
            CONCAT(LOWER(SUBSTRING(COLUMN_NAME,
                                1,
                                LOCATE('_', COLUMN_NAME, 1) - 1)),
                    UCASE(SUBSTRING(COLUMN_NAME,
                                LOCATE('_', COLUMN_NAME, 1) + 1,
                                1)),
                    LOWER(SUBSTRING(COLUMN_NAME,
                                LOCATE('_', COLUMN_NAME, 1) + 2,
                                LENGTH(COLUMN_NAME))))
        ELSE COLUMN_NAME
    END AS `駝峰展示`,
    data_type AS `數(shù)據(jù)類型`,
    CASE
        WHEN IS_NULLABLE = 'YES' THEN '必填'
        ELSE '非必填'
    END AS `是否必填`,
    column_comment AS `描述`
FROM
    information_schema.COLUMNS
WHERE
    TABLE_NAME = 'tb_order';

如何查詢列

可從MySQL的系統(tǒng)表information_schema.COLUMNS,直接查詢目標(biāo)表的信息,主要如下所示。

SELECT 
    COLUMN_NAME  AS `數(shù)據(jù)元素`,
    data_type AS `數(shù)據(jù)類型`,
    CASE
        WHEN IS_NULLABLE = 'YES' THEN '必填'
        ELSE '非必填'
    END AS `是否必填`,
    column_comment AS `描述`
FROM
    information_schema.COLUMNS
WHERE
    TABLE_NAME = 'tb_order';

執(zhí)行SQL,控制臺如下所示。

如何轉(zhuǎn)大寫

MySQL中字符轉(zhuǎn)大寫,可使用 UCASE函數(shù),字符轉(zhuǎn)小寫 可使用LOWER函數(shù)。

SELECT 
    COLUMN_NAME AS `數(shù)據(jù)元素`,
    UCASE(data_type) AS `數(shù)據(jù)類型-大寫`,
		LOWER(data_type) AS `數(shù)據(jù)類型-小寫`,
    CASE
        WHEN IS_NULLABLE = 'YES' THEN '必填'
        ELSE '非必填'
    END AS `是否必填`,
    column_comment AS `描述`
FROM
    information_schema.COLUMNS
WHERE
    TABLE_NAME = 'tb_order';

執(zhí)行SQL,控制臺如下所示。

如何獲取字符位置

獲取字符串中指定字符位置,可使用LOCATE函數(shù)。

LOCATE(sub_str, str,length)
sub_str 表示待匹配的子串
str 表示匹配的目標(biāo)字符串
length 表示匹配的長度

SELECT 
		COLUMN_NAME AS `數(shù)據(jù)元素`,
		LOCATE('_',COLUMN_NAME,1)+1 as `下劃線第一個(gè)位置`,
    UCASE(SUBSTRING(COLUMN_NAME,LOCATE('_',COLUMN_NAME,1)+1,1)) AS `下劃線第一個(gè)位置的字母`,
    data_type AS `數(shù)據(jù)類型`,
    CASE
        WHEN IS_NULLABLE = 'YES' THEN '必填'
        ELSE '非必填'
    END AS `是否必填`,
    column_comment AS `描述`
FROM
    information_schema.COLUMNS
WHERE
    TABLE_NAME = 'tb_order';

執(zhí)行SQL,控制臺如下所示。

如何拼接字段

使用CONCAT函數(shù)連接各部分子字符串。

SELECT 
    COLUMN_NAME AS `數(shù)據(jù)元素`,
    LOCATE('_', COLUMN_NAME, 1) + 1 AS `下劃線第一個(gè)位置`,
    UCASE(SUBSTRING(COLUMN_NAME,
                LOCATE('_', COLUMN_NAME, 1) + 1,
                1)) AS `下劃線第一個(gè)位置的字母`,
    CASE
        WHEN
            LOCATE('_', COLUMN_NAME, 1) != 0
        THEN
            CONCAT(LOWER(SUBSTRING(COLUMN_NAME,
                                1,
                                LOCATE('_', COLUMN_NAME, 1) - 1)),
                    UCASE(SUBSTRING(COLUMN_NAME,
                                LOCATE('_', COLUMN_NAME, 1) + 1,
                                1)),
                    LOWER(SUBSTRING(COLUMN_NAME,
                                LOCATE('_', COLUMN_NAME, 1) + 2,
                                LENGTH(COLUMN_NAME))))
        ELSE COLUMN_NAME
    END AS `駝峰展示`,
    data_type AS `數(shù)據(jù)類型`,
    CASE
        WHEN IS_NULLABLE = 'YES' THEN '必填'
        ELSE '非必填'
    END AS `是否必填`,
    column_comment AS `描述`
FROM
    information_schema.COLUMNS
WHERE
    TABLE_NAME = 'tb_order';

執(zhí)行SQL,控制臺如下所示。

以上即SQL方式統(tǒng)計(jì)列信息的實(shí)現(xiàn)方案。

SQL適用場景

1、最多兩個(gè)字符,通過下劃線作為連接符,對于多個(gè)下劃線的情況,case when 單獨(dú)處理

到此這篇關(guān)于MySQL可直接使用的查詢表的列信息(實(shí)現(xiàn)方案)的文章就介紹到這了,更多相關(guān)mysql查詢表的列信息內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL中創(chuàng)建表的三種方法匯總

    MySQL中創(chuàng)建表的三種方法匯總

    這篇文章主要介紹了MySQL中創(chuàng)建表的三種方法,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 解決啟動MongoDB錯誤:error while loading shared libraries: libstdc++.so.6:cannot open shared object file:

    解決啟動MongoDB錯誤:error while loading shared libraries: libstdc+

    本文提供了解啟動MongoDB時(shí)提示:error while loading shared libraries: libstdc++.so.6: cannot open shared object file: 錯誤的解決方案
    2018-10-10
  • MySQL CPU過高的排查方法

    MySQL CPU過高的排查方法

    這篇文章主要介紹了MySQL CPU過高的排查方法,通過top命令查看服務(wù)器CPU資源使用情況,明確CPU占用率較高的是否是mysqld進(jìn)程,文章通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • Mysql?COUNT()函數(shù)基本用法及應(yīng)用詳解

    Mysql?COUNT()函數(shù)基本用法及應(yīng)用詳解

    這篇文章主要介紹了Mysql?COUNT()函數(shù)基本用法及應(yīng)用的相關(guān)資料,COUNT()函數(shù)是SQL中常用的聚合函數(shù),用于統(tǒng)計(jì)滿足特定條件的記錄數(shù),它可以靈活地應(yīng)用于各種查詢場景,幫助用戶快速獲取所需的數(shù)據(jù)統(tǒng)計(jì)信息,需要的朋友可以參考下
    2024-12-12
  • MySQL系列之八 MySQL服務(wù)器變量

    MySQL系列之八 MySQL服務(wù)器變量

    其中有些參數(shù)支持運(yùn)行時(shí)修改,會立即生效;有些參數(shù)不支持,且只能通過修改配置文件,并重啟服務(wù)器程序生效;有些參數(shù)作用域是全局的,且不可改變;有些可以為每個(gè)用戶提供單獨(dú)(會話)的設(shè)置
    2021-07-07
  • MySQL系列之四 SQL語法

    MySQL系列之四 SQL語法

    SQL是一種特殊目的的編程語言,是一種數(shù)據(jù)庫查詢和程序設(shè)計(jì)語言,用于存取數(shù)據(jù)以及查詢、更新和管理關(guān)系數(shù)據(jù)庫系統(tǒng),這篇文章主要給大家介紹了SQL語法的相關(guān)資料,需要的朋友可以參考下
    2021-07-07
  • mysql重復(fù)索引與冗余索引實(shí)例分析

    mysql重復(fù)索引與冗余索引實(shí)例分析

    這篇文章主要介紹了mysql重復(fù)索引與冗余索引,簡單說明了重復(fù)索引與冗余索引的概念、應(yīng)用場景并結(jié)合實(shí)例形式分析了mysql重復(fù)索引與冗余索引相關(guān)操作技巧,需要的朋友可以參考下
    2019-07-07
  • MySQL是如何實(shí)現(xiàn)主備同步

    MySQL是如何實(shí)現(xiàn)主備同步

    這篇文章主要介紹了MySQL是如何實(shí)現(xiàn)主備同步的,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫,感興趣的朋友可以了解下
    2020-12-12
  • CentOS7.6安裝MYSQL8.0的步驟詳解

    CentOS7.6安裝MYSQL8.0的步驟詳解

    這篇文章主要介紹了CentOS7.6安裝MYSQL8.0的步驟,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-11-11
  • jdbc調(diào)用mysql存儲過程實(shí)現(xiàn)代碼

    jdbc調(diào)用mysql存儲過程實(shí)現(xiàn)代碼

    接下來將介紹下mysql存儲過程的創(chuàng)建及調(diào)用,調(diào)用時(shí)涉及到j(luò)dbc的知識,不熟悉的朋友還要溫習(xí)下jdbc哦,話不多說看代碼,希望可以幫助到你
    2013-03-03

最新評論