MySQL資料庫操作語法詳解

2021-01-08 一入代碼深似海

1 資料庫創建

建庫語句如下:

CREATE DATABASE|SCHEMA會創建一個給定名稱的資料庫,只有擁有CREATE權限才能使用該語法。不加IF NOT EXISTS時,如果需要創建資料庫已經同名存在則會報錯。

create_specification中指定了創建資料庫特性。資料庫特性存放在資料庫目錄下的db.opt文件中,一般在資料庫安裝目錄的data/db_name/子目錄下。CHARACTER SET子句指定了資料庫默認的字符集,COLLATE子句指定了資料庫默認校對。

MySQL的資料庫以資料庫名為目錄下包含與表對應的文件的方式實現的,例如我的資料庫安裝目錄是/usr/local/mysql,並且創建了一個test資料庫,裡面有個test表。那麼在/usr/local/mysql/data目錄下的test子目錄就是test資料庫對應的目錄,該子目錄下的db.opt就指定了test資料庫的特性。其中test.frm就是test表的數據文件。在數據的初創時是沒有表存在的,它只會在data目錄下生成資料庫目錄並在其中生成db.opt文件。

如果在data目錄下使用mkdir命令直接創建一個目錄,伺服器也會把它當作一個資料庫,並且在SHOW DATABASES中也可以輸出。

MySQL對於資料庫的個數並沒做限制,但是需要考慮部署服務的文件系統可能對子目錄的個數有限制。

2 資料庫刪除

DROP DATABASE會刪除所有的數據表並刪除資料庫,使用該命令應該擁有DROP權限。DROP SCHEMA是同等命令。注意:當一個資料庫被刪除時,該資料庫對應的用戶權限不會自動刪除,需要手工刪除。

IF EXISTS就是為了防止所要刪除的資料庫不存在而報錯。

如果當前默認的資料庫被刪除了,那麼默認資料庫不會被設置,也就是在執行DATABASE()函數會返回NULL。如下圖所示:

如果資料庫上存在連結使用該命令,那麼連結庫和原始庫都會被刪除。

DROP DATABASE命令會返回刪除的表的個數,即.frm文件的個數。該命令會刪除資料庫目錄以及目錄下的所有文件,包括:.BAK、.DAT、.HSH、.MRG、.MYD、.MYI、.TRG、 .TRN、.cfg、.db、.frm、.ibd、.ndb、 .par以及.opt等。

如果目錄下還存在其他不能刪除的文件,那麼該資料庫目錄是不會被刪除的,這是需要手動去刪除資料庫目錄下的文件,然後在重新執行DROP DATABASE命令。

刪除資料庫時,不會刪除資料庫中的臨時表,臨時表在創建它的會話結束後會自動刪除。

3 資料庫修改

ALTER DATABASE或ALTER SCHEMA可以用來改變資料庫的所有屬性,也就是資料庫目錄下的db.opt文件,該命令需要ALTER權限才能執行。如果命令中省略了db_name,則對默認資料庫進行操作。

1> 國家語言選擇

CHARACTER SET子句會修改資料庫默認的字符集,COLLATE子句會修改資料庫校驗。第10章字符集、校驗、解碼中討論了這些東西。

可以通過使用SHOW CHARACTER SET和SHOW COLLATION語句查看哪些字符集和校驗碼可以使用。如果修改了資料庫默認編碼與校驗,之前存儲過程和函數必須被刪除並重新創建。

2> 5.1後的升級

UPGRADE DATA DIRECTORY子句用與對5.1版本之前的資料庫數據文件目錄進行重命名。該子句使用有以下條件:

1) 從5.1之前的版本升級到5.1;

2) 如果數據目錄名中存在特殊的字符,該命令可以將命名升級資料庫當前的編碼。

3) 通過mysqlcheck命令使用;

例如,如果MySQL5.0中有資料庫名為a-b-c,數據目錄名也被定義為a-b-c,對於某些文件系統來說這是不安全的。在MySQL5.1及之後,這樣的數據目錄名會被編碼為a@002db@002dc。

