MySQL之淺談DDL和DML
前言
? ? ? ? 在前面的文章中我們認識了MySQL,以及熟悉了如何使用MySQL的查詢語句
? ? ? ? 數(shù)據(jù)操作增刪查改中的查我們已經(jīng)介紹了,那么本篇文章將會介紹剩下的增刪改以及數(shù)據(jù)庫和表的常用操作,比如創(chuàng)建、刪除、修改。
一、DDL
? ? ? ? 可能有看官老爺會問,什么是DDL啊?這里博主簡單介紹一下,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; #查詢某個數(shù)據(jù)庫的字符集:查詢某個數(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ù)類型 【約束】 );
? ? ? ? 注:最后一句的時候不用加逗號。
1.2.2 查詢數(shù)據(jù)表
#查詢當前數(shù)據(jù)庫中的所有表 SHOW TABLES; #查詢某個數(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ù)據(jù)庫和數(shù)據(jù)表操作的關(guān)鍵字都是一樣的,只不過是在之后表明是對數(shù)據(jù)庫還是對數(shù)據(jù)表進行操作。如果是對數(shù)據(jù)庫進行操作就加上database,如果是對數(shù)據(jù)表進行操作就加上table
1.3 常用數(shù)據(jù)類型
1.4 約束
? ? ? ? ?概念:對表中的數(shù)據(jù)進行限定,保證數(shù)據(jù)的正確性、有效性和完整性。
??????????????????????????????????????????????
1.5 標識列
? ? ? ? 自增
? ? ? ? 在字段后面添加auto_increment
?二、DML
? ? ? ? 介紹完DDL之后,我們再來看DML,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ù)時需注意:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1.列名與值需要一一對應(yīng)。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2.列數(shù)與值數(shù)必須一致。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3.省略列名,則默認給所有列添加值。
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對比:
???????????????????????????????????????????????????????
到此這篇關(guān)于MySQL之淺談DDL和DML的文章就介紹到這了,更多相關(guān)MySQL中DDL和DML內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL學(xué)習(xí)第三天 Windows 64位操作系統(tǒng)下驗證MySQL
MySQL學(xué)習(xí)第三天教大家如何在Windows 64位操作系統(tǒng)下驗證MySQL,感興趣的小伙伴們可以參考一下2016-05-05MySQL無服務(wù)及服務(wù)無法啟動的終極解決方案分享
又是MySQL的問題,之前已經(jīng)遇見過一次本地MySQL服務(wù)無法啟動的情況,現(xiàn)在又出現(xiàn)了,下面這篇文章主要給大家介紹了關(guān)于MySQL無服務(wù)及服務(wù)無法啟動的終極解決方案,需要的朋友可以參考下2022-06-06使用dreamhost空間實現(xiàn)MYSQL數(shù)據(jù)庫備份方法
使用dreamhost空間實現(xiàn)MYSQL數(shù)據(jù)庫備份方法...2007-07-07