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

MySQL對(duì)數(shù)據(jù)庫(kù)和表進(jìn)行DDL命令的操作代碼

 更新時(shí)間:2024年07月18日 09:43:46   作者:風(fēng)君子吖  
DDL(Data?Definition?Language),是數(shù)據(jù)定義語(yǔ)言的縮寫(xiě),它是SQL(Structured?Query?Language)語(yǔ)言的一個(gè)子集,用于定義或修改數(shù)據(jù)庫(kù)的結(jié)構(gòu),本文給大家介紹了MySQL對(duì)數(shù)據(jù)庫(kù)和表進(jìn)行DDL命令的操作,需要的朋友可以參考下

一、什么是DDL操作

DDL(Data Definition Language),是數(shù)據(jù)定義語(yǔ)言的縮寫(xiě),它是SQL(Structured Query Language)語(yǔ)言的一個(gè)子集,用于定義或修改數(shù)據(jù)庫(kù)的結(jié)構(gòu)。DDL主要包括創(chuàng)建(CREATE)、修改(ALTER)、刪除(DROP)等操作。

二、數(shù)據(jù)庫(kù)編碼集和數(shù)據(jù)庫(kù)校驗(yàn)集

數(shù)據(jù)庫(kù)編碼集就是當(dāng)對(duì)數(shù)據(jù)庫(kù)內(nèi)容進(jìn)行存儲(chǔ)時(shí),采用怎樣的編碼格式來(lái)存儲(chǔ)。
數(shù)據(jù)庫(kù)校驗(yàn)集就是當(dāng)對(duì)數(shù)據(jù)庫(kù)內(nèi)容進(jìn)行讀取時(shí),采用怎樣的編碼格式來(lái)讀取。

所以,為了保證數(shù)據(jù)庫(kù)在讀取數(shù)據(jù)時(shí),不會(huì)產(chǎn)生亂碼,我們就需要讓數(shù)據(jù)庫(kù)的編碼集和校驗(yàn)集進(jìn)行對(duì)應(yīng),比如說(shuō)用utf8的格式進(jìn)行存儲(chǔ),那么也必須使用utf8的格式進(jìn)行讀取!

如何查看自己的mysql支持怎樣的編碼集和校驗(yàn)集?
show charset; 查看編碼集
show collation; 查看校驗(yàn)集

如何查看當(dāng)前的默認(rèn)的編碼集和校驗(yàn)集?
show variables like 'character_set_database';
show variables like 'collation_database';

在這里插入圖片描述

三、使用步驟

對(duì)數(shù)據(jù)庫(kù)的增刪查改

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

現(xiàn)在我要?jiǎng)?chuàng)建一個(gè)名為test的數(shù)據(jù)庫(kù),應(yīng)該怎么創(chuàng)建呢?

  1. create database test; 這是最簡(jiǎn)單的寫(xiě)法。
  2. create database if not exists test; 加上if not exists 表示如果不存在該數(shù)據(jù)庫(kù)才創(chuàng)建。
  3. create database if not exists test charset=utf8mb3 collate=utf8mb3_general_ci; 加上charset=utf8mb3,讓該數(shù)據(jù)庫(kù)默認(rèn)采用utf8mb3的編碼集格式,collate=utf8mb3_general_ci讓該數(shù)據(jù)庫(kù)默認(rèn)采用utf8mb3_general_ci的編碼集格式。這里的charset=utf8mb3還可以寫(xiě)成 character set utf8mb3;collate=utf8mb3_general_ci還可以寫(xiě)成collate utf8mb3_general_ci。

當(dāng)我們創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)之后,我們可以在/var/lib/mysql路徑下找到對(duì)應(yīng)的數(shù)據(jù)庫(kù)目錄。

2.進(jìn)入數(shù)據(jù)庫(kù)

use database_name;

在這里插入圖片描述