當系統升級為5.1或之後版本後,a-b-c的名稱會顯示為#mysql50#a-b-c,此時需要使用#mysql50前綴來使用該名稱。UPGRADE DDAT DIRECTORY NAME就能是伺服器重新對該目錄名稱進行編碼,如下代碼:

然後就可以使用資料庫名a-b-c,不用添加#mysql50#前綴了。

注意:5.7.6版本已經啟用了該子句並且在之後版本會刪除該子句。如果需要使用該方式,可以現將資料庫升級到5.1,然後再升級到5.7.6之後。

相關焦點

  • MYSQL資料庫操作案例
    MySQL 創建資料庫CREATE DATABASE 資料庫名;以下命令簡單的演示了創建資料庫的過程,數據名為 RUNOOB:[root@host]# mysql -u root -p >Enter password:****** # 登錄後進入終端mysql> create DATABASE RUNOOB;MySQL 刪除資料庫drop database <資料庫名>;
  • python的mysql資料庫操作
    前言上一篇文章我們一起學習了MySQLdb模塊的安裝和資料庫連接,連接了資料庫以後就可以執行資料庫的各種語句了,今天我們再接著學習資料庫的sql語句操作。python的mysql資料庫執行sql語句1.獲取mysql版本#!
  • MySQL的基本語法之查看、創建、刪除資料庫
    昨天已分享了具體的安裝方法及步驟(5.7版本以上),若是有要了解需要安裝的步驟如何操作,可以留言,我單獨再整理一份關於mysql5.5版本的安裝。今天和大家一起學習MySQL的一些基本語法:查看、創建、刪除資料庫。
  • php怎麼操作mysqli
    之前寫了篇文章介紹php操作mysql有網友給小編留言說現在都流行的是mysqli連結資料庫。小編今天介紹一下php操作mysqli的常見語法。和mysql有比較多類似的地方。我們先看看mysqli怎麼連接資料庫。
  • MySQL資料庫的mysqldump完全備份、binlog的增量備份與還原
    只適合備份50G以下的數據mysqldump對innodb存儲引擎支持熱備mysqldump對myisam存儲引擎只支持溫備七、 導出數據的語法及選項:語法: mysqldump [options] [db_name [tbl_name …]
  • MySQL基礎語法,DDL,DML,DQL基礎
    資料庫的基本概念1. 資料庫的英文單詞: DataBase 簡稱 : DB2. 什麼是資料庫?* 用於存儲和管理數據的倉庫。3. 資料庫的特點:1. 持久化存儲數據的。其實資料庫就是一個文件系統2. 方便存儲和管理數據3.
  • PHP操作MySQL-訪問資料庫「程式設計師培養之路第四十八天」
    連接MySQL伺服器建立與MySQL資料庫的連接,使用mysqli_connect()函數,它的語法格式如下:mysqli mysqli_connect ([string server[, string username[, string password[, string dbname[, int port[, string socket]]]
  • 花費三個月整理的MySQL系列文檔 誠意之作 看完不虧
    第1篇:MySQL的一些基礎知識這是mysql系列第1篇。本文主要內容1. 背景介紹2. 資料庫基礎知識介紹3. mysql的安裝4. mysql常用的一些命令介紹5.環境:mysql5.7.25,cmd命令中進行演示。 DDL:Data Define Language數據定義語言,主要用來對資料庫、表進行一些管理操作。如:建庫、刪庫、建表、修改表、刪除表、對列的增刪改等等。文中涉及到的語法用[]包含的內容屬於可選項,下面做詳細說明。
  • PHP怎麼連接Mysql資料庫? - php中文網
    PHP連接mysql資料庫是PHP新手們必須要掌握的一項技能,只要掌握了PHP對資料庫進行增刪改查等操作,就可以寫出一些簡單且常見的程序。如留言表,新聞頁等。本篇文章主要給大家詳細介紹PHP連接Mysql資料庫的兩種常用方法。
  • MySQL資料庫的操作步驟
    MySQL 資料庫的操作步驟資料庫操作的常用指令1.查看已有庫>show databases;2.創建庫(指定字符集)>create database 庫名 [character set utf8];```sqle.g.
  • MySQL資料庫安裝及使用入門
    其中:Config Type(配置文件類型)Development Machine 是指開發伺服器Server Machine 伺服器Dedicated Machine 專用伺服器僅作為資料庫伺服器使用TCP/IP是指開放的埠,mysql 默認的埠是3306。D. 設置密碼會提示密碼的安全狀態E.
  • 小技巧:你知道MySQL資料庫的備份和還原是如何操作的嗎?
    MySQL資料庫的備份和還原有兩種方式:1、命令行的方式來進行備份和還原2、圖形化工具的方式進行備份和還原一、命令行的方式來進行備份和還原語法:> 備份:mysqldump -u用戶名 -p密碼 > 保存的路徑 還原:1、登錄資料庫 2、創建資料庫 3、使用資料庫 4、執行文件 :source 文件路徑
  • MySQL教程之MySQL定時備份資料庫
    一、MySQL數據備份1.1、 mysqldump命令備份數據在MySQL中提供了命令行導出資料庫數據以及文件的一種方便的工具mysqldump,我們可以通過命令行直接實現資料庫內容的導出dump,首先我們簡單了解一下mysqldump命令用法:#MySQLdump常用mysqldump -u root -p --databases
  • 一篇文章搞定MySQL資料庫的庫操作
    系統資料庫information_schema :虛擬庫,不佔用磁碟空間,存儲的是資料庫啟動後的一些參數,如用戶表信息、列信息、權限信息、字符信息等mysql:核心資料庫,裡面包含用戶、權限、關鍵字等信息。
  • MySQL資料庫常用命令詳解
    除了用第三方軟體管理MySQL資料庫外,MySQL本身也提供了管理資料庫的操作命令,可以在CentOS終端直接使用MySQL命令,用於MySQL資料庫的創建、表的管理、SQL查詢等管理操作。從圖3-45可以看出,執行該命令後,終端窗口顯示了當前MySQL下有四個資料庫,分別是information_schema\mysql\performance_schema\sys\,這四個資料庫都是系統資料庫。
  • Java操作MySQL資料庫模板
    Java操作MySQL資料庫模板#日常分享所得,歡迎關注哦~#本模板非常適用於正在學習計算機專業的大學生,在做課程設計時,難免會遇到需要使用到資料庫的情況。這裡強烈推薦使用MySQL資料庫,為什麼呢?簡單說,社會上大部分的大中小型網絡公司都在使用MySQL,成本低是一個很大的原因!
  • python3.8操作(插入,刪除)mysql/MariaDB資料庫
    01主題大家好,我是義縣遊學電子科技.今天來跟大家說一個工作中常用到的操作,python3.8操作MariaDB資料庫.因為MariaDB屬於mysql分支因此資料庫命令語句都是通用的非常方便.mysql/Mariadb的資料庫驅動包mysql-connector,使用命令pip install mysql-connector即可.要在管理員權限下打開cmd窗口進行哦!
  • 使用docker備份mysql資料庫
    所以,資料庫備份在生產上是必不可少的,下面我們來了解下在docker環境下mysql資料庫的備份是如何做的。一、資料庫容器假設我們在伺服器上部署了一個mysql docker容器實例,容器名為mysql,如下圖
  • 資料庫及Mysql入門,附詳細安裝教程
    什麼是資料庫資料庫(Database)就是一個用來存放資料庫的倉庫,是按照一定的數據結構來組織、存儲的資料庫伺服器、資料庫管理系統、資料庫、表、記錄之間的關係資料庫的種類MySQL版本第一個數字5:主版本號第三個數字29:發行系列的版本號SQL語言介紹SQL,英文全稱structured query language,中文意思為結構化語言查詢,是一種對關係型資料庫中的數據進行定義和操作的語言方法
  • Django 學習筆記之 如何設置和操作 mysql 資料庫
    我們之前學習了 在 django項目如何設置和操作sqlite 資料庫。在這一節中,我們會藉由舊有思路來設置和操作 mysql 資料庫。同時,我們會學習基本的mysql的SQL 命令,方便我們進行 mysql 資料庫 的基本操作。