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

MySQL操作數(shù)據庫實戰(zhàn)指南

 更新時間:2023年07月22日 10:00:25   作者:每天都要進步呀~  
這篇文章主要給大家介紹了關于MySQL數(shù)據庫操作庫的相關資料,MySQL數(shù)據庫是一個關系型數(shù)據庫管理系統(tǒng),所采用的SQL語言是用于訪問數(shù)據庫最常用的標準會語言,需要的朋友可以參考下

一.創(chuàng)建數(shù)據庫

1. 創(chuàng)建數(shù)據庫的方式

create database database1;

image-20230716160242203

帶選項的創(chuàng)建

create database if not exists database1;

如果不存在(if not exists)才創(chuàng)建數(shù)據庫database1。

image-20230716162145611

2. 創(chuàng)建數(shù)據庫時的編碼問題

與數(shù)據打交道的數(shù)據庫的創(chuàng)建一定與編碼有關系。創(chuàng)建數(shù)據庫的時候,有兩個編碼集:

  • 數(shù)據庫編碼集:數(shù)據庫未來存儲數(shù)據的編碼集。
  • 數(shù)據庫校驗集:支持數(shù)據庫,進行字段比較使用的編碼,本質也是一種讀取數(shù)據庫中數(shù)據的采用的編碼格式。

因此,數(shù)據庫無論對數(shù)據做任何操作,都需要保證數(shù)據庫的操作和編碼必須是編碼一致的。

查看系統(tǒng)默認支持的字符集和校驗集:

show variables like 'character_set_database';

image-20230716163250563

show variables like 'collation_database';

image-20230716163406782

查看connection、database、server的校驗集:

show variables like 'collation_%';

image-20230716163700707

大部分情況下,數(shù)據庫的連接,數(shù)據庫本身、數(shù)據庫的服務器都是utf8的。在最開始的my.cnf配置中,我們把默認字符集全部配成了utf8進行統(tǒng)一,如果不配置,可能就會因為編碼的不同導致無法正確解析數(shù)據。

查看數(shù)據庫全部的字符集

show charset;

image-20230716163933162

查看對照表,數(shù)據庫選擇的就是其中的utf8的字符集。

查看數(shù)據庫支持的字符集校驗規(guī)則

show collation;

3. 指定編碼創(chuàng)建數(shù)據庫

當我們創(chuàng)建數(shù)據庫沒有指定字符集和校驗規(guī)則時,系統(tǒng)使用默認字符集:utf8,校驗規(guī)則是:utf8_general_ci。

兩種方式:

create database d2 charset=utf8; #指定編碼格式utf8

image-20230716200505946

create database d3 set utf8; #指定編碼格式utf8

image-20230716200815758

編碼集字符集同時設置:

create database d4 charset=utf8 collate utf8_general_ci; #既指明編碼,又指明校驗規(guī)則

根據字符集表以及校驗表創(chuàng)建不同編碼和校驗規(guī)則的數(shù)據庫

image-20230716201340291

4. 驗證校驗規(guī)則對數(shù)據庫的影響

不區(qū)分大小寫

創(chuàng)建一個數(shù)據庫,校驗規(guī)則使用utf8_ general_ ci[不區(qū)分大小寫]

create database test1 collate utf8_general_ci;
use test1;
create table person(name varchar(20));

image-20230717204517443

由于是不區(qū)分大小寫的,所以在指定查’a’的時候,utf8_ general_ ci校驗規(guī)則會將’A’和’a’一并查出:

image-20230717204907443

區(qū)分大小寫

創(chuàng)建一個數(shù)據庫,校驗規(guī)則使用utf8_ bin[區(qū)分大小寫]

create database test2 collate utf8_bin;
use test2;
create table if not exists person(name varchar(20));

image-20230717205550620

因此,校驗規(guī)則的不同,我們查出的結果也有可能不同。

校驗規(guī)則的不同,排序的順序也會不同:(從小到大)

image-20230717205936435

故忽略大小寫時,大小寫的排序不做區(qū)分。

二.數(shù)據庫與文件系統(tǒng)的關系

創(chuàng)建數(shù)據庫:create database db_name; 本質就是在/var/lib/mysql創(chuàng)建一個目錄。

刪除數(shù)據庫:drop database db_name; 本質就是在/var/lib/mysql刪除目錄。

因此,我們可以在/var/lib/mysql上創(chuàng)建目錄,那么數(shù)據庫層面也一定會產生相應的數(shù)據庫。

image-20230716161418944

同理,在mysql目錄中刪掉一個目錄,數(shù)據庫層面的對應數(shù)據庫也會被刪掉。

當然,絕對不應該在文件系統(tǒng)層面創(chuàng)建目錄從而生成對應數(shù)據庫,這樣是不合理的。因此mysql8.0就禁掉了這個功能,而mysql5.6支持。

三.操縱數(shù)據庫

1. 查看數(shù)據庫

show databases;

image-20230716155403820

如果想要確定是在哪個數(shù)據庫里,可以執(zhí)行:

select database();

image-20230719130308084

2. 刪除數(shù)據庫

drop database db_name;

執(zhí)行刪除之后的結果:

  • 數(shù)據庫內部看不到對應的數(shù)據庫
  • 對應的數(shù)據庫文件夾被刪除,級聯(lián)刪除,里面的數(shù)據表全部被刪

注意:不要隨意刪除數(shù)據庫

3. 修改數(shù)據庫

