本文目錄一覽:
- 1、資料庫語言有哪些
- 2、mysql語句dml全稱是什麼意思
- 3、在SQL的分類中哪些屬於DML,哪些屬於DDL,哪些屬於DCL?
- 4、MySQL(DML數據操作語言,添加/刪除/修改資料庫數據)
- 5、探究MySQL的DML提交事務的意義和DQL是否有
- 6、dml是什麼?
資料庫語言有哪些
數據定義語言(DDL),例如:CREATE、DROP、ALTER等語句。
數據操作語言(DML),例如:INSERT(插入)、UPDATE(修改)、DELETE(刪除)語句。
數據查詢語言(DQL),例如:SELECT語句。(一般不會單獨歸於一類,因為只有一個語句)。
數據控制語言(DCL),例如:GRANT、REVOKE等語句。
事務控制語言(TCL),例如:COMMIT、ROLLBACK等語句。
SQL語言包括四類種主要程序設計語言類別的語句:數據定義語言(DDL),數據操作語言(DML)及數據控制語言(DCL)還有事務控制語言(TCL)。
資料庫語言以記錄集合作為操作對象
所有SQL語句接受集合作為輸入,返回集合作為輸出,這種集合特性允許一條SQL語句的輸出作為另一條SQL語句的輸入,所以SQL語句可以嵌套,這使他具有極大的靈活性和強大的功能,在多數情況下,在其他語言中需要一大段程序實現的功能只需要一個SQL語句就可以達到目的,這也意味著用SQL語言可以寫出非常複雜的語句。
以上內容參考:百度百科-資料庫語言
mysql語句dml全稱是什麼意思
資料庫操縱語言 DML;
資料庫查詢語言 DQL;
資料庫模式定義語言 DDL;
資料庫控制語言 DCL;
在SQL的分類中哪些屬於DML,哪些屬於DDL,哪些屬於DCL?
在一些公司中提交給測試團隊的SQL腳本會劃分為DDL、DML等,但這些概念到底是如何定義的呢?
SQL(Structure Query Language)是資料庫操作的的核心語言,接下來我們通過一張圖來進行分析:
DDL(Data Definition Languages)語句: 即資料庫定義語句,用來創建資料庫中的表、索引、視圖、存儲過程、觸發器等
常用的語句關鍵字有:CREATE,ALTER,DROP,TRUNCATE,COMMENT,RENAME。
DML(Data Manipulation Language)語句: 即數據操縱語句,用來查詢、添加、更新、刪除等
常用的語句關鍵字有:SELECT,INSERT,UPDATE,DELETE,MERGE,CALL,EXPLAIN PLAN,LOCK TABLE,包括通用性的增刪改查。
DCL(Data Control Language)語句: 即數據控制語句,用於授權/撤銷資料庫及其欄位的許可權(DCL is short name of Data Control Language which includes commands such as GRANT and mostly concerned with rights, permissions and other controls of the database system.)。
常用的語句關鍵字有:GRANT,REVOKE。
TCL(Transaction Control Language)語句: 事務控制語句,用於控制事務
常用的語句關鍵字有:COMMIT,ROLLBACK,SAVEPOINT,SET TRANSACTION。
DQL:(Data QueryLanguage)語句: 數據查詢語言
常用的語句關鍵字有:SELECT, FROM, WHERE, ORDER BY, HAVING,ASC|DESC
希望對您有所幫助!~
MySQL(DML數據操作語言,添加/刪除/修改資料庫數據)
插入數據
insert into 表名(欄位) values(『數據』);
insert into 表名1(name,age) select name,age from 表2; #表2 數據信息複製到表1
修改數據
update 表名 set ‘欄位’=’數據’; #修改數據
delect from 表名 where 欄位=值; #刪除數據
truncate table 表名; #清空所有數據 且無法恢復
DQL (數據查詢語言,用來查詢數據)
select 要查詢欄位 from 表名 [where 滿足條件];
[group by 分組依據]
[order by 排序依據]
[limit 限定輸出結果]
select * from 表名; #查詢 表 所有數據
select 欄位 欄位 from 表名; #查詢指定欄位數據
select st.name,st.age,th.name,th.age from st,th; #查詢一個或多個 表中的數據
SELECT 欄位名 FROM 表名 WHERE 條件1 OR 條件2 […OR 條件n];
例:SELECT * FROM students WHERE age20 OR education!=’大專’; #查詢年齡小於20或 者學歷不等於大專的學生信息
SELECT 欄位名 FROM 表名 WHERE 條件1 AND 條件2 […AND 條件n];
例:SELECT * FROM students WHERE age22 AND education=’大專’; # 查詢年齡大於22 且學歷為大專的學生信息
select 欄位 from 表名 where age in (12,17,23); #數據在指定 數據 裡面
select 欄位 from 表名 where age between 23 and 28; #數據在23-28 之間
select * from 表名 order by 欄位名; #排序,升序
select 欄位 from 表名 order by desc; # 欄位降序
select 欄位1,欄位2…… from 表名 group by 分組依據欄位; #每個欄位只顯示一條
例:SELECT id,sname,age,phone,place,GROUP_CONCAT(age,place) FROM students GROUP BY age,place; #查詢學生信息,根據age,place分組並顯示每一組的記 錄
select distinct 欄位 from 表名; #去除結果重複行
例:SELECT DISTINCT age FROM students; # 查詢學生的年齡段情況
selcet 欄位1,欄位2,group_concat(分組依賴欄位名) from 表名 group by 分組依賴欄位名; #查詢每個組中記錄數量,顯示出來(使用關鍵字GROUP BY與GROUP_CONCAT()函數一起使用,可以將每個組中的記錄數量都顯 示出來)
例:selcet id,sname,age,phone,GROUP_CONCAT(age) FROM students GROUP BY age; # 查詢學生id,姓名,年齡,電話,根據age分組並顯示每一組的記錄
SELECT 欄位名 FROM 表名 [其他條件] LIMIT int,int; 參數1是開始讀取的第一條記錄的 編號,參數2是要查詢記錄的個數
例:SELECT * FROM students ORDER BY age LIMIT 0,5; # 查詢學生信息,根據age 排序從第0位開始顯示,只顯示5條
select 欄位名 from 表名where欄位名 regexp ‘匹配方式’;
(^匹配以特定字元或 字元串開頭的記錄,
$匹配以特定字元或 字元串結尾的記錄
[^字符集 合]匹配除「字符集合」以 外的任意一個字元
S1|S2|S3匹配S1 S2 S3中 的任意一個字元串
字元串{N }匹配字元串出現N次
字元串 {M,N}匹配字元串出現至 少M次,最多N次)
聚合函數查詢
select count(欄位名) from 表名; #對於除”*”以外的任何參數,返回所選擇集合中非NULL值的行的數目;對於參數「*」,返回選擇集 合中所有行的數據,包含NULL值的行
例:SELECT COUNT(*) FROM students;
select sum(欄位名) from 表名; #表中某個欄位取值的總和
select avg(欄位名) from 表名; #表中某個欄位取值的平均值
select max(欄位名) from 表名; #表中某個欄位取值的最大值
select min(欄位名) from 表名; #表中某個欄位取值的最小值
連接查詢
a.內連接:列出數據表中與連接條件相匹配的數據行,組合成新記錄【只有滿足條件的記錄才出現在查詢結 果】 內連接的最常見的例子是相等連接,也就是連接後的表中的某個欄位與每個表中的都相同
select 欄位名1,欄位名2 from 表名1 inner join 表名2 where 連接條件;
例:select s.name,d.dname from staff s inner join department d WHERE s.dpid = d.id; # 連接員工表的dpid欄位和部門表的id欄位,並查詢員工姓名和部門名稱
b.外連接:與內連接不同,外連接是指使用OUTER JOIN關鍵字將兩個表連接起來。外連接生成的結果集不僅 包含符合連接條件的行數據 ,而且還包含左表(左外連接時的表) 右表(右外連接時的表)或 兩邊連接表(全外連接時的表)中所有的數據行。
select 欄位名稱 from 表名1 LEFT|RIGHT join 表名2 on 表名1.欄位名1 = 表名2.欄位名2;
例:select s.name,d.dname FROM staff s LEFT JOIN department d ON s.dpid = d.id; #連接員工表的dpid欄位和部門表的id欄位,並查詢員工姓名和部門名稱,如果右表中沒有對應的 連接數據,會自動添加NULL值
例:SELECT s.name,d.dname FROM staff s RIGHT JOIN department d ON s.dpid = d.id; # 連接員工表的dpid欄位和部門表的id欄位,並查詢員工姓名和部門名稱,如果左表中沒有對應 的連接數據,會自動添加NULL值
例:SELECT 欄位名1,欄位名2 FROM 表名1,表名2 WHERE 連接條件 AND 限制條件; 例:SELECT s.name,d.dname FROM staff s,department d WHERE s.dpid = d.id AND s.dpid1; # 查詢員工姓名和部門名稱,條件是員工表的dpid欄位與部門表中的id欄位相等,並且dpid大於1
合併查詢結果
select 欄位名 from 表名 UNION select 欄位名 from 表名; #關鍵字UNION是將所 有的查詢結果合併到一起,並且去除相同記錄
例:SELECT dpid FROM staff UNION SELECT id FROM department; # 查詢員工表dpid與部門表id,如果有重複數據,只顯示一次
select 欄位名 drom 表名 UNION ALL select 欄位名from表名; #關鍵字UNION ALL 則只是簡單地將結果合併到一 起
例:SELECT dpid FROM staff UNION ALL SELECT id FROM department; # 查詢員工表dpid與部門表id,全部顯示
探究MySQL的DML提交事務的意義和DQL是否有
對於DML數據操作,我們必須要記住提交事務,如果autocommit為1的話,當然就不用我們自己操心了!!資料庫會幫我們提交的!!但是在我們的Hibernate和MyBatis等持久層框架中,進行DML操作時我們必須要手動開啟事務,並且手動提交事務!!因為在Hibernate和MyBatis等持久層框架中,它們處理DML語句的時候會自動設置autocommit=0;如果DML中不進行手動提交事務,那麼最後事務就會進行回滾
dml是什麼?
DML是Data Manipulation Language的縮寫,意思是數據操縱語言,是指在SQL語言中,負責對資料庫對象運行數據訪問工作的指令集,以INSERT、UPDATE、DELETE三種指令為核心,分別代表插入、更新與刪除,是開發以數據為中心的應用程序必定會使用到的指令。
1、主條目:INSERT,
INSERT是將數據插入到資料庫對象中的指令,可以插入數據的資料庫對象有數據表以及可更新查看錶兩種。
2、主條目:UPDATE,
UPDATE 指令是依給定條件,將匹配條件的數據表中的數據更新為新的數值。
3、主條目:DELETE,
DELETE 指令為自資料庫對象中刪除數據的指令。
擴展資料:
INSERT的注意事項:
1、插入的數據應與欄位的數據類型相同。
2、數據的大小應在列的規定範圍內,例如:不能將一個長度為 80 的字元串加入到長度為 40 的列中。
3、在 values 中列出的數據位置必須與被加入的列的排列位置相對應。在 mysql 中可以使用 value。
4、字元和日期型數據應包含在單引號中。 MySQL 中也可以使用雙引號做為分隔符。
5、不指定列或使用 null,表示插入空值。
參考資料來源:百度百科-DML
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/185492.html