国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

MySQL:想實現(xiàn)sql語句進行批量刪除數(shù)據(jù)庫或表,而引發(fā)的熬夜探究

這篇具有很好參考價值的文章主要介紹了MySQL:想實現(xiàn)sql語句進行批量刪除數(shù)據(jù)庫或表,而引發(fā)的熬夜探究。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

因為在自測過程中,創(chuàng)建了很多數(shù)據(jù)庫,一個個手動刪除屬實有點對不起程序員這個身份,那么有沒有簡單的sql語句操作來進行批量刪除數(shù)據(jù)庫呢?于是便有了本篇文章

批量刪除庫里的部分表,數(shù)據(jù)庫問題及總結,數(shù)據(jù)庫,mysql,sql,database,dba
上面圖片是AI創(chuàng)作,未經(jīng)允許,不可商用哦!

前情提示

刪庫跑路需謹慎,
放棄一切亦不易。
批量刪除庫里的部分表,數(shù)據(jù)庫問題及總結,數(shù)據(jù)庫,mysql,sql,database,dba


思路

了解到數(shù)據(jù)庫或表的信息都保存在MySQL內置的 information_schema數(shù)據(jù)庫的SCHEMATA表中,因此是否可以通過like查詢information_schema中的相關表名,拼接SQL,進行批量刪除。

實操

批量刪除數(shù)據(jù)庫(以前綴為 ‘test_’ 示例)

SELECT CONCAT( 'DROP DATABASE ', SCHEMA_NAME, ';')
    FROM information_schema.SCHEMATA 
        WHERE information_schema.SCHEMATA.SCHEMA_NAME LIKE 'test_%';

如下圖,查詢結果是拼接好的sql,CV一下,執(zhí)行即可
批量刪除庫里的部分表,數(shù)據(jù)庫問題及總結,數(shù)據(jù)庫,mysql,sql,database,dba

批量刪除表(以前綴為 ‘df_’ 示例)

SELECT CONCAT( 'DROP TABLE ', TABLE_NAME, ';')
    FROM information_schema.TABLES
        WHERE information_schema.TABLES.TABLE_NAME LIKE 'df_%';

如下圖,同樣查詢結果是拼接好的sql,CV一下,執(zhí)行即可
批量刪除庫里的部分表,數(shù)據(jù)庫問題及總結,數(shù)據(jù)庫,mysql,sql,database,dba

到這里已經(jīng)實現(xiàn)了批量刪除操作,下面是引發(fā)的探究,如時間緊張可先贊后看,保持良好習慣!


MySQL 5.7 自帶的四個數(shù)據(jù)庫

在Mysql5.7版本中自帶4個數(shù)據(jù)庫:information_schema、mysql、performance_schema、sys。
批量刪除庫里的部分表,數(shù)據(jù)庫問題及總結,數(shù)據(jù)庫,mysql,sql,database,dba

mysql

mysql的核心數(shù)據(jù)庫,類似于sql server中的master表,主要負責存儲數(shù)據(jù)庫的用戶、權限設置、關鍵字等mysql自己需要使用的控制和管理信息。(常用的如在mysql.user表中修改root用戶的密碼)
批量刪除庫里的部分表,數(shù)據(jù)庫問題及總結,數(shù)據(jù)庫,mysql,sql,database,dba

performance_schema

主要用于收集數(shù)據(jù)庫服務器性能參數(shù)。并且?guī)炖锉淼拇鎯σ婢鶠镻ERFORMANCE_SCHEMA,而用戶是不能創(chuàng)建存儲引擎為PERFORMANCE_SCHEMA的表。MySQL5.7默認是開啟的。
批量刪除庫里的部分表,數(shù)據(jù)庫問題及總結,數(shù)據(jù)庫,mysql,sql,database,dba

sys

sys庫所有的數(shù)據(jù)源來自:performance_schema。目標是把performance_schema的復雜度降低,讓DBA能更好的閱讀這個庫里的內容。讓DBA更快的了解DB的運行情況。

批量刪除庫里的部分表,數(shù)據(jù)庫問題及總結,數(shù)據(jù)庫,mysql,sql,database,dba

information_schema

提供了訪問數(shù)據(jù)庫元數(shù)據(jù)的方式。(元數(shù)據(jù)是關于數(shù)據(jù)的數(shù)據(jù),如數(shù)據(jù)庫名、表名、列的數(shù)據(jù)類型和訪問權限等。有時用于表述該信息的其他術語包括“數(shù)據(jù)詞典”和“系統(tǒng)目錄”) 該位置存儲有關MySQL服務器維護的所有其他數(shù)據(jù)庫的信息。
批量刪除庫里的部分表,數(shù)據(jù)庫問題及總結,數(shù)據(jù)庫,mysql,sql,database,dba

information_schema數(shù)據(jù)庫表簡介

該INFORMATION_SCHEMA數(shù)據(jù)庫包含幾個只讀表。它們實際上是視圖,而不是基表,因此沒有與它們關聯(lián)的文件,并且不能在它們上設置觸發(fā)器。另外,沒有使用該名稱的數(shù)據(jù)庫目錄。雖然你可以選擇INFORMATION_SCHEMA與一個默認的數(shù)據(jù)庫USE 語句,你只能讀取表的內容,不能執(zhí)行 INSERT、UPDATE或 DELETE。

對于大多數(shù)INFORMATION_SCHEMA表,每個MySQL用戶都有權訪問它們,但只能看到表中與用戶具有適當訪問權限的對象相對應的行。在某些情況下(例如,表中的ROUTINE_DEFINITION列 INFORMATION_SCHEMA ROUTINES),特權不足的用戶會看到NULL。某些表具有不同的特權要求;為此,在適用的表格說明中提到了這些要求。例如,InnoDB表(名稱以開頭的表INNODB_)需要PROCESS特權。

分表

information_schema庫共計有61張表。下面僅以批量刪除數(shù)據(jù)庫和表涉及到分表展開簡單介紹

SCHEMATA表

模式是數(shù)據(jù)庫,因此 SCHEMATA表提供了有關數(shù)據(jù)庫的信息。該SCHEMATA表包含以下列:

  • CATALOG_NAME:模式所屬的目錄的名稱。此值始終為def
  • SCHEMA_NAME:模式的名稱
  • DEFAULT_CHARACTER_SET_NAME:架構默認字符集
  • DEFAULT_COLLATION_NAME:模式默認排序規(guī)則
  • SQL_PATH:此值始終為NULL

模式名稱也可以從該SHOW DATABASES語句中獲得:

mysql> show databases like ‘mysql’;
±-----------------+
| Database (mysql) |
±-----------------+
| mysql |
±-----------------+
1 row in set (0.00 sec)
————————————————
TABLES表

