關(guān)于MySQL數(shù)據(jù)庫 增刪改查語句集錦

一、基本的sql語句

CRUD操作:  create?創(chuàng)建(添加)  read?讀取  update?修改  delete?刪除

1、添加數(shù)據(jù)

insert?into?Info?values('p009','張三',1,'n001','2016-8-30?12:9:8')?;?  給特定的列添加數(shù)據(jù)  insert?into?Info?(code,name)?values('p010','李四');  自增長列的處理  insert?into?family?values('','p001','數(shù)據(jù)','T001','數(shù)據(jù)',1);  insert?into?表名?values(值)

2、刪除數(shù)據(jù)

刪除所有數(shù)據(jù)  delete?from?family  刪除特定的數(shù)據(jù)  delete?from?Info?where?code='p001'  delete?from?表名?where?條件

3、修改數(shù)據(jù)

修改所有數(shù)據(jù)  update?Info?set?name='徐業(yè)鵬'?  修改特定數(shù)據(jù)  update?Info?set?name='呂永樂'?where?code='p002'?  修改多列  update?Info?set?name='呂永樂',sex=1?where?code='p003'?  update?表名?set?要修改的內(nèi)容?where?條件??tno?=

4、讀取數(shù)據(jù)

(1)簡單讀取,查詢所有列(*)??所有行(沒有加條件)  select?*?from?Info  (2)讀取特定列  select?code,name,class?from?Info  (3)條件查詢  select?*?from?Info?where?code='p003'  (4)多條件查詢  select?*?from?Info?where?code='p003'?or?nation='n002'?#或的關(guān)系  select?*?from?Info?where?sex=0?and?nation='n002'?#與的關(guān)系  (5)關(guān)鍵字查詢(模糊查詢)  查所有包含奧迪的汽車  select?*?from?car?where?name?like?'%奧迪%';?#百分號%代表任意多個字符?  查以'皇冠'開頭的所有汽車  select?*?from?car?where?name?like?'皇冠%';  查詢汽車名稱中第二個字符是'馬'的  select?*?from?car?where?name?like?'_馬%';?#下劃線_代表任意一個字符  (6)排序查詢  select?*?from?car?order?by?powers??#默認升序排列  select?*?from?car?order?by?powers??#升序asc?降序?desc  先按brand升序排,再按照price降序排  select?*?from?car?order?by?brand,price?desc

(7)范圍查詢

select?*?from?car?where?price9()&gt;40?and?price<p>(8)離散查詢<br></p><pre class="brush:sql;toolbar:false">select?*?from?car?where?price=30?or?price=40?or?price=50?or?price=60;  select?*?from?car?where?price?in(30,40,50,60)取出數(shù)據(jù)  select?*?from?car?where?price?not?in(30,40,50,60)去掉數(shù)據(jù)

(9)聚合函數(shù)(統(tǒng)計查詢)

select?count(*)?from?car  select?count(code)?from?car?#取所有的數(shù)據(jù)條數(shù)  select?sum(price)?from?car?#求價格總和  select?avg(price)?from?car?#求價格的平均值  select?max(price)?from?car?#求最大值  select?min(price)?from?car?#求最小值

(10)分頁查詢

select?*?from?car?limit?0,10??#分頁查詢,跳過幾條數(shù)據(jù)(0)取幾條(10)  規(guī)定一個每頁顯示的條數(shù):m  當前頁數(shù):n]  select?*?from?car?limit?(n-1)*m,m

(11)去重查詢

select?distinct?brand?from?car

(12)分組查詢
查詢汽車表中,每個系列下汽車的數(shù)量

select?brand,count(*)?from?car?group?by?brand

分組之后,只能查詢該列或聚合函數(shù)

取該系列價格平均值大于40的系列代號

select?brand?from?car?group?by?brand?having(加條件)?avg(price)&gt;40

取該系列油耗最大值大于8的系列代號

select?brand?from?car?group?by?brand?having?max(oil)&gt;8

二、mysql的高級查詢(使用外連接

?連接查詢

SELECT?t1.Name,t2.Brand_Name?FROM?brand?t2,car?t1?--?笛卡爾乘積  WHERE?t2.Brand?=?t1.Brand

— 多表連接查詢

SELECT?t1.Name,t2.Brand_Name,t3.prod_name??FROM?car?t1?LEFT?JOIN?brand?t2?ON?t1.Brand?=?t2.Brand  LEFT?JOIN?productor?t3?ON?t2.Prod?=?t3.Prod

— 聯(lián)合查詢 字段數(shù)必須一樣

SELECT?`Name`,Price?FROM?car?  UNION  ?SELECT?Brand_Name,Brand_Memo?FROM?brand  --?子查詢(***)  SELECT?*?FROM?car?WHERE?car.brand?in?(SELECT?Brand?FROM?brand?WHERE?Prod?=?'p001')

說明:使用外連接

A、left?(outer) join:

左外連接(左連接):結(jié)果集幾包括連接表的匹配行,也包括左連接表的所有行。

SQL: select?a.a, a.b, a.c, b.c, b.d, b.f from?a LEFT?OUT?JOIN?b ON?a.a = b.c

B:right?(outer) join:

右外連接(右連接):結(jié)果集既包括連接表的匹配連接行,也包括右連接表的所有行。

C:full/cross?(outer) join:

全外連接:不僅包括符號連接表的匹配行,還包括兩個連接表中的所有記錄。

D:分組:Group?by:

??一張表,一旦分組完成后,查詢后只能得到組相關(guān)的信息。

?組相關(guān)的信息:(統(tǒng)計信息) count,sum,max,min,avg??分組的標準)

? 在SQLServer中分組時:不能以text,ntext,image類型的字段作為分組依據(jù)

?在selecte統(tǒng)計函數(shù)中的字段,不能和普通的字段放在一起;

E:外連接查詢(表名1:a 表名2:b)

select?a.a, a.b, a.c, b.c, b.d, b.f from?a LEFT?OUT?JOIN?b ON?a.a = b.c

F:between的用法,between限制查詢數(shù)據(jù)范圍時包括了邊界值,not?between不包括

select?* from?table1 where?time?between?time1 and?time2

select?a,b,c, from?table1 where?a not?between?數(shù)值1 and?數(shù)值2

G:四表聯(lián)查問題:

select?* from?a left?inner?join?b on?a.a=b.b right?inner?join?c on?a.a=c.c inner?join?d on?a.a=d.d where?…..

H::前10條記錄

select?top?10 * form table1 where?范圍

I:選擇在每一組b值相同的數(shù)據(jù)中對應(yīng)的a最大的記錄的所有信息(可以用于論壇每月排行榜,每月熱銷產(chǎn)品分析,按科目成績排名,等等.)

select?a,b,c from?tablename ta where?a=(select?max(a) from?tablename tb where?tb.b=ta.b)

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊10 分享