進(jìn)入了這個(gè)數(shù)據(jù)庫(kù),我們才能再對(duì)數(shù)據(jù)庫(kù)中的表進(jìn)行增刪查改。

3.顯示數(shù)據(jù)庫(kù)

show databases;

在這里插入圖片描述

如何查看我當(dāng)前所在的數(shù)據(jù)庫(kù)?
select database();

在這里插入圖片描述

4.修改數(shù)據(jù)庫(kù)

對(duì)數(shù)據(jù)庫(kù)進(jìn)行修改只能修改其字符編碼集和字符校驗(yàn)集。
alter database test charset=gbk collate=gbk_chinese_ci;

在這里插入圖片描述

SELECT DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME
FROM information_schema.SCHEMATA
WHERE SCHEMA_NAME = DATABASE();

那有沒(méi)有修改數(shù)據(jù)庫(kù)名字的操作呢? 以前有,但是被移除了,因?yàn)椴话踩?br />如果想要修改數(shù)據(jù)庫(kù)的名字,應(yīng)該使用mysqldump進(jìn)行備份!

首先這里需要插入一個(gè)前備知識(shí)。
當(dāng)輸入show create database test;

在這里插入圖片描述

需要注意的是,這里的/*!40100 DEFAULT CHARACTER SET gbk / /!80016 DEFAULT ENCRYPTION=‘N’ */并不是注釋?zhuān)强勺冞x項(xiàng)!

所以這個(gè)指令是什么意思? 這個(gè)指令是告訴我們?nèi)绻獎(jiǎng)?chuàng)建一個(gè)test數(shù)據(jù)庫(kù),需要輸入怎樣的指令。

mysqldump

mysqldump是一個(gè)bash命令,并不是mysql命令,這個(gè)命令程序在安裝mysql的時(shí)候也順帶安裝上了。
我們?nèi)绻獙⒛硞€(gè)數(shù)據(jù)庫(kù)進(jìn)行備份,就可以使用這個(gè)命令。

我們先在test庫(kù)先創(chuàng)建一個(gè)表,并插入一些內(nèi)容以便等會(huì)看實(shí)驗(yàn)現(xiàn)象。

在這里插入圖片描述

此時(shí)我們?cè)偻顺鰯?shù)據(jù)庫(kù),并進(jìn)入一個(gè)空目錄下,執(zhí)行命令
mysqldump -P 3306 -u root -p -B test >./test.sql
再使用ls就可看到,此目錄多出一個(gè)test.sql的文件。
我們可以打開(kāi)文件,看文件的內(nèi)容是什么。

在這里插入圖片描述

如果細(xì)心觀察就可以看出這就是一串創(chuàng)建數(shù)據(jù)庫(kù)、創(chuàng)建表并插入數(shù)據(jù)的mysql指令。
所以,mysqldump的備份其實(shí)是備份“指令”。

那么怎么導(dǎo)入這個(gè)文件為我們創(chuàng)建數(shù)據(jù)庫(kù)呢?
再登錄我們的mysql,將我們的test數(shù)據(jù)庫(kù)刪掉。
輸入source /home/fengjunziya/test/lesson37_mysqltest/test.sql;

在這里插入圖片描述

它就為我們執(zhí)行了那個(gè)文件的命令,也就達(dá)到了備份導(dǎo)入的作用。

可是怎么修改數(shù)據(jù)庫(kù)名字呢?
首先在使用mysqldump命令時(shí)不能加上-B
mysqldump -P3306 -uroot -p test > test.sql

在這里插入圖片描述

這時(shí)我們就可以看到文件內(nèi)的并沒(méi)有創(chuàng)建數(shù)據(jù)庫(kù)的指令。
所以我們?cè)谑褂胹ource導(dǎo)入的時(shí)候,就需要先創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)(新名字)再進(jìn)行導(dǎo)入。

