最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

一、什么是DDL操作

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

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

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

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

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

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

在這里插入圖片描述

三、使用步驟

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

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

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

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

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

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

use database_name;

在這里插入圖片描述

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

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

show databases;

在這里插入圖片描述

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

在這里插入圖片描述

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

對數(shù)據(jù)庫進行修改只能修改其字符編碼集和字符校驗集。
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();

那有沒有修改數(shù)據(jù)庫名字的操作呢? 以前有,但是被移除了,因為不安全!
如果想要修改數(shù)據(jù)庫的名字,應(yīng)該使用mysqldump進行備份!

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

在這里插入圖片描述

需要注意的是,這里的/*!40100 DEFAULT CHARACTER SET gbk / /!80016 DEFAULT ENCRYPTION=‘N’ */并不是注釋,而是可變選項!

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

mysqldump

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

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

在這里插入圖片描述

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

在這里插入圖片描述

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

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

在這里插入圖片描述

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

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

在這里插入圖片描述

這時我們就可以看到文件內(nèi)的并沒有創(chuàng)建數(shù)據(jù)庫的指令。
所以我們在使用source導(dǎo)入的時候,就需要先創(chuàng)建一個數(shù)據(jù)庫(新名字)再進行導(dǎo)入。

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

在這里插入圖片描述

最后也是被拷貝進來了。

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

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

drop database database_name;

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

對表的增刪查改

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

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

1.

還可以加入 if not exists

在這里插入圖片描述

還可以加入comment 添加描述

在這里插入圖片描述

再復(fù)雜點還可以指定字符編碼集、字符校驗集還有存儲引擎

在這里插入圖片描述

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)

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

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

在這里插入圖片描述

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

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

alter table table_name modify field_name type;

在這里插入圖片描述

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

alter table table_name change field_name newfield_name type;

在這里插入圖片描述

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

alter table table_name drop field_name;

在這里插入圖片描述

刪除表

drop table table_name;

在這里插入圖片描述

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

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

相關(guān)文章

  • 理解MySQL查詢優(yōu)化處理過程

    理解MySQL查詢優(yōu)化處理過程

    MySQL查詢優(yōu)化需要經(jīng)過解析、預(yù)處理和優(yōu)化三個步驟。在這些過程中,都有可能發(fā)生錯誤。本篇文章不會深入討論錯誤處理,而是幫助理解 MySQL 執(zhí)行查詢的方式,以便可以寫出更好的查詢語句。
    2021-05-05
  • MySQL啟動連接的命令以及與PHP程序連接的基本語法

    MySQL啟動連接的命令以及與PHP程序連接的基本語法

    這篇文章主要介紹了MySQL啟動連接的命令以及與PHP程序連接的基本語法,簡單講述了PHP中調(diào)用MySQL的方法,需要的朋友可以參考下
    2015-11-11
  • 解析MySQL中DELETE語句中別名的使用

    解析MySQL中DELETE語句中別名的使用

    這篇文章主要為大家介紹了MySQL中DELETE語句中別名的使用解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • MySQL Cluster集群的初級部署教程

    MySQL Cluster集群的初級部署教程

    這篇文章主要介紹了MySQL Cluster集群的初級部署教程, MySql Cluster可以利用充分利用節(jié)點服務(wù)器的多進程做到高可用,需要的朋友可以參考下
    2016-02-02
  • MySQL線程處于Opening tables的問題解決方法

    MySQL線程處于Opening tables的問題解決方法

    在本篇文章里小編給大家分享了關(guān)于MySQL線程處于Opening tables的問題解決方法,有興趣的朋友們學(xué)習(xí)下。
    2019-01-01
  • MySQL新建用戶中的%到底包不包括localhost?

    MySQL新建用戶中的%到底包不包括localhost?

    操作MySQL的時候發(fā)現(xiàn),有時只建了%的賬號,可以通過localhost連接,有時候卻不可以,網(wǎng)上搜索也找不到滿意的答案,干脆手動測試一波
    2019-02-02
  • mysql問題之slow log中出現(xiàn)大量的binlog dump記錄的解決方法

    mysql問題之slow log中出現(xiàn)大量的binlog dump記錄的解決方法

    今天在查看mysql中發(fā)現(xiàn)比較慢,然后我使用了slow log,發(fā)現(xiàn)出現(xiàn)了大量的binlog dump記錄,下面我來給大家整理一下這個問題的解決辦法
    2013-09-09
  • MySQL UPDATE 語句的非標(biāo)準(zhǔn)實現(xiàn)代碼

    MySQL UPDATE 語句的非標(biāo)準(zhǔn)實現(xiàn)代碼

    這篇文章主要介紹了MySQL UPDATE 語句的非標(biāo)準(zhǔn)實現(xiàn)代碼,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • Mysql的MHA實戰(zhàn)指南

    Mysql的MHA實戰(zhàn)指南

    本文系統(tǒng)講解 MHA 的組件、原理與作用,通過環(huán)境準(zhǔn)備、依賴配置、軟件安裝及監(jiān)控部署的完整實戰(zhàn),為 MySQL 高可用架構(gòu)搭建提供可落地的實施方案,感興趣的朋友跟隨小編一起看看吧
    2025-12-12
  • windows 環(huán)境下 MySQL 8.0.13 免安裝版配置教程

    windows 環(huán)境下 MySQL 8.0.13 免安裝版配置教程

    這篇文章主要介紹了windows 環(huán)境下 MySQL 8.0.13 免安裝版配置教程,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧
    2018-12-12

最新評論

崇明县| 奎屯市| 安陆市| 民权县| 高邑县| 湟中县| 永胜县| 兴业县| 济南市| 兖州市| 尤溪县| 甘肃省| 和顺县| 赤水市| 商南县| 大安市| 梓潼县| 子长县| 碌曲县| 萨嘎县| 米脂县| 延吉市| 广饶县| 衡东县| 全州县| 离岛区| 拉孜县| 称多县| 长宁县| 南部县| 横山县| 武穴市| 淮北市| 珲春市| 区。| 河曲县| 凤山市| 德安县| 广西| 和田县| 莱州市|