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

MySQL之庫和表的操作實(shí)踐

 更新時(shí)間:2025年09月22日 09:06:01   作者:秦jh_  
本文講解MySQL數(shù)據(jù)庫和表的操作,涵蓋創(chuàng)建、修改、刪除,字符集與校驗(yàn)規(guī)則設(shè)置,備份恢復(fù)方法,及查看連接狀態(tài),強(qiáng)調(diào)注意事項(xiàng)如刪除風(fēng)險(xiǎn)和校驗(yàn)規(guī)則對大小寫的影響

庫的操作

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

CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [, create_specification] ...]

create_specification:

        [DEFAULT] CHARACTER SET charset_name

        [DEFAULT] COLLATE collation_name

說明:

  • 大寫的表示關(guān)鍵字
  • [] 是可選項(xiàng)
  • CHARACTER SET: 指定數(shù)據(jù)庫采用的字符集
  • COLLATE: 指定數(shù)據(jù)庫字符集的校驗(yàn)規(guī)則

創(chuàng)建如上圖。 

說明:當(dāng)我們創(chuàng)建數(shù)據(jù)庫沒有指定字符集和校驗(yàn)規(guī)則時(shí),系統(tǒng)使用默認(rèn)字符集:utf8,校驗(yàn)規(guī)則 是:utf8_ general_ ci 

  •  創(chuàng)建一個(gè)使用utf8字符集的 db2 數(shù)據(jù)庫
create database db2 charset=utf8; 
  •  創(chuàng)建一個(gè)使用utf字符集,并帶校對規(guī)則的 db3 數(shù)據(jù)庫。
create database db3 charset=utf8 collate utf8_general_ci; 

字符集和校驗(yàn)規(guī)則

查看系統(tǒng)默認(rèn)字符集以及校驗(yàn)規(guī)則

show variables like 'character_set_database';
show variables like 'collation_database'; 

查看數(shù)據(jù)庫支持的字符集

show charset;

字符集主要是控制用什么語言。比如utf8就可以使用中文。

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

show collation; 

校驗(yàn)規(guī)則對數(shù)據(jù)庫的影響

  •  不區(qū)分大小寫

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

create database test1 collate utf8_general_ci; 
use test1; 
create table person(name varchar(20)); 
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B'); 

  • 區(qū)分大小寫 

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

create database test2 collate utf8_bin; 
use test2 
create table person(name varchar(20)); 
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B'); 

刪除數(shù)據(jù)庫

DROP DATABASE [IF EXISTS] db_name; 

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

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

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

操縱數(shù)據(jù)庫

查看數(shù)據(jù)庫

show databases; 

通過select database();可以查看當(dāng)前正在哪個(gè)數(shù)據(jù)庫里。

顯示創(chuàng)建語句

show create database 數(shù)據(jù)庫名;  

說明:

  • MySQL 建議我們關(guān)鍵字使用大寫,但是不是必須的。
  • 數(shù)據(jù)庫名字的反引號``,是為了防止使用的數(shù)據(jù)庫名剛好是關(guān)鍵字
  • /*!40100 default.... */ 這個(gè)不是注釋,表示當(dāng)前mysql版本大于4.01版本,就執(zhí)行這句話

修改數(shù)據(jù)庫

語法:

ALTER DATABASE db_name
[alter_spacification [,alter_spacification]...]
alter_spacification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name 

說明: 

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

備份和恢復(fù)

備份

語法:

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

 

如上圖,先備份,然后把test1庫刪掉。

打開看看 test1.sql 文件里的內(nèi)容,可以看到,其實(shí)把我們整個(gè)創(chuàng)建數(shù)據(jù)庫,建表,導(dǎo)入數(shù)據(jù)的語句 都裝載這個(gè)文件中。 

還原

語法:

source 路徑/test1.sql;

注意事項(xiàng)

  •  如果備份的不是整個(gè)數(shù)據(jù)庫,而是其中的一張表,怎么做?
# mysqldump -u root -p 數(shù)據(jù)庫名 表名1 表名2 > D:/mytest.sql 
  • 同時(shí)備份多個(gè)數(shù)據(jù)庫 
# mysqldump -u root -p -B 數(shù)據(jù)庫名1 數(shù)據(jù)庫名2 ... > 數(shù)據(jù)庫存放路徑 
  • 如果備份一個(gè)數(shù)據(jù)庫時(shí),沒有帶上-B參數(shù), 在恢復(fù)數(shù)據(jù)庫時(shí),需要先創(chuàng)建空數(shù)據(jù)庫,然后使用數(shù)據(jù) 庫,再使用source來還原。 

查看連接情況

語法: 

show processlist ;

 可以告訴我們當(dāng)前有哪些用戶連接到我們的MySQL,如果查出某個(gè)用戶不是你正常登陸的,很有可能你 的數(shù)據(jù)庫被人入侵了。發(fā)現(xiàn)自己數(shù)據(jù)庫比較慢時(shí),可以用這個(gè)指令來查看數(shù)據(jù)庫連接情況。

表的操作

創(chuàng)建表

語法:

CREATE TABLE table_name (
        field1 datatype,
        field2 datatype,
        field3 datatype
) 

character set 字符集 collate 校驗(yàn)規(guī)則 engine 存儲引擎; 

說明: 

  • field 表示列名
  • datatype 表示列的類型
  • character set 字符集,如果沒有指定字符集,則以所在數(shù)據(jù)庫的字符集為準(zhǔn)
  • collate 校驗(yàn)規(guī)則,如果沒有指定校驗(yàn)規(guī)則,則以所在數(shù)據(jù)庫的校驗(yàn)規(guī)則為準(zhǔn) 

