MySQL學(xué)習(xí)之DDL數(shù)據(jù)庫定義與操作
前言
SQL是一種強(qiáng)大的語言,根據(jù)其功能可以分為DDL、DML、DQL和DCL四類。其中,DDL用于定義數(shù)據(jù)庫對(duì)象,如數(shù)據(jù)庫、表和字段。本文將深入探討DDL的數(shù)據(jù)庫操作,包括查詢數(shù)據(jù)庫、創(chuàng)建數(shù)據(jù)庫、刪除數(shù)據(jù)庫、切換數(shù)據(jù)庫以及表的查詢、創(chuàng)建、修改和刪除等操作。通過本文,讀者將對(duì)SQL的DDL操作有更加全面的了解,為數(shù)據(jù)庫管理和應(yīng)用提供關(guān)鍵知識(shí)。
一. SQL的分類
SQL語句,根據(jù)其功能,主要分為四類:DDL、DML、DQL、DCL。
分 類 | 全稱 | 說明 |
---|---|---|
DDL | Data Definition Language | 數(shù)據(jù)定義語言,用來定義數(shù)據(jù)庫對(duì)象(數(shù)據(jù)庫,表, 字段) |
DML | Data Manipulation Language | 數(shù)據(jù)操作語言,用來對(duì)數(shù)據(jù)庫表中的數(shù)據(jù)進(jìn)行增刪改 |
DQL | Data Query Language | 數(shù)據(jù)查詢語言,用來查詢數(shù)據(jù)庫中表的記錄 |
DCL | Data Control Language | 數(shù)據(jù)控制語言,用來創(chuàng)建數(shù)據(jù)庫用戶、控制數(shù)據(jù)庫的 訪問權(quán)限 |
二. DDL數(shù)據(jù)庫操作
Data Definition Language,數(shù)據(jù)定義語言,用來定義數(shù)據(jù)庫對(duì)象(數(shù)據(jù)庫,表,字段) 。
2.1 查詢所有數(shù)據(jù)庫
show databases ;
2.2 查詢當(dāng)前數(shù)據(jù)庫
select database() ;
2.3 創(chuàng)建數(shù)據(jù)庫
create database [ if not exists ] 數(shù)據(jù)庫名 [ default charset 字符集 ] [ collate 排序 規(guī)則 ] ;
在同一個(gè)數(shù)據(jù)庫服務(wù)器中,不能創(chuàng)建兩個(gè)名稱相同的數(shù)據(jù)庫,否則將會(huì)報(bào)錯(cuò)。
可以通過if not exists 參數(shù)來解決這個(gè)問題,數(shù)據(jù)庫不存在, 則創(chuàng)建該數(shù)據(jù)庫,如果存在,則不創(chuàng)建。
創(chuàng)建一個(gè)test數(shù)據(jù)庫,并且指定字符集:
create database if not exists test defalut charset utf8mb4;
2.4 刪除數(shù)據(jù)庫
drop database [ if exists ] 數(shù)據(jù)庫名 ;
如果刪除一個(gè)不存在的數(shù)據(jù)庫,將會(huì)報(bào)錯(cuò)。此時(shí),可以加上參數(shù) if exists ,如果數(shù)據(jù)庫存在,再執(zhí)行刪除,否則不執(zhí)行刪除。
2.5 切換數(shù)據(jù)庫
use 數(shù)據(jù)庫名 ;
我們要操作某一個(gè)數(shù)據(jù)庫下的表時(shí),就需要通過該指令,切換到對(duì)應(yīng)的數(shù)據(jù)庫下,否則是不能操作的。
比如,切換到test數(shù)據(jù)庫,執(zhí)行如下SQL:
use test;
3. DDL表操作
3.1 查詢創(chuàng)建
查詢當(dāng)前數(shù)據(jù)庫所有表
show tables;
比如,我們可以切換到sys這個(gè)系統(tǒng)數(shù)據(jù)庫,并查看系統(tǒng)數(shù)據(jù)庫中的所有表結(jié)構(gòu)。
use sys; show tables;
查看指定表結(jié)構(gòu)
desc 表名
通過這條指令,我們可以查看到指定表的字段,字段的類型、是否可以為NULL,是否存在默認(rèn)值等信
息。
查詢指定表的建表語句
show create table;
通過這條指令,主要是用來查看建表語句的,而有部分參數(shù)我們?cè)趧?chuàng)建表的時(shí)候,并未指定也會(huì)查詢
到,因?yàn)檫@部分是數(shù)據(jù)庫的默認(rèn)值,如:存儲(chǔ)引擎、字符集等。
創(chuàng)建表結(jié)構(gòu)
CREATE TABLE 表名( 字段1 字段1類型 [ COMMENT 字段1注釋 ], 字段2 字段2類型 [COMMENT 字段2注釋 ], 字段3 字段3類型 [COMMENT 字段3注釋 ], ...... 字段n 字段n類型 [COMMENT 字段n注釋 ] ) [ COMMENT 表注釋 ] ;
注意: […] 內(nèi)為可選參數(shù),最后一個(gè)字段后面沒有逗號(hào) !!!
3.2 數(shù)據(jù)類型
數(shù)值類型
字符串類型
日期時(shí)間類型
3.3 修改
添加字段
ALTER TABLE 表名 ADD 字段名 類型 (長(zhǎng)度) [ COMMENT 注釋 ] [ 約束 ];
修改數(shù)據(jù)類型
ALTER TABLE 表名 MODIFY 字段名 新數(shù)據(jù)類型 (長(zhǎng)度);
**修改字段名和字段類型 **
ALTER TABLE 表名 CHANGE 舊字段名 新字段名 類型 (長(zhǎng)度) [ COMMENT 注釋 ] [ 約束 ];
刪除字段
ALTER TABLE 表名 DROP 字段名;
修改表名
ALTER TABLE 表名 RENAME TO 新表名;
3.4 刪除
刪除表
DROP TABLE [ IF EXISTS ] 表名;
可選項(xiàng) IF EXISTS 代表,只有表名存在時(shí)才會(huì)刪除該表,表名不存在,則不執(zhí)行刪除操作(如果不加該參數(shù)項(xiàng),刪除一張不存在的表,執(zhí)行將會(huì)報(bào)錯(cuò))。
刪除指定表, 并重新創(chuàng)建表
TRUNCATE TABLE 表名;
注意: 在刪除表的時(shí)候,表中的全部數(shù)據(jù)也都會(huì)被刪除。
全篇總結(jié)
本文詳細(xì)介紹了SQL中DDL的數(shù)據(jù)庫操作,包括查詢數(shù)據(jù)庫、創(chuàng)建數(shù)據(jù)庫、刪除數(shù)據(jù)庫、切換數(shù)據(jù)庫以及表的查詢、創(chuàng)建、修改和刪除等操作。讀者通過本文可以了解到如何使用SQL語句來管理數(shù)據(jù)庫對(duì)象,為數(shù)據(jù)庫操作提供了基礎(chǔ)知識(shí)和實(shí)際操作指導(dǎo)。
到此這篇關(guān)于MySQL DDL數(shù)據(jù)庫定義與操作的文章就介紹到這了,更多相關(guān)MySQL DDL數(shù)據(jù)庫定義與操作內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Windows下MySql錯(cuò)誤代碼1045的解決方法
這篇文章主要介紹了Windows下MySql錯(cuò)誤代碼1045的解決方法,文中還包含了2個(gè)Linux下的解決方法,需要的朋友可以參考下2014-06-06通過實(shí)例學(xué)習(xí)MySQL分區(qū)表原理及常用操作
我們?cè)囍胍幌? 在生產(chǎn)環(huán)境中什么最重要? 我感覺在生產(chǎn)環(huán)境中應(yīng)該沒有什么比數(shù)據(jù)跟更為重要. 那么我們?cè)撊绾伪WC數(shù)據(jù)不丟失、或者丟失后可以快速恢復(fù)呢?只要看完這篇大家應(yīng)該就能對(duì)MySQL中數(shù)據(jù)備份有一定了解2019-05-05MySQL數(shù)據(jù)庫表分區(qū)注意事項(xiàng)大全【推薦】
這篇文章主要介紹了MySQL數(shù)據(jù)庫表分區(qū)注意事項(xiàng)相關(guān)內(nèi)容,比較全面,這里分享給大家,需要的朋友可以參考。2017-10-10mysql查看表結(jié)構(gòu)的三種方法總結(jié)
這篇文章主要介紹了mysql查看表結(jié)構(gòu)的三種方法總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07MySQL單表多關(guān)鍵字模糊查詢的實(shí)現(xiàn)方法
MySQL單表多關(guān)鍵字模糊查詢實(shí)現(xiàn)方法是很多人都非常想知道的一個(gè)問題,那么,究竟采用什么方法,才能實(shí)現(xiàn)MySQL單表多關(guān)鍵字模糊查詢呢?2011-03-03MySQL中的insert set 和 insert values用法
這篇文章主要介紹了MySQL中的insert set 和 insert values用法說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08MySql下關(guān)于時(shí)間范圍的between查詢方式
這篇文章主要介紹了MySql下關(guān)于時(shí)間范圍的between查詢方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07VS2019連接mysql8.0數(shù)據(jù)庫的教程圖文詳解
這篇文章主要介紹了VS2019連接mysql8.0數(shù)據(jù)庫的教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05