MySQL之淺談DDL和DML
前言
? ? ? ? 在前面的文章中我們認(rèn)識(shí)了MySQL,以及熟悉了如何使用MySQL的查詢語句
? ? ? ? 數(shù)據(jù)操作增刪查改中的查我們已經(jīng)介紹了,那么本篇文章將會(huì)介紹剩下的增刪改以及數(shù)據(jù)庫和表的常用操作,比如創(chuàng)建、刪除、修改。
一、DDL
? ? ? ? 可能有看官老爺會(huì)問,什么是DDL啊?這里博主簡(jiǎn)單介紹一下,DDL全名Data Define Languge,從英文上我們可以很輕松的翻譯過來叫數(shù)據(jù)定義語言,即用于庫和表的創(chuàng)建、修改、刪除。
1.1 數(shù)據(jù)庫操作
1.1.1 創(chuàng)建與使用數(shù)據(jù)庫
#創(chuàng)建數(shù)據(jù)庫 CREATE DATABASE 數(shù)據(jù)庫庫名; #創(chuàng)建數(shù)據(jù)庫,先判斷數(shù)據(jù)庫是否存在,再創(chuàng)建 CREATE DATABASE IF NOT EXISTS 數(shù)據(jù)庫庫名; #創(chuàng)建數(shù)據(jù)庫,并指定字符集 CREATE DATABASE 數(shù)據(jù)庫庫名 CHARACTER SET 字符集; #使用數(shù)據(jù)庫 USE 數(shù)據(jù)庫庫名;
1.1.2 查詢數(shù)據(jù)庫
#查詢所有數(shù)據(jù)庫的名稱 SHOW DATABASES; #查詢某個(gè)數(shù)據(jù)庫的字符集:查詢某個(gè)數(shù)據(jù)庫的創(chuàng)建語句 SHOW CREATE DATABASE 數(shù)據(jù)庫庫名; #查詢正在使用的數(shù)據(jù)庫名 SELECT DATABASE();
1.1.3??修改數(shù)據(jù)庫的字符集
#修改數(shù)據(jù)庫的字符集 ALTER DATABASE 數(shù)據(jù)庫庫名 CHARACTER SET 字符集名稱;
1.1.4 刪除數(shù)據(jù)庫
#刪除數(shù)據(jù)庫 DROP DATABASE 數(shù)據(jù)庫庫名; #判斷數(shù)據(jù)庫是否存在,再刪除 DROP DATABASE IF EXISTS 數(shù)據(jù)庫庫名;
1.2 數(shù)據(jù)表操作
1.2.1 創(chuàng)建數(shù)據(jù)表
#創(chuàng)建數(shù)據(jù)表 CREATE TABLE 表名( 列1 數(shù)據(jù)類型 【約束】, 列2 數(shù)據(jù)類型 【約束】, ... 列n 數(shù)據(jù)類型 【約束】 );
? ? ? ? 注:最后一句的時(shí)候不用加逗號(hào)。
1.2.2 查詢數(shù)據(jù)表
#查詢當(dāng)前數(shù)據(jù)庫中的所有表 SHOW TABLES; #查詢某個(gè)數(shù)據(jù)庫中的所有表 SHOW TABLES FROM 數(shù)據(jù)庫庫名; #查詢表結(jié)構(gòu) DESC 表名;
1.2.3 修改數(shù)據(jù)表
#修改表名 ALTER TABLE 表名 RENAME TO 新表名; #修改表的字符集 ALTER TABLE 表名 CHARACTER SET 字符集; #添加一列 ALTER TABLE 表名 ADD 列名 數(shù)據(jù)類型; #修改列名稱、數(shù)據(jù)類型 ALTER TABLE 表名 CHANGE 列名 新列別 新數(shù)據(jù)類型; ALTER TABLE 表名 MODIFY 列名 新數(shù)據(jù)類型; #刪除列 ALTER TABLE 表名 DROP 列名;
1.2.4 刪除數(shù)據(jù)表
#刪除數(shù)據(jù)表 DROP TABLE 數(shù)據(jù)表; #先判斷是否存在數(shù)據(jù)表,再刪除 DROP TABLE IF EXISTS 數(shù)據(jù)表;
? ? ? ? 其實(shí)對(duì)數(shù)據(jù)庫和數(shù)據(jù)表操作的關(guān)鍵字都是一樣的,只不過是在之后表明是對(duì)數(shù)據(jù)庫還是對(duì)數(shù)據(jù)表進(jìn)行操作。如果是對(duì)數(shù)據(jù)庫進(jìn)行操作就加上database,如果是對(duì)數(shù)據(jù)表進(jìn)行操作就加上table
1.3 常用數(shù)據(jù)類型