創(chuàng)建表案例

create table users (
        id int,
        name varchar(20) comment '用戶名',
        password char(32) comment '密碼是32位的md5值',
        birthday date comment '生日'
) character set utf8 engine MyISAM;

說明:

comment表示對該列的文字說明。

  • 不同的存儲引擎,創(chuàng)建表的文件不一樣.

users 表存儲引擎是 MyISAM ,在數(shù)據(jù)目中有三個(gè)不同的文件,分別是:

  • users.frm:表結(jié)構(gòu)
  • users.MYD:表數(shù)據(jù)
  • users.MYI:表索引

另一個(gè)表:

 不同的存儲引擎,創(chuàng)建表的文件不一樣。

第二個(gè)表的文件只有兩個(gè)。

查看表結(jié)構(gòu)

desc 表名; 

如上圖,可以更詳細(xì)的知道創(chuàng)建表時(shí)的信息。把分號換成 \G,可以進(jìn)行格式化。 

修改表

在項(xiàng)目實(shí)際開發(fā)中,經(jīng)常修改某個(gè)表的結(jié)構(gòu),比如字段名字,字段大小,字段類型,表的字符集類型, 表的存儲引擎等等。

我們還有需求,添加字段,刪除字段等等。這時(shí)我們就需要修改表。 

ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,column datatype]...); ALTER TABLE tablename MODIfy (column datatype [DEFAULT expr][,column datatype]...); ALTER TABLE tablename DROP (column); 

先在表中填入如上數(shù)據(jù)。

在users表添加一個(gè)字段,用于保存圖片路徑 

修改name,將其長度改成60

刪除password列:

注意:刪除字段一定要小心,刪除字段及其對應(yīng)的列數(shù)據(jù)都沒了 

 修改表名為user:

to:可以省掉 

將name列修改為xingming:

mysql> alter table user change name xingming varchar(60);   注意--新字段需要完整定義 

刪除表

語法格式:

DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ... 

示例:

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • MySQL的日志基礎(chǔ)知識及基本操作學(xué)習(xí)教程

    MySQL的日志基礎(chǔ)知識及基本操作學(xué)習(xí)教程

    這篇文章主要介紹了MySQL的日志基礎(chǔ)知識學(xué)習(xí)教程,包括MySQL中日志相關(guān)常用的服務(wù)器變量說明,極力推薦!需要的朋友可以參考下
    2015-11-11
  • Mysql中FIND_IN_SET()和IN區(qū)別簡析

    Mysql中FIND_IN_SET()和IN區(qū)別簡析

    這篇文章主要介紹了Mysql中FIND_IN_SET()和IN區(qū)別簡析,設(shè)計(jì)實(shí)例代碼,具有一定參考價(jià)值。需要的朋友可以了解。
    2017-10-10
  • mysql5.7.18版本免安裝配置教程

    mysql5.7.18版本免安裝配置教程

    這篇文章主要為大家詳細(xì)介紹了mysql5.7.18版本免安裝的配置教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • MySQL Explain使用詳解

    MySQL Explain使用詳解

    這篇文章主要介紹了MySQL Explain使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • mysql關(guān)閉binlog日志,刪除binlog數(shù)據(jù)方式(win和linux通用)

    mysql關(guān)閉binlog日志,刪除binlog數(shù)據(jù)方式(win和linux通用)

    用戶需檢查MySQL binlog狀態(tài),開啟則修改my.ini配置,注釋bin-log并添加skip-log-bin,重啟服務(wù)關(guān)閉日志;如需刪除舊日志,執(zhí)行清理命令
    2025-08-08
  • MySQL更新刪除操作update和delete使用詳解(小白慎用)

    MySQL更新刪除操作update和delete使用詳解(小白慎用)

    這篇文章主要為大家介紹了MySQL的更新刪除操作update和delete使用但是一定要慎用啊,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • MySQL數(shù)據(jù)庫中ENUM的用法是什么詳解

    MySQL數(shù)據(jù)庫中ENUM的用法是什么詳解

    ENUM是一個(gè)字符串對象,用于指定一組預(yù)定義的值,并可在創(chuàng)建表時(shí)使用,下面這篇文章主要介紹了MySQL數(shù)據(jù)庫中ENUM的用法是什么的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-06-06
  • 全面解析MySQL?Explain如何優(yōu)化SQL查詢性能

    全面解析MySQL?Explain如何優(yōu)化SQL查詢性能

    在?MySQL?中,EXPLAIN?關(guān)鍵字可以幫助我們分析查詢執(zhí)行計(jì)劃,從而優(yōu)化查詢性能,所以本文就來和大家詳細(xì)講講Explain是如何優(yōu)化SQL查詢性能的
    2023-05-05
  • mysql charset=utf8你真的弄明白意思了嗎

    mysql charset=utf8你真的弄明白意思了嗎

    這篇文章主要介紹了mysql charset=utf8你真的弄明白意思了嗎?文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • MySQL使用MRG_MyISAM(MERGE)實(shí)現(xiàn)分表后查詢的示例

    MySQL使用MRG_MyISAM(MERGE)實(shí)現(xiàn)分表后查詢的示例

    這篇文章主要介紹了MySQL使用MRG_MyISAM(MERGE)實(shí)現(xiàn)分表后查詢的示例,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫,感興趣的朋友可以了解下
    2020-12-12

最新評論