MySQL數據庫精研之旅第二期:庫操作的深度探索

專欄:MySQL數據庫成長記

個人主頁:手握風云

目錄

一、查看數據庫

二、創建數據庫

2.1. 語法

2.2. 示例

三、字符集編碼和校驗(排序)規則

3.1. 查看數據庫支持的字符集編碼

3.2. 查看數據庫支持的排序規則

3.3.?不同的字串集與排序規則對數據庫的影響

3.4.?查看系統默認字符集和排序規則

四、查看創建語句

4.1. 語法

五、修改數據庫

5.1. 語法

六、刪除數據庫

6.1. 語法

6.2. 注意事項


一、查看數據庫

//查看當前已有的數據庫
show databases;
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sakila             |
| sys                |
| world              |
+--------------------+
6 rows in set (0.00 sec)

????????這里需要注意,databases是復數形式,并且mysql命令行對大小寫不敏感。MySQL中每條SQL語句都必須以分號結尾,否則數據庫軟件就會認為這不是一條完整的語句。如果我們沒有寫完就按回車,就會另起一行。

mysql> show databases->;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sakila             |
| sys                |
| world              |
+--------------------+
6 rows in set (0.00 sec)

? ? ? ? 已有庫里面的“sakila”“world”這些屬于測試庫,我們可以進行修改或者刪除的,“information_schema”“mysql”“performance_schema”“sys”這些都屬于系統庫,記錄的是MySQL自身信息和一些配置項,其中也包含我們的用戶名和登錄密碼。如果刪除了,就會導致MySQL無法正常啟動,我們就需要再重新安裝MySQL。其中set表示結果集,0.00sec表示運行消耗時間為10毫秒以內。

二、創建數據庫

2.1. 語法

CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] 數據庫名稱 [create_option]create_option: [DEFAULT] {CHARACTER SET [=] charset_name| COLLATE [=] collation_name| ENCRYPTION [=] {'Y' | 'N'}
}

????????以上大寫部分為關鍵字;大括號里的內容必須存在;中括號里的內容可有可無;|表示任選其一;IF NOT EXISTS表示如果不存在則創建數據庫;CHARACTER SET是指定數據庫采?的字符集編碼;COLLATE是指定數據庫字符集的校驗規則;ENCRYPTION表示數據庫是否加密。

2.2. 示例

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sakila             |
| sys                |
| world              |
+--------------------+
6 rows in set (0.08 sec)mysql> create database test3_21-> ;
Query OK, 1 row affected (0.03 sec)mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sakila             |
| sys                |
| test3_21           |
| world              |
+--------------------+
7 rows in set (0.00 sec)

????????如果我們再去創建一個同名稱的數據庫,就會發出警告,并會告訴我們警告信息該數據庫已經存在。

mysql> create database test3_21;
ERROR 1007 (HY000): Can't create database 'test3_21'; database exists

? ? ? ? 當SQL語句在以上腳本當中運行時發生了錯誤,那么SQL語句的執行就會停住。那我們就可以加上一個校驗結果,來阻止錯誤的發生。

mysql> create database if not exists test3_21;
Query OK, 1 row affected, 1 warning (0.00 sec)

? ? ? ? 此時它就會提示我們存在一個警告,我們也可以使用SQL語句讓它顯示出來。

mysql> show warnings;
+-------+------+---------------------------------------------------+
| Level | Code | Message                                           |
+-------+------+---------------------------------------------------+
| Note  | 1007 | Can't create database 'test3_21'; database exists |
+-------+------+---------------------------------------------------+
1 row in set (0.00 sec)

? ? ? ? 如果說我們在寫完一條SQL語句時,發現前面有錯誤,那我們就可以ctrl+C進行換行重新寫。

mysql> shown databases^C
mysql>

三、字符集編碼和校驗(排序)規則

3.1. 查看數據庫支持的字符集編碼

show charset;

? ? ? ? 對字符集的編碼,相當于兩個人用不同的語言進行交流,一個人用漢語,另一個人用英語,他們就相當于對相同的內容進行編碼。如果用A字符集編碼存儲數據,用B字符集編碼去解析,那么就會出現一堆亂碼。

+----------+---------------------------------+---------------------+--------+
| Charset  | Description                     | Default collation   | Maxlen |
+----------+---------------------------------+---------------------+--------+
| armscii8 | ARMSCII-8 Armenian              | armscii8_general_ci |      1 |
| ascii    | US ASCII                        | ascii_general_ci    |      1 |
| gb18030  | China National Standard GB18030 | gb18030_chinese_ci  |      4 |
| gb2312   | GB2312 Simplified Chinese       | gb2312_chinese_ci   |      2 |
| gbk      | GBK Simplified Chinese          | gbk_chinese_ci      |      2 |