該TABLES表提供有關數(shù)據(jù)庫中表的信息。該TABLES表包含以下列:

  • TABLE_CATALOG:該表所屬的目錄的名稱。此值始終為def。

  • TABLE_SCHEMA:表所屬的模式(數(shù)據(jù)庫)的名稱。

  • TABLE_NAME:表的名稱。

  • TABLE_TYPE:BASE TABLE為一個表、 VIEW用于一個視圖、SYSTEM VIEW為一個INFORMATION_SCHEMA 表。該TABLES表未列出 TEMPORARY表。

  • ENGINE:表的存儲引擎。對于分區(qū)表,ENGINE顯示所有分區(qū)使用的存儲引擎的名稱。

  • VERSION:表.frm 文件的版本號。

  • ROW_FORMAT:該行的存儲格式(Fixed, Dynamic,Compressed, Redundant,Compact)。對于 MyISAM表,Dynamic 對應于myisamchk -dvv報告為的內容Packed。InnoDB表格式可以是Redundant或者
    Compact使用時的 Antelope文件格式,或者 Compressed或Dynamic 使用時Barracuda的文件格式。

  • TABLE_ROWS:行數(shù)。一些存儲引擎(例如 MyISAM)存儲準確的計數(shù)。對于其他存儲引擎(例如)InnoDB,該值是一個近似值,可能與實際值相差40%至50%。在這種情況下,請使用SELECT
    COUNT(*)以獲得準確的計數(shù)。 TABLE_ROWS是NULL對 INFORMATION_SCHEMA表。
    對于InnoDB表,行數(shù)只是SQL優(yōu)化中使用的粗略估計。(如果InnoDB表已分區(qū),則也是如此。)

  • AVG_ROW_LENGTH:平均行長。

  • DATA_LENGTH 對于MyISAM,DATA_LENGTH 是數(shù)據(jù)文件的長度(以字節(jié)為單位)。 對于InnoDB,DATA_LENGTH
    是為聚簇索引分配的大約空間量(以字節(jié)為單位)。具體來說,它是聚簇索引大?。ㄒ皂摓閱挝唬┏艘訧nnoDB頁面大小。

  • MAX_DATA_LENGTH 對于MyISAM, MAX_DATA_LENGTH是數(shù)據(jù)文件的最大長度。給定使用的數(shù)據(jù)指針大小,這是表中可以存儲的數(shù)據(jù)字節(jié)總數(shù)。 未使用InnoDB。

  • INDEX_LENGTH 對于MyISAM,INDEX_LENGTH 是索引文件的長度(以字節(jié)為單位)。 對于InnoDB,INDEX_LENGTH
    是為非聚簇索引分配的大約空間量(以字節(jié)為單位)。具體來說,它是非聚集索引大?。ㄒ皂摓閱挝唬┑目偤统艘?InnoDB頁面大小。

  • DATA_FREE 已分配但未使用的字節(jié)數(shù)。 InnoDB表報告表所屬的表空間的可用空間。對于位于共享表空間中的表,這是共享表空間的可用空間。如果您使用多個表空間,并且表具有自己的表空間,則可用空間僅用于該表??捎每臻g是指完全可用范圍中的字節(jié)數(shù)減去安全裕量。即使可用空間顯示為0,只要不需要分配新的盤區(qū),也可以插入行。
    對于NDB群集,DATA_FREE顯示磁盤上為磁盤上的磁盤數(shù)據(jù)表或碎片分配但未使用的空間。(該DATA_LENGTH列中報告了內存中數(shù)據(jù)資源的使用情況。)
    對于分區(qū)表,此值僅是估計值,可能不是絕對正確。在這種情況下,獲取此信息的一種更準確的方法是查詢 INFORMATION_SCHEMA
    PARTITIONS表,如本示例所示:
    SELECT SUM(DATA_FREE) FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_SCHEMA = ‘mydb’ AND TABLE_NAME = ‘mytable’;

  • AUTO_INCREMENT:下一個AUTO_INCREMENT值。

  • CREATE_TIME:創(chuàng)建表的時間。

  • UPDATE_TIME 數(shù)據(jù)文件的最后更新時間。對于某些存儲引擎,此值為NULL。例如, InnoDB將多個表存儲在其 系統(tǒng)表空間中,并且數(shù)據(jù)文件時間戳不適用。即使 文件每次表模式與每個InnoDB在單獨的表 .ibd文件, 改變緩沖
    可以延緩寫入到數(shù)據(jù)文件,因此,文件的修改時間是從最后插入,更新或刪除的時間不同。對于MyISAM,使用數(shù)據(jù)文件時間戳;但是,在Windows上,時間戳不會通過更新進行更新,因此該值不準確。
    UPDATE_TIME顯示last UPDATE, INSERT或 DELETE對InnoDB未分區(qū)表執(zhí)行
    的時間戳記值。對于MVCC,時間戳記值反映了
    COMMIT時間,該時間被視為最后更新時間。重新啟動服務器或從InnoDB數(shù)據(jù)字典緩存中刪除表時,時間戳記不會保留。
    該UPDATE_TIME列還顯示了分區(qū)InnoDB表的此信息。

  • CHECK_TIME 上次檢查表的時間。并非所有存儲引擎這次都更新,在這種情況下,該值始終為 NULL。 對于分區(qū)InnoDB表, CHECK_TIME始終為 NULL。

  • TABLE_COLLATION:該表的默認排序規(guī)則。輸出沒有顯式列出表的默認字符集,但是排序規(guī)則名稱以字符集名稱開頭。

  • CHECKSUM:實時校驗和值(如果有)。

  • CREATE_OPTIONS 與一起使用的額外選項CREATE TABLE。 CREATE_OPTIONS顯示 partitioned表是否已分區(qū)。 CREATE_OPTIONS顯示ENCRYPTION為在每個表文件表空間中創(chuàng)建的表指定的 子句。
    在禁用嚴格模式的情況下創(chuàng)建表時 ,如果不支持指定的行格式,則使用存儲引擎的默認行格式。表的實際行格式在ROW_FORMAT
    列中報告。CREATE_OPTIONS顯示CREATE TABLE語句中指定的行格式。
    更改表的存儲引擎時,不適用于新存儲引擎的表選項將保留在表定義中,以便在必要時將具有其先前定義的選項的表恢復到原始存儲引擎。該CREATE_OPTIONS列可能顯示保留的選項。

  • TABLE_COMMENT:創(chuàng)建表時使用的注釋(或有關MySQL為什么無法訪問表信息的信息)