create database hello; 創(chuàng)建hello數(shù)據(jù)庫(kù)
use hello; 進(jìn)入hello數(shù)據(jù)庫(kù)
source /home/fengjunziya/test/lesson37_mysqltest/test.sql; 導(dǎo)入文件指令
select database(); 查看當(dāng)前所在數(shù)據(jù)庫(kù)
select * from user; 查看user表中的數(shù)據(jù)內(nèi)容

在這里插入圖片描述

最后也是被拷貝進(jìn)來(lái)了。

5.刪除數(shù)據(jù)庫(kù)

刪除數(shù)據(jù)庫(kù)很簡(jiǎn)單,但是一旦刪除數(shù)據(jù)庫(kù),該數(shù)據(jù)庫(kù)內(nèi)的數(shù)據(jù)將全部被清空,所以需要謹(jǐn)慎!

drop database database_name;

需要注意的是,對(duì)于數(shù)據(jù)庫(kù)而言,不論是修改還是刪除,都是有風(fēng)險(xiǎn)的行為,因?yàn)槲覀兊臄?shù)據(jù)庫(kù)一般都是直接與上層服務(wù)連接,一旦修改數(shù)據(jù)庫(kù)的名字,或者刪除數(shù)據(jù)庫(kù)都可能會(huì)造成上層服務(wù)出現(xiàn)問(wèn)題!

對(duì)表的增刪查改

1.添加/創(chuàng)建表

創(chuàng)建表的格式怎么寫(xiě)呢?
create table table_name(...);

1.

還可以加入 if not exists

在這里插入圖片描述

還可以加入comment 添加描述

在這里插入圖片描述

再?gòu)?fù)雜點(diǎn)還可以指定字符編碼集、字符校驗(yàn)集還有存儲(chǔ)引擎

在這里插入圖片描述

2.插入表內(nèi)容

insert into table_name values (...), (...), ... ;

在這里插入圖片描述

insert是下一章的DML操作,這里大家先接觸一下。

3.查看表

查看所有表

show tables;

在這里插入圖片描述

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

desc table_name;

在這里插入圖片描述

在這里插入圖片描述

查看表內(nèi)容

select * from table_name;

在這里插入圖片描述

select也是下一章的DML命令。

4.修改表

修改表的名字

alter table table_name rename (to) new_name;

在這里插入圖片描述

修改表的結(jié)構(gòu)

對(duì)表結(jié)構(gòu)的增加

如果要對(duì)表原有的結(jié)構(gòu)再加一欄。
alter table table_name add newfield type;

在這里插入圖片描述

alter table teachers add birthday varchar(20) after gender; after gender代表是在gender后面加一欄。

對(duì)表結(jié)構(gòu)的其中一列屬性進(jìn)行修改

alter table table_name modify field_name type;

在這里插入圖片描述

對(duì)表結(jié)構(gòu)的其中一列改名并修改屬性

alter table table_name change field_name newfield_name type;

在這里插入圖片描述

對(duì)表結(jié)構(gòu)的刪除

alter table table_name drop field_name;

在這里插入圖片描述

刪除表

drop table table_name;

在這里插入圖片描述

一旦刪除表,該表的數(shù)據(jù)將全部被清空,所以需要謹(jǐn)慎!