對數(shù)據庫的修改主要指的是修改數(shù)據庫的字符集,校驗規(guī)則

alter database test2 charset=gbk collate gbk_Chinese_ci;

image-20230719130801155

四.數(shù)據庫的備份和恢復

1.數(shù)據庫的備份

 mysqldump -P3306 -u root -p 密碼 -B 數(shù)據庫名 > 數(shù)據庫備份存儲的文件路徑

-B:代表選擇數(shù)據庫的選項。

image-20230719135036092

test1.sql中存儲的不僅僅是test1數(shù)據庫中的數(shù)據,還有歷史上創(chuàng)建過的命令:

image-20230719135143891

至此就完成了對數(shù)據庫test1的備份操作。

2.數(shù)據庫的恢復

現(xiàn)在,將test1數(shù)據庫刪掉:

image-20230719135825570

這樣,在/var/lib/mysql的路徑下,一定也不存在test1目錄。

通過pwd命令,我們知道test1.sql所在的路徑:

然后,通過以下恢復命令:

mysql> source /root/MySQL/test1.sql;

image-20230719140542138

此時,就可以查看到對應test1的數(shù)據庫及其內容:

image-20230719141029717

注意事項

如果備份的不是整個數(shù)據庫,而是其中的一張表,怎么做?

mysqldump -u root -p 數(shù)據庫名 表名1 表名2 > 路徑/mytest.sql

同時備份多個數(shù)據庫

mysqldump -u root -p -B 數(shù)據庫名1 數(shù)據庫名2 ... > 數(shù)據庫存放路徑

如果備份一個數(shù)據庫時,沒有帶上-B參數(shù), 在恢復數(shù)據庫時,需要先創(chuàng)建空數(shù)據庫,然后使用數(shù)據庫,再使用source來還原。

五.查看連接情況

如果在使用數(shù)據庫時,出現(xiàn)卡頓,那么有可能訪問數(shù)據庫的不止你一個,所以,通過如下命令,我們可以看到User的數(shù)量及名稱Id。

show processlist;

image-20230719143408395

這可以告訴我們當前有哪些用戶連接到我們的MySQL,如果查出某個用戶不是你正常登陸的,很有可能你的數(shù)據庫被人入侵了。

總結

到此這篇關于MySQL操作庫的文章就介紹到這了,更多相關MySQL操作庫內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 單個select語句實現(xiàn)MySQL查詢統(tǒng)計次數(shù)

    單個select語句實現(xiàn)MySQL查詢統(tǒng)計次數(shù)

    MySQL中查詢統(tǒng)計次數(shù)往往語句寫法很復雜,下文就教您一個只用單個select語句就實現(xiàn)的方法,希望對您能夠有所幫助
    2014-05-05
  • MySQL讀取my.cnf的順序問題詳情

    MySQL讀取my.cnf的順序問題詳情

    這篇文章主要介紹MySQL讀取my.cnf的順序問題,以mysql.server、mysqld_safe及mysqld和my_print_defaults讀取my.cnf順序展開文章介紹主題,感興趣的話大家一起來學習吧
    2021-09-09
  • MySQL數(shù)據庫優(yōu)化詳解

    MySQL數(shù)據庫優(yōu)化詳解

    這篇文章主要介紹了MySQL數(shù)據庫優(yōu)化的方方面面,各種小技巧,需要的朋友可以參考下
    2014-08-08
  • Mysql 5.6使用配置文件my.ini來設置長時間連接數(shù)據庫的問題

    Mysql 5.6使用配置文件my.ini來設置長時間連接數(shù)據庫的問題

    這篇文章主要介紹了Mysql 5.6使用配置文件my.ini來設置長時間連接數(shù)據庫,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • MySQL的存儲引擎InnoDB和MyISAM

    MySQL的存儲引擎InnoDB和MyISAM

    這篇文章主要介紹了MySQL的存儲引擎InnoDB和MyISAM,MyISAM?用的是非聚集索引方式,即數(shù)據和索引落在不同的兩個文件上,下文更多相關內容需要的小伙伴可以參考一下
    2022-04-04
  • MySQL操作符(and、or、in、not)的具體使用

    MySQL操作符(and、or、in、not)的具體使用

    本文主要介紹了MySQL操作符(and、or、in、not)的具體使用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • 數(shù)據庫中update與delete使用表別名的深入研究

    數(shù)據庫中update與delete使用表別名的深入研究

    本文介紹了UPDATE和DELETE?SQL語句在Oracle,?SQLite,?PostgreSQL,?MYSQL,?mariadb等數(shù)據庫系統(tǒng)中的執(zhí)行差異,文中通過代碼介紹的非常詳細,對數(shù)據庫開發(fā)和維護人員有指導意義,需要的朋友可以參考下
    2024-10-10
  • mysql刪除表數(shù)據如何恢復

    mysql刪除表數(shù)據如何恢復

    這篇文章主要介紹了mysql刪除表數(shù)據如何恢復,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • mysql誤刪root用戶恢復方法

    mysql誤刪root用戶恢復方法

    這篇文章主要介紹了mysql誤刪root用戶恢復方法,本文操作是在mysql5.5版本下完成,其它版本僅作參考,需要的朋友可以參考下
    2015-02-02
  • MySQL中如何查詢某年某月的數(shù)據

    MySQL中如何查詢某年某月的數(shù)據

    這篇文章主要介紹了MySQL中如何查詢某年某月的數(shù)據問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07

最新評論