mysql資料庫dml語句,mysql dml語句

本文目錄一覽:

Mysql有幾種語言類型?

3種。分別是資料庫定義語句DDL,資料庫操作語句DML,資料庫定義語句DCL

mysql資料庫

MySQL資料庫一般指MySQL,MySQL是一個關係型資料庫管理系統,由瑞典MySQL AB 公司開發。

mysql是目前網站以及APP應用上用得較多的一個開源的關係型資料庫系統,可以對數據進行保存,分段化的數據保存,也可以對其數據進行檢索,查詢等功能的資料庫。

默認的mysql資料庫中存有一個庫這個就是mysql的系統資料庫,可以對其保存系統的數據包括mysql資料庫的信息,資料庫root賬號,普通賬號,以及資料庫的名稱,還有資料庫的一些表還有一些數字型的數據類型結構都會有所保存。

mysql資料庫的優點

(1)MySQL資料庫是用C和C++語言編寫的,並且使用了多種編輯器進行測試,以保證源碼的可移植性。

(2)支持多個操作系統例如:Windows、Linux、Mac OS等等。

(3)支持多線程,可以充分的利用CPU資源。

(4)為多種編程語言提供API,包括C語言、Java、PHP、Python語言等。

(5)MySQL優化了SQL演算法,有效的提高了查詢速度。

(6)MySQL內提供了用於管理,檢查以及優化資料庫操作的管理工具。

(7)它能夠作為一個單獨的應用程序應用在客戶端伺服器網路環境中,也可以作為一個庫嵌入到其他的軟體中並提供多種語言支持。

資料庫語言有哪些

數據定義語言(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語言可以寫出非常複雜的語句。

以上內容參考:百度百科-資料庫語言

在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,全部顯示

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/180043.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-22 05:10
下一篇 2024-11-22 05:10

相關推薦

  • 如何修改mysql的埠號

    本文將介紹如何修改mysql的埠號,方便開發者根據實際需求配置對應埠號。 一、為什麼需要修改mysql埠號 默認情況下,mysql使用的埠號是3306。在某些情況下,我們需…

    編程 2025-04-29
  • Python3支持多行語句

    Python3是一種高級編程語言,開發人員可以輕鬆地使用該語言編寫簡單到複雜的代碼。其中Python3支持多行語句,方便開發人員編寫複雜的代碼,提高代碼的可讀性和可維護性。 一、使…

    編程 2025-04-29
  • Python 常用資料庫有哪些?

    在Python編程中,資料庫是不可或缺的一部分。隨著互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的資料庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • openeuler安裝資料庫方案

    本文將介紹在openeuler操作系統中安裝資料庫的方案,並提供代碼示例。 一、安裝MariaDB 下面介紹如何在openeuler中安裝MariaDB。 1、更新軟體源 sudo…

    編程 2025-04-29
  • Python for循環語句列印九九乘法表

    本篇文章將詳細介紹如何使用Python的for循環語句列印九九乘法表。列印九九乘法表是我們初學Python時經常練習的一項基礎操作,也是編寫Python程序的基本能力之一。 1、基…

    編程 2025-04-29
  • Python中while語句和for語句的區別

    while語句和for語句是Python中兩種常見的循環語句,它們都可以用於重複執行一段代碼。然而,它們的語法和適用場景有所不同。本文將從多個方面詳細闡述Python中while語…

    編程 2025-04-29
  • Python操作MySQL

    本文將從以下幾個方面對Python操作MySQL進行詳細闡述: 一、連接MySQL資料庫 在使用Python操作MySQL之前,我們需要先連接MySQL資料庫。在Python中,我…

    編程 2025-04-29
  • Python中自定義函數必須有return語句

    自定義函數是Python中最常見、最基本也是最重要的語句之一。在Python中,自定義函數必須有明確的返回值,即必須要有return語句。本篇文章將從以下幾個方面對此進行詳細闡述。…

    編程 2025-04-29
  • 資料庫第三範式會有刪除插入異常

    如果沒有正確設計資料庫,第三範式可能導致刪除和插入異常。以下是詳細解釋: 一、什麼是第三範式和範式理論? 範式理論是關係資料庫中的一個規範化過程。第三範式是範式理論中的一種常見形式…

    編程 2025-04-29
  • MySQL遞歸函數的用法

    本文將從多個方面對MySQL遞歸函數的用法做詳細的闡述,包括函數的定義、使用方法、示例及注意事項。 一、遞歸函數的定義 遞歸函數是指在函數內部調用自身的函數。MySQL提供了CRE…

    編程 2025-04-29

發表回復

登錄後才能評論