最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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 數(shù)據(jù)類型和建庫策略

    MySQL 數(shù)據(jù)類型和建庫策略

    無論是在小得可憐的免費(fèi)數(shù)據(jù)庫空間或是大型電子商務(wù)網(wǎng)站,合理的設(shè)計(jì)表結(jié)構(gòu)、充分利用空間是十分必要的。這就要求我們對數(shù)據(jù)庫系統(tǒng)的常用數(shù)據(jù)類型有充分的認(rèn)識。
    2008-12-12
  • Mysql中xtrabackup備份的實(shí)現(xiàn)

    Mysql中xtrabackup備份的實(shí)現(xiàn)

    Xtrabackup是Percona團(tuán)隊(duì)開發(fā)的用于MySQL數(shù)據(jù)庫物理熱備份的開源備份工具,本文就來介紹一下Mysql中xtrabackup備份的實(shí)現(xiàn),就有一定的參考價(jià)值,感興趣的可以了解一下
    2023-12-12
  • MySQL中的數(shù)據(jù)加密解密安全技術(shù)教程

    MySQL中的數(shù)據(jù)加密解密安全技術(shù)教程

    在數(shù)據(jù)庫應(yīng)用程序中,數(shù)據(jù)的安全性是至關(guān)重要的,MySQL作為一種常用的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),也提供了一些數(shù)據(jù)加密和解密的技巧來保護(hù)敏感數(shù)據(jù)的安全性,為了保護(hù)敏感數(shù)據(jù)免受未經(jīng)授權(quán)的訪問,我們可以使用加密和解密技術(shù)
    2024-01-01
  • MySQL8.0.11安裝總結(jié)教程圖解

    MySQL8.0.11安裝總結(jié)教程圖解

    本文通過圖文并茂的形式給大家介紹了MySQL8.0.11安裝總結(jié),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧
    2018-05-05
  • MYSQL設(shè)置字段自動(dòng)獲取當(dāng)前時(shí)間的sql語句

    MYSQL設(shè)置字段自動(dòng)獲取當(dāng)前時(shí)間的sql語句

    整理數(shù)據(jù)庫數(shù)據(jù),看到好多表都有加create_time和 update_time字段,來記錄數(shù)據(jù)插入的時(shí)間和更新時(shí)間,但是時(shí)間插入是通過代碼來維護(hù)的,這篇文章主要介紹了MYSQL設(shè)置字段自動(dòng)獲取當(dāng)前時(shí)間,需要的朋友可以參考下
    2023-07-07
  • MySQL無法讀表錯(cuò)誤的解決方法(MySQL 1018 error)

    MySQL無法讀表錯(cuò)誤的解決方法(MySQL 1018 error)

    這篇文章主要為大家詳細(xì)介紹了MySQL無法讀表錯(cuò)誤的解決方法,MySQL 1018 error如何解決?具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • 一篇文章帶你了解SQL之CASE WHEN用法詳解

    一篇文章帶你了解SQL之CASE WHEN用法詳解

    本文介紹下,在mysql數(shù)據(jù)庫中,有關(guān)case when語句的用法,介紹了case when語句的基礎(chǔ)知識,并提供了相關(guān)實(shí)例,供大家學(xué)習(xí)參考,有需要的朋友不要錯(cuò)過
    2021-08-08
  • Mysql如何優(yōu)化查詢速度

    Mysql如何優(yōu)化查詢速度

    這篇文章主要介紹了Mysql如何優(yōu)化查詢速度問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 快速解決mysql導(dǎo)數(shù)據(jù)時(shí),格式不對、導(dǎo)入慢、丟數(shù)據(jù)的問題

    快速解決mysql導(dǎo)數(shù)據(jù)時(shí),格式不對、導(dǎo)入慢、丟數(shù)據(jù)的問題

    這篇文章主要介紹了快速解決mysql導(dǎo)數(shù)據(jù)時(shí),格式不對、導(dǎo)入慢、丟數(shù)據(jù)的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • MySQL如何基于Explain關(guān)鍵字優(yōu)化索引功能

    MySQL如何基于Explain關(guān)鍵字優(yōu)化索引功能

    這篇文章主要介紹了MySQL如何基于Explain關(guān)鍵字優(yōu)化索引功能,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10

最新評論

连云港市| 江油市| 宜昌市| 玛多县| 乐昌市| 松潘县| 徐闻县| 巴青县| 吉木乃县| 内黄县| 大石桥市| 宁海县| 固安县| 措美县| 弥渡县| 新密市| 湛江市| 康马县| 庄浪县| 临安市| 静安区| 监利县| 自治县| 汶上县| 雷州市| 中宁县| 尚志市| 武邑县| 甘谷县| 临潭县| 阳信县| 明溪县| 宣威市| 台东市| 乐清市| 兰州市| 龙泉市| 和林格尔县| 孟村| 高青县| 泽库县|