日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql中的dml操作_MySQL操作语言[DML]

發布時間:2025/4/5 数据库 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql中的dml操作_MySQL操作语言[DML] 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

insert操作insert?into?table_name?(field1,?field2,...fieldN)?values?(value1,?value2,...valueN);如果ID值設置為自增長,列名及其對應的值可以省略不寫,但是下面這種寫法除外,且值要與列名嚴格對應insert?into?table_name?values?(value1,?value2,...valueN);對于數據,字符串需要添加“ ”,數字不用。列名則都不需要

update操作update?table_name?set

field1=new-value1,

field2=new-value2,

field3=new-value3

[where?Clause]where條件如果不加,影響所有行

delete操作delete?from?table_name?[where?Clause]where條件如果不加,影響所有行

select操作select?column_name,column_name?from?table_name?[where?Clause]

select?column_name,column_name?from?table_name?[where?Clause?in?(value1,value2,value3)]

//列舉查詢

select?column_name,column_name?from?table_name?[where?Clause?between?value1?and?value2]

//區間查詢

select?column_name,column_name?from?table_name?[where?Clause?like?"%X%"]

//模糊查詢

查詢模型在查詢時可以將列看做變量進行運算select?列1,?列2,?列1+列2?from?table_name?[where?Clause]?[offset?M]?[limit?N]從表中選出指定的屬性值組成一個新表,即為投影;上面的查詢語句屬于廣義投影;

where和后面的語句構成一個布爾表達式,解析查詢語句時,數據庫從頭到尾根據where條件遍歷整張表的每條記錄,如果結果為1,則輸出相應的記錄結果,如果結果為0,則查看下一條記錄,直至查詢出結果。例如,查詢條件[where 1]將輸出整張表,[where 0]將什么也查不到。

奇怪的NUllselect?列1,?列2?from?table_name?where?列名?is?null

select?列1,?列2?from?table_name?where?列名?is?not?nullnull表示空值,但null=null為假

在設計表時,應盡量不允許使用null

group分組統計max()????//求最大值

count()??//求行數

avg()????//求平均數

min()????//求最小值

sum()????//求總和

查詢格式select?列1,?列2,?sum(列1+列2)?from?table_name?group?by?列3group查詢時會先根據where條件對數據進行排序,所以,分組查詢是是比較耗費數據庫系統資源的,應盡量避免

having篩選結果集select?列1,?列2,?sum(列1+列2)?as?X?from?table_name?having?[X?>?100]在上式中?sum(列1+列2) 就是結果集,然后重命名為 X ,兩者可以看做近似相等,但也有不同之處。

where 是對數據表中的原始數據進行篩選,因為X并不是數據表中的原始項,所以會報錯。

having 是對已經篩選出來的結果集進行再次篩選,如果將其替換為 where 數據庫無法執行。

習題練習

查詢出2門及2門以上不及格者的平均成績select?name,sum(score<60)?as?gk,avg(score)?as?pj?form?resule?group?by?name?having?gk>=2先查所有人所有科的平均分,再利用having篩選誰掛科量在2門及其以上

order排序select?列1,?列2?from?table_name?order?by?列3?[asc/desc],列4?[asc/desc]默認為升序排列【asc】

上式表示先根據列3進行排序,然后結果集再根據列4進行排序,例如,先按照國籍排序,同一國人再按照年齡排序

limit用法select?列1,?列2?from?table_name?order?by?列3?[asc/desc],列4?[asc/desc]?limit?[偏移量,取出條數]偏移量表示跳過前幾條數據,如果為0則可以不寫

子句查詢陷阱where?->?group?by?->?having?->?order?by?->?limit5種子句查詢有嚴格的順序,不允許隨意變換

where型子查詢select?列1,?列2?from?table_name?where?列1?=?(select?max(列1)?from?table_name)內層查詢結果作為外層查詢條件

from型子查詢select?列1?from?(select?列1,?列2?from?table_name?order?by?列3)

exists型子查詢select?*?from?表1?where?exists?(select?*?from?表2?where?表1.列1?=?表2.列2)

內連接查詢boy表girl表

hidbnamehidgname

A屌絲B小龍女

B楊過C祝英臺

C梁山伯D腐女

編號一樣表示夫妻關系。要求聯表查詢出具有夫妻關系的人物名稱。select?boy.hid,boy.name,girl.his,girl.name

from

boy?inner?join?girl

on?b.hid?=?girl.hid

執行結果如下boy.hidboy.namegirl.hidgirl.name

B楊過B小龍女

C梁山伯C祝英臺

左右連接查詢 【繼續沿用上面兩張表】左連接:以左表為基準,到右表找匹配的數據,找不到匹配的用NULL補齊。查詢格式如下select?boy.hid,boy.name,girl.his,girl.name

from

boy?left?join?girl

on?b.hid?=?girl.hidboy.hidboy.namegirl.hidgirl.name

A屌絲nullnull

B楊過B小龍女

C梁山伯C祝英臺右連接:以右表為基準,到左表找匹配的數據,找不到匹配的用NULL補齊。查詢格式如下select?boy.hid,boy.name,girl.his,girl.name

from

boy?right?join?girl

on?b.hid?=?girl.hidboy.hidboy.namegirl.hidgirl.name

B楊過B小龍女

C梁山伯C祝英臺

nullnullD腐女可以連續進行連表查詢,但是在寫查詢語句時,需要將對連續連接的表起別名,加以區分,避免沖突。

union查詢union查詢就是把2條或多條的sql查詢結果。合并成一個結果集sql1???-->???N?行

sql2???-->???M?行

sql1?union?sql2??-->?N+M?行使用前提:各語句取出的列數相同,列名稱未必要求一致,列名稱會使用是一條sql的列名稱為準

使用union時,完全相等的行將會被合并【合并時比較耗時的操作】,一般不讓union進行合并,使用“union all”可以避免。

union子句中,不用寫order by ,因為合并后得到的最后結果可以order by,子句order by失去意義

總結

以上是生活随笔為你收集整理的mysql中的dml操作_MySQL操作语言[DML]的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。