參考

MySQL之自帶四庫之information_schema庫文章來源地址http://www.zghlxwxcb.cn/news/detail-795415.html

到了這里,關于MySQL:想實現(xiàn)sql語句進行批量刪除數(shù)據(jù)庫或表,而引發(fā)的熬夜探究的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 【MySQL數(shù)據(jù)庫】MySQL 高級SQL 語句一

    【MySQL數(shù)據(jù)庫】MySQL 高級SQL 語句一

    ) % :百分號表示零個、一個或多個字符 _ :下劃線表示單個字符 ‘A_Z’:所有以 ‘A’ 起頭,另一個任何值的字符,且以 ‘Z’ 為結尾的字符串。例如,‘ABZ’ 和 ‘A2Z’ 都符合這一個模式,而 ‘AKKZ’ 并不符合 (因為在 A 和 Z 之間有兩個字符,而不是一個字符)。 ‘ABC%’

    2024年02月09日
    瀏覽(1352)
  • 【數(shù)據(jù)庫】MySQL 高級(進階) SQL 語句

    【數(shù)據(jù)庫】MySQL 高級(進階) SQL 語句

    location表格創(chuàng)建 store_info表格創(chuàng)建 顯示表格中一個或數(shù)個字段的所有數(shù)據(jù)記錄 不顯示重復的數(shù)據(jù)記錄 按照條件進行查詢 在已知的字段數(shù)據(jù)取值范圍內取值 另外還有not in命令,用法一致,表示顯示不在指定范圍內的字段的值。 在兩個字段數(shù)據(jù)值之間取值,包含兩邊字段的數(shù)據(jù)

    2024年02月09日
    瀏覽(28)
  • 【MySQL】數(shù)據(jù)庫SQL語句之DML

    【MySQL】數(shù)據(jù)庫SQL語句之DML

    目錄 前言: 一.DML添加數(shù)據(jù) 1.1給指定字段添加數(shù)據(jù) 1.2給全部字段添加數(shù)據(jù) 1.3批量添加數(shù)據(jù) 二.DML修改數(shù)據(jù) 三.DML刪除數(shù)據(jù) 四.結尾 ? 時隔一周,啊蘇今天來更新啦,簡單說說這周在做些什么吧,上課、看書、放松等,哈哈哈,所以博客就這樣被擱了。 ? 今天感覺不錯,給大

    2024年02月08日
    瀏覽(95)
  • 數(shù)據(jù)庫應用:MySQL數(shù)據(jù)庫SQL高級語句與操作

    數(shù)據(jù)庫應用:MySQL數(shù)據(jù)庫SQL高級語句與操作

    目錄 一、理論 1.克隆表與清空表 2.SQL高級語句 3.SQL函數(shù) 4.SQL高級操作 5.MySQL中6種常見的約束 二、實驗 ?1.克隆表與清空表 2.SQL高級語句 3.SQL函數(shù) 4.SQL高級操作 5.主鍵表和外鍵表 ?三、總結 克隆表:將數(shù)據(jù)表的數(shù)據(jù)記錄生成到新的表中。 (1)克隆表 ①?先創(chuàng)建再導入 ②?創(chuàng)建

    2024年02月13日
    瀏覽(101)
  • MySQL相關的SQL語句、數(shù)據(jù)庫、數(shù)據(jù)表、字段、類型

    1、 SQL 語句不區(qū)分大小寫。 SQL語句 用途 描述 mysql -u root -p 連接 MySQL 在命令行窗口中輸入 mysql -u root -p 命令,回車,然后輸入 MySQL 密碼(不要忘記了密碼,找回麻煩),再回車就連接上 MySQL 了。最初都是使用 root 用戶登錄,工作中不能一直使用 root 用戶登錄。因為 root 權限太

    2024年02月13日
    瀏覽(115)
  • MySQL數(shù)據(jù)庫中的索引(含SQL語句)

    MySQL數(shù)據(jù)庫中的索引(含SQL語句)

    假設有一張表,表中有100萬條數(shù)據(jù),這100萬條數(shù)據(jù)在硬盤上是存儲在數(shù)據(jù)頁上的,一頁數(shù)據(jù)大小為16k。存儲100萬條數(shù)據(jù)那么就需要數(shù)據(jù)頁,假設其中有一條數(shù)據(jù)是“id為7900”的,那么如果要查詢這條數(shù)據(jù),其中SQL是SELECT * FROM 表名 WHERE id = 7900。在執(zhí)行這條SQL語句的時候,MyS

    2024年02月02日
    瀏覽(42)
  • mysql,用sql語句,建立學生-課程數(shù)據(jù)庫基本表

    mysql,用sql語句,建立學生-課程數(shù)據(jù)庫基本表

    學生表 學號 姓名 年齡 性別 院系 Student Sno Sname Sage Ssex Sdept 課程表 課程號 課程名 先行課 學分 Course Cno Cname Cpno Ccredit 選課表 學號 課程號 成績 SC Sno Cno Grade 注意創(chuàng)建表的時候要注意它的字段名,類型,長度,約束條件,取值范圍要合適,大小寫符號要正確,中文逗號,分號

    2024年02月08日
    瀏覽(27)
  • MySQL 數(shù)據(jù)庫實用指南:測試數(shù)據(jù)準備、SQL語句規(guī)范與基本操作

    MySQL 數(shù)據(jù)庫實用指南:測試數(shù)據(jù)準備、SQL語句規(guī)范與基本操作

    歡迎來到小K的MySQL專欄,本節(jié)將為大家準備MySQL測試數(shù)據(jù)、以及帶來SQL語句規(guī)范、數(shù)據(jù)庫的基本操作的詳細講解 要學習SQL查詢語句,首先必須解決一個問題,數(shù)據(jù)問題。為了方便大家學習閱讀我的文章,在這里提供了一個test.sql文件 ? 登錄MySQL,輸入 source xxx/test.sql 導入sql文

    2024年02月08日
    瀏覽(33)
  • MySQL數(shù)據(jù)庫概念、管理以及SQL語句的基本命令操作

    MySQL數(shù)據(jù)庫概念、管理以及SQL語句的基本命令操作

    數(shù)據(jù)(data) 描述事物的符號記錄 包括數(shù)字,文字、圖形、圖像、聲音、檔案記錄等 以“記錄”形式按統(tǒng)一格式進行存儲(記錄可以看成一條記錄) 表 將不同的記錄組織在一起 用來存儲具體數(shù)據(jù) 記錄:行 字段(屬性):列 以行+列的形式就組成了表(數(shù)據(jù)存儲在表中) 數(shù)

    2024年02月08日
    瀏覽(33)
  • MySQL數(shù)據(jù)庫第十一課---------SQl語句的拔高-------水平提升

    MySQL數(shù)據(jù)庫第十一課---------SQl語句的拔高-------水平提升

    ???????????????????????????????? ? ? ? ? ????? ????個人主頁 ::小小頁面 ????????????????? gitee頁面 :秦大大 ? ? ? ? ? ? ? ? 一個愛分享的小博主 ?歡迎小可愛們前來借鑒 ______________________________________________________? ? SQL提高 ? 日期函數(shù) ????

    2024年02月16日
    瀏覽(41)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包