1.4 約束
? ? ? ? ?概念:對(duì)表中的數(shù)據(jù)進(jìn)行限定,保證數(shù)據(jù)的正確性、有效性和完整性。
??????????????????????????????????????????????
1.5 標(biāo)識(shí)列
? ? ? ? 自增
? ? ? ? 在字段后面添加auto_increment
?二、DML
? ? ? ? 介紹完DDL之后,我們?cè)賮砜碊ML,DML全名Data Manipulate Language,同樣直譯過來就是數(shù)據(jù)處理語言,DML用于添加、刪除、修改數(shù)據(jù)庫記錄,并檢查數(shù)據(jù)完整性。
2.1 添加數(shù)據(jù)
#添加數(shù)據(jù) INSERT INTO 表名(列名1,...) VALUES(值1,...); INSERT INTO 表名 SET 列名1 = 值1,...,列名n = 值n;
? ? ? ? 添加數(shù)據(jù)時(shí)需注意:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1.列名與值需要一一對(duì)應(yīng)。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2.列數(shù)與值數(shù)必須一致。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3.省略列名,則默認(rèn)給所有列添加值。
2.2 修改數(shù)據(jù)
#修改單表數(shù)據(jù) UPDATE 表名 SET 列名1 = 值1,...,列名n = 值n 【W(wǎng)HERE 篩選條件】; #修改多表數(shù)據(jù) UPDATE 表1 別名,表2 別名 SET 字段 = 新值,..., WHERE 連接條件 AND 篩選條件;
? ? ? ??注:如果不加條件,則修改表中的所有數(shù)據(jù)。
2.3 刪除數(shù)據(jù)
#刪除數(shù)據(jù) DELETE FROM 表名 【W(wǎng)HERE 條件】; #如果不加條件,則刪除表中所有記錄。 #刪除表中所有記錄 DELETE FROM 表名; ----不推薦使用。 TRUNCATE TABLE 表名; -----推薦使用,效率高。
? ? ? ??delete與truncate對(duì)比:
????????????????????????????????????????????????
???????
到此這篇關(guān)于MySQL之淺談DDL和DML的文章就介紹到這了,更多相關(guān)MySQL中DDL和DML內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Mysql查詢語句如何實(shí)現(xiàn)無限層次父子關(guān)系查詢
這篇文章主要介紹了Mysql查詢語句如何實(shí)現(xiàn)無限層次父子關(guān)系查詢問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07
Mysql的游標(biāo)的定義使用及關(guān)閉深入分析
于游標(biāo)的用法Mysql現(xiàn)在提供的還很特別,雖然使用起來沒有PL/SQL那么順手,不過使用上大致上還是一樣,本文將詳細(xì)介紹一下,需要了解的朋友可以參考下2012-12-12
mysql搭建主從復(fù)制的實(shí)現(xiàn)步驟
在MySQL集群中,主庫更新會(huì)同步到從庫,但從庫更新不同步到主庫,主從復(fù)制能分?jǐn)倝毫?本文就來介紹一下mysql搭建主從復(fù)制的實(shí)現(xiàn)步驟,感興趣的可以了解一下2024-11-11
MySql如何實(shí)現(xiàn)遠(yuǎn)程登錄MySql數(shù)據(jù)庫過程解析
這篇文章主要介紹了MySql如何實(shí)現(xiàn)遠(yuǎn)程登錄MySql數(shù)據(jù)庫過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08

