一、基本的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 = &#39;p001&#39;)</pre>
說明:使用外連接
A、
(outer
)
:#左外連接(左連接):結果集幾包括連接表的匹配行,也包括左連接表的所有行。
SQL:
select
a.a, a.b, a.c, b.c, b.d, b.f
from
a
OUT JOIN
b
#ON
a.a = b.c
#B:##right
(outer) join
:右外連接(右連接):結果集既包括連接表的匹配連接行,也包括右連接表的所有行。
C:
full
/cross
(outer) join
#:
全外連接:不僅包含符號連接表的符合行,還包括兩個連接表中的所有記錄。
D:分組:<span style="font-size: 16px"><strong>Group</strong> </span>by
:
# # 一張表,一旦分組完成後,查詢後只能得到群組相關的資訊。
#群組相關的資訊:(統計資訊)
count
,
sum
,max
,min,
#avg 分組的標準)
在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
範圍
select
#a,b,c
from
# 表名ta
where
# a=(
select
#max
(a)
from
# 表名tb
where
tb.b=ta.b)
以上是關於MySQL資料庫 增刪改查語句集錦的詳細內容。更多資訊請關注PHP中文網其他相關文章!