????????我們最熟悉的ascii對英語字母進行編碼,最大長度為1字節。如果說我們要對中文進行編碼,那么gb2312、gbk等進行編碼,這兩個最大長度為2個字節,相當于可以編寫2^16個字符。而其他國家還有其他的語言,比如阿拉伯語、法語等。為了支持全世界的編碼,就得對字符長度進行擴大,也就是MySQL8.0支持的默認字符集編碼utf8mb4,最長可以用4個字節表示一個字符。

| utf8mb4  | UTF-8 Unicode                   | utf8mb4_0900_ai_ci  |      4 |

3.2. 查看數據庫支持的排序規則

show collation;

? ? ? ? MySQL8.0默認的排序規則:

| utf8mb4_0900_ai_ci          | utf8mb4  | 255 | Yes     | Yes      |       0 | NO PAD        |

3.3.?不同的字串集與排序規則對數據庫的影響

  • ai是Accent-insensitive的縮寫,表示口聲不敏感
  • ci是Case-insensitive的縮寫表示大小寫不敏感
  • as是Accent-sensitive的縮寫,表示口聲敏感
  • cs是Case-sensitive的縮寫,表示大小寫敏感
  • bin表示二進制

3.4.?查看系統默認字符集和排序規則

????????默認字符集:

mysql> show variables like 'character%';
+--------------------------+---------------------------------------------------------+
| Variable_name            | Value                                                   |
+--------------------------+---------------------------------------------------------+
| character_set_client     | gbk                                                     |
| character_set_connection | gbk                                                     |
| character_set_database   | utf8mb4                                                 |
| character_set_filesystem | binary                                                  |
| character_set_results    | gbk                                                     |
| character_set_server     | utf8mb4                                                 |
| character_set_system     | utf8mb3                                                 |
| character_sets_dir       | C:\Program Files\MySQL\MySQL Server 8.0\share\charsets\ |
+--------------------------+---------------------------------------------------------+
8 rows in set, 1 warning (0.04 sec)

? ? ? ? 默認排序規則:

mysql> show variables like '%collation%';
+-------------------------------+--------------------+
| Variable_name                 | Value              |
+-------------------------------+--------------------+
| collation_connection          | gbk_chinese_ci     |
| collation_database            | utf8mb4_0900_ai_ci |
| collation_server              | utf8mb4_0900_ai_ci |
| default_collation_for_utf8mb4 | utf8mb4_0900_ai_ci |
+-------------------------------+--------------------+
4 rows in set, 1 warning (0.00 sec)

四、查看創建語句

4.1. 語法

mysql> show create database 數據庫名稱;
mysql> show create database test3_21;
+----------+------------------------------------------------------------------------------------------------------------------------------------+
| Database | Create Database|
+----------+------------------------------------------------------------------------------------------------------------------------------------+
| test3_21 | CREATE DATABASE `test3_21` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */ |
+----------+------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.01 sec)

????????在“Create Database”對應的這一列里面,會出現與注釋相同的符號“/**/”,但這個其實是指當前mysql版本大于4.01和 8.0.16時,分別執行對應的語句。

五、修改數據庫

5.1. 語法

ALTER {DATABASE | SCHEMA} [db_name]alter_option ...
alter_option: {[DEFAULT] CHARACTER SET [=] charset_name| [DEFAULT] COLLATE [=] collation_name| [DEFAULT] ENCRYPTION [=] {'Y' | 'N'}| READ ONLY [=] {DEFAULT | 0 | 1}
}

????????對數據庫的修改主要是修改數據庫的字符集,校驗規則。

mysql> alter database test_db character set gbk;
Query OK, 1 row affected (0.01 sec)mysql> show create database test_db;
+----------+----------------------------------------------------------------------------------------------------+
| Database | Create Database                                                                                    |
+----------+----------------------------------------------------------------------------------------------------+
| test_db  | CREATE DATABASE `test_db` /*!40100 DEFAULT CHARACTER SET gbk */ /*!80016 DEFAULT ENCRYPTION='N' */ |
+----------+----------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

????????但實際上,不建議對數據庫進行修改。因為修改之后的編碼不同,前面的數據還需要重新整理,效率非常低。大多數情況下還是將原來數據庫的資料導出再導入到新創建的數據庫里面。

六、刪除數據庫

6.1. 語法

DROP {DATABASE | SCHEMA} [IF EXISTS] 數據庫名稱;
mysql> drop database if exists test_db;
Query OK, 0 rows affected (0.04 sec)

? ? ? ? 關于刪除數據庫,有些時候可能會出現一些誤刪數據庫的操作,但也不必擔心。因為數據庫會定期對數據進行全量備份和增量備份,或者是通過日志進行恢復,或者是對磁盤進行物理恢復。

6.2. 注意事項

  • 刪除數據庫是?個危險操作,不要隨意刪除數據庫
  • 刪除數據庫之后,數據庫對應的?錄及?錄中的所有文件也會被刪除
  • 刪除數據庫之后,使?show databases;語句查看不到對應的數據庫

? ? ? ? 在此路徑下,C:\ProgramData\MySQL\MySQL Server 8.0\Data,是MySQL的數據目錄,里面包含了當前數據庫服務管理的所有數據。如果我們把一個Excel文件看成是一個數據庫,里面的每一行就可以看作是每一行數據。如果我們想刪除一個數據庫,那么對應的文件也會被刪除。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/73036.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/73036.shtml
英文地址,請注明出處:http://en.pswp.cn/web/73036.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

基于deepseek的智能語音客服【第四講】封裝milvus數據庫連接池封裝

通過工廠模式創建鏈接 static {// 創建連接池工廠BasePooledObjectFactory<MilvusServiceClient> factory new BasePooledObjectFactory<MilvusServiceClient>() {Overridepublic MilvusServiceClient create() throws Exception {return new MilvusServiceClient…

STM32基礎教程——定時器

前言 TIM定時器&#xff08;Timer&#xff09;:STM32的TIM定時器是一種功能強大的外設模塊&#xff0c;通過時基單元&#xff08;包含預分頻器、計數器和自動重載寄存器&#xff09;實現精準定時和計數功能。其核心原理是&#xff1a;內部時鐘&#xff08;CK_INT&#xff09;或…

OpenCV旋轉估計(4)生成一個字符串表示的匹配圖函數 matchesGraphAsString()

操作系統&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 編程語言&#xff1a;C11 算法描述 matchesGraphAsString 函數是OpenCV庫中的一部分&#xff0c;位于 cv::detail 命名空間下。這個函數的主要作用是生成一個字符串表示的匹配圖&am…

Android 根據Url使用Retrofit框架進行文件下載

一、背景 根據后端返回的url下載地址,去執行文件下載&#xff0c;將文件保存到SD卡。這里使用Retrofit網絡框架。 二、代碼實現 2.1、定義一個DownloadFileService interface DownloadFileService {StreamingGETsuspend fun downloadFile(Url fileUrl: String):ResponseBody…

NVMe(Non-Volatile Memory Express)詳解

一、NVMe的定義與核心特性 NVMe&#xff08;非易失性內存主機控制器接口規范&#xff09;是一種 基于PCIe總線的高性能存儲協議&#xff0c;專為固態硬盤&#xff08;SSD&#xff09;設計&#xff0c;旨在替代傳統的AHCI協議&#xff08;如SATA&#xff09;。其核心特性包括&a…

機器學習——KNN超參數

sklearn.model_selection.GridSearchCV 是 scikit-learn 中用于超參數調優的核心工具&#xff0c;通過結合交叉驗證和網格搜索實現模型參數的自動化優化。以下是詳細介紹&#xff1a; 一、功能概述 GridSearchCV 在指定參數網格上窮舉所有可能的超參數組合&#xff0c;通過交叉…

穩定運行的以Oracle NoSQL數據庫為數據源和目標的ETL性能變差時提高性能方法和步驟

提高基于Oracle NoSQL數據庫的ETL&#xff08;提取、轉換、加載&#xff09;性能時&#xff0c;主要從多個角度進行優化。 提高基于Oracle NoSQL數據庫的ETL性能需要綜合考慮多個方面&#xff0c;關鍵是減少不必要的I/O操作、優化數據轉換和加載過程、合理配置Oracle NoSQL數據…

Compose 原理解析

Compose 的組件都是放在 setContent() 之后才能顯示的&#xff0c;那需要先看看這個函數的作用。 先看 ComponentActivity 的擴展函數 setContent()&#xff1a; /*** 將給定的可組合項合成到給定的 Activity 中。[content] 將成為給定 Activity 的根視圖。* 這大致相當于使用…

細說衛星導航:測距定位原理

測距定位原理 1. 偽距測量技術 核心原理&#xff1a;衛星發射信號&#xff0c;用戶接收并記錄傳播時間&#xff0c;乘以光速得到距離&#xff08;偽距&#xff09;。 技術細節&#xff1a; 信號傳播路徑分析 信號結構&#xff1a; 衛星信號包含三部分&#xff1a; 載波&…

19921 多重背包

19921 多重背包 ??難度&#xff1a;中等 &#x1f31f;考點&#xff1a;動態規劃、背包問題 &#x1f4d6; &#x1f4da; import java.util.Arrays; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner;public class Main {static int N …

js逆向之斷點調試

1.XHR/提取斷點用法 當刷新頁面時候&#xff0c;有大量請求&#xff0c;并且你無法定位參數信息的時候&#xff0c;或者參數被混淆無法搜到&#xff0c;可以用該方法&#xff0c;該方法是會捕獲所有請求連接&#xff0c;然后我們通過連接過濾出自己想要的請求&#xff0c;然后…

基于32單片機的無人機直流電機閉環調速系統設計

標題:基于32單片機的無人機直流電機閉環調速系統設計 內容:1.摘要 本文針對無人機直流電機調速需求&#xff0c;設計了基于32單片機的無人機直流電機閉環調速系統。背景在于無人機應用場景不斷拓展&#xff0c;對電機調速精度和穩定性要求日益提高。目的是開發一套高精度、響應…

如何用Deepseek制作流程圖?

使用Deepseek制作流程圖&#xff0c;本質上是讓AI根據你的需求&#xff0c;生成相關流程圖的代碼&#xff0c;然后在流程圖編輯器中渲染&#xff0c;類似于Python一樣&#xff0c;ChatGPT可以生成代碼&#xff0c;但仍需在IDE中執行。 你知道繪制流程圖最高效的工具是什么嗎&a…

嵌入式硬件工程師從小白到入門-原理圖(三)

原理圖繪制從小白到入門&#xff1a;知識點速通與注意事項 一、原理圖繪制基礎概念 什么是原理圖&#xff1f; 原理圖&#xff08;Schematic&#xff09;是電子電路的圖形化表示&#xff0c;展示元器件之間的電氣連接關系&#xff0c;是硬件設計的藍圖。 核心元素 元器件符號&…

WSL 環境橋接與雷達通信配置筆記

作者: DWDROME 維護時間: 2025-03-22 參考文章:Windows子系統&#xff08;WSL&#xff09;通過橋接網絡實現被外部局域網主機直接訪問 WSL 環境橋接與雷達通信配置筆記 環境說明 Windows 11 專業版&#xff08;啟用 Hyper-V&#xff09;WSL2 Ubuntu 20.04物理網線&#xff08…

ToDesk云電腦各類鼠標有什么區別?虛擬/3D/游戲鼠標等各有利

不知道各位在使用ToDesk云電腦的時候是否是有注意到&#xff0c;這其中的鼠標竟有多種名稱、多種模式可以選&#xff0c;比如鎖定鼠標、3D鼠標、游戲鼠標這幾項。 那么這些不同名稱的鼠標都代表什么意思吶&#xff0c;又應該怎么選擇、怎么用吶&#xff1f;本篇內容小編就為大…

DeepBI:重構流量邏輯,助力亞馬遜廣告實現高效流量增長

在日益激烈的跨境電商競爭環境中&#xff0c;廣告投放早已從“粗放撒網”走向“精細化運營”。尤其是在亞馬遜這樣一個成熟且競爭白熱化的平臺&#xff0c;如何在廣告預算有限的前提下實現高效曝光、精準觸達、穩定轉化&#xff0c;成為眾多賣家和運營團隊面臨的核心挑戰。 De…

java項目之基于ssm的畢業論文管理系統(源碼+文檔)

項目簡介 畢業論文管理系統實現了以下功能&#xff1a; 本畢業論文管理系統主要實現的功能模塊包括學生模塊、導師模塊和管理員模塊三大部分&#xff0c;具體功能分析如下&#xff1a; &#xff08;1&#xff09;導師功能模塊&#xff1a;導師注冊登錄后主要功能模塊包括個人…

【自學筆記】Linux基礎知識點總覽-持續更新

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 Linux 基礎知識點總覽目錄Linux 簡介文件和目錄結構常用命令文件操作目錄操作權限管理文本處理 Shell 腳本基礎進程管理用戶和組管理網絡配置 總結 Linux 基礎知識點…

【PCB工藝】晶體管的發展歷史

晶體管被認為是20世紀最偉大的發明之一&#xff0c;因為沒有晶體管就不會有現代電腦、手機或平板??&#xff0c;你也無法閱讀到這里的內容&#xff0c;因為不存在網絡。 ——本文純粹出于對過往奮斗在這個領域中科學家的緬懷。科學家有太多寶貴的思想和經驗值得我們認真總結和…