以上就是MySQL對(duì)數(shù)據(jù)庫(kù)和表進(jìn)行DDL命令的操作代碼的詳細(xì)內(nèi)容,更多關(guān)于MySQL數(shù)據(jù)庫(kù)和表DDL的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 小型Drupal數(shù)據(jù)庫(kù)備份以及大型站點(diǎn)MySQL備份策略分享

    小型Drupal數(shù)據(jù)庫(kù)備份以及大型站點(diǎn)MySQL備份策略分享

    為了防止web服務(wù)器出現(xiàn)故障而引起的數(shù)據(jù)丟失,數(shù)據(jù)庫(kù)備份顯得非常重要,以免出現(xiàn)重大損失。本文分析研究一下小型的Drupal站的備份策略以及大型站點(diǎn)的mysql備份策略
    2014-11-11
  • MySQL用戶(hù)賬戶(hù)管理和權(quán)限管理深入講解

    MySQL用戶(hù)賬戶(hù)管理和權(quán)限管理深入講解

    這篇文章主要給大家介紹了關(guān)于MySQL用戶(hù)賬戶(hù)管理和權(quán)限管理的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • MySQL中字段的實(shí)際長(zhǎng)度的實(shí)現(xiàn)示例代碼

    MySQL中字段的實(shí)際長(zhǎng)度的實(shí)現(xiàn)示例代碼

    MySQL字段的存儲(chǔ)長(zhǎng)度不僅取決于數(shù)據(jù)類(lèi)型,還受字符編碼和存儲(chǔ)內(nèi)容的影響,CHAR和VARCHAR字段可以使用LENGTH()和CHAR_LENGTH()函數(shù)獲取長(zhǎng)度信息,下面就來(lái)具體介紹一下
    2024-09-09
  • Express項(xiàng)目中操作MySQL的步驟

    Express項(xiàng)目中操作MySQL的步驟

    本文詳細(xì)介紹了如何在Express項(xiàng)目中操作MySQL數(shù)據(jù)庫(kù),包括安裝配置、連接數(shù)據(jù)庫(kù)、執(zhí)行SQL語(yǔ)句以及處理查詢(xún)結(jié)果等關(guān)鍵步驟,感興趣的朋友跟隨小編一起看看吧
    2025-02-02
  • MySQL入門(mén)(四) 數(shù)據(jù)表的數(shù)據(jù)插入、更新、刪除

    MySQL入門(mén)(四) 數(shù)據(jù)表的數(shù)據(jù)插入、更新、刪除

    這篇文章主要介紹了mysql數(shù)據(jù)庫(kù)中表的插入、更新、刪除非常簡(jiǎn)單,但是簡(jiǎn)單的也要學(xué)習(xí),細(xì)節(jié)決定成敗,需要的朋友可以參考下
    2018-07-07
  • 深入淺出講解MySQL的并行復(fù)制

    深入淺出講解MySQL的并行復(fù)制

    這篇文章主要給大家介紹了關(guān)于MySQL并行復(fù)制的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或使用mysql具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-08-08
  • Xtrabackup使用指南 InnoDB數(shù)據(jù)備份工具

    Xtrabackup使用指南 InnoDB數(shù)據(jù)備份工具

    Xtrabackup是一個(gè)對(duì)InnoDB做數(shù)據(jù)備份的工具,支持在線熱備份(備份時(shí)不影響數(shù)據(jù)讀寫(xiě)),是商業(yè)備份工具InnoDB Hotbackup的一個(gè)很好的替代品
    2011-10-10
  • mysql select語(yǔ)句操作實(shí)例

    mysql select語(yǔ)句操作實(shí)例

    這篇文章主要介紹了mysql select語(yǔ)句操作實(shí)例,本文給出了ORDER BY查詢(xún)、GROUP BY查詢(xún)、LIMIT查詢(xún)、UNION等語(yǔ)句的實(shí)例,需要的朋友可以參考下
    2014-12-12
  • MySQL4 File ‘c:\mysql\share\charsets\?.conf’ not found (Errcode: 22)的解決方法

    MySQL4 File ‘c:\mysql\share\charsets\?.conf’ not found (Errc

    File ‘c:\mysql\share\charsets\?.conf’ not found (Errcode: 22) Character set ‘#33′ is not a compiled character set and is not specified in the ‘c:\mysql\share\charsets\Index’ file
    2013-08-08
  • mysql 優(yōu)化日記

    mysql 優(yōu)化日記

    mysql 優(yōu)化日記 使用mysql的朋友可以參考下,大家知道如果mysql優(yōu)化與沒(méi)優(yōu)化性能會(huì)相差不少呢。
    2009-07-07

最新評(píng)論