首頁  >  文章  >  資料庫  >  關於MySQL資料庫 增刪改查語句集錦

關於MySQL資料庫 增刪改查語句集錦

一个新手
一个新手原創
2017-10-13 10:27:334427瀏覽

一、基本的sql語句

#
CRUD操作:
create 创建(添加)
read 读取
update 修改
delete 删除

1、新增資料

insert into Info values('p009','张三',1,'n001','2016-8-30 12:9:8') ; 
给特定的列添加数据
insert into Info (code,name) values('p010','李四');
自增长列的处理
insert into family values('','p001','数据','T001','数据',1);
insert into 表名 values(值)

2、刪除資料

删除所有数据
delete from family
删除特定的数据
delete from Info where code='p001'
delete from 表名 where 条件

3、修改資料

修改所有数据
update Info set name='徐业鹏' 
修改特定数据
update Info set name='吕永乐' where code='p002' 
修改多列
update Info set name='吕永乐',sex=1 where code='p003' 
update 表名 set 要修改的内容 where 条件  tno =

4、讀取資料

(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' #或的关系
select * from Info where sex=0 and nation='n002' #与的关系
(5)关键字查询(模糊查询)
查所有包含奥迪的汽车
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()>40 and price<60
select * from car where price between 40 and 60

(8)離散查詢

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)取出数据
select * from car where price not in(30,40,50,60)去掉数据

(9)聚合函數(統計查詢)

select count(*) from car
select count(code) from car #取所有的数据条数
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  #分页查询,跳过几条数据(0)取几条(10)
规定一个每页显示的条数:m
当前页数:n]
select * from car limit (n-1)*m,m

(11)去重查詢

select distinct brand from car

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

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

分組之後,只能查詢該列或聚合函數

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

select brand from car group by brand having(加条件) avg(price)>40

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

select brand from car group by brand having max(oil)>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
-- 聯合查詢字段數必須一樣<pre class="brush:sql;toolbar:false">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 = &amp;#39;p001&amp;#39;)</pre>說明:使用外連接A、

left

 outer

join

#左外連接(左連接):結果集幾包括連接表的匹配行,也包括左連接表的所有行。 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

outerjoin

:右外連接(右連接):結果集既包括連接表的匹配連接行,也包括右連接表的所有行。 C:full/cross

outerjoin

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

D:分組:<span style="font-size: 16px"><strong>Group</strong> </span>by:

一張表,一旦分組完成後,查詢後只能得到群組相關的資訊。  #群組相關的資訊:(統計資訊) count,sum,max

,min, #avg  分組的標準)

######################  ######在SQLServer中分組時:不能以text,ntext,image類型的欄位作為分組依據############

 在selecte統計函數中的字段,不能和普通的字段放在一起;

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限制查詢資料範圍時包括了邊界值, not between#不包括

select  * from table1 where time between time1 and time2

#select a,b,c, from table1 where a not between 數值1 and 數值2

#G:四表聯查問題:

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值相同的資料中對應的a最大的記錄的所有資訊(可以用於論壇每月排行榜,每月熱銷產品分析,按科目成績排名,等等.)############

select #a,b,c from表名ta wherea=(select #max(a) from表名tb where  tb.b=ta.b)

以上是關於MySQL資料庫 增刪改查語句集錦的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn