本文摘自PHP中文网,作者一个新手,侵删。
一、基本的sql语句
1 2 3 4 5 | CRUD操作:
create 创建(添加)
read 读取
update 修改
delete 删除
|
1、添加数据
1 2 3 4 5 6 | 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、删除数据
1 2 3 4 5 | 删除所有数据
delete from family
删除特定的数据
delete from Info where code= 'p001'
delete from 表名 where 条件
|
3、修改数据
1 2 3 4 5 6 7 | 修改所有数据
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 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | (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)范围查询
1 2 | select * from car where price9()>40 and price<60
select * from car where price between 40 and 60
|
(8)离散查询
1 2 3 | 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)聚合函数(统计查询)
1 2 3 4 5 6 | 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)分页查询
1 2 3 4 | select * from car limit 0,10 #分页查询,跳过几条数据(0)取几条(10)
规定一个每页显示的条数:m
当前页数:n]
select * from car limit (n-1)*m,m
|
(11)去重查询
1 | select distinct brand from car
|
(12)分组查询
查询汽车表中,每个系列下汽车的数量
1 | select brand, count (*) from car group by brand
|
分组之后,只能查询该列或聚合函数
取该系列价格平均值大于40的系列代号
1 | select brand from car group by brand having (加条件) avg (price)>40
|
取该系列油耗最大值大于8的系列代号
1 | select brand from car group by brand having max (oil)>8
|
二、MySql的高级查询(使用外连接
)
连接查询
1 2 | SELECT t1. Name ,t2.Brand_Name FROM brand t2,car t1
WHERE t2.Brand = t1.Brand
|
-- 多表连接查询
1 2 | 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
|
-- 联合查询 字段数必须一样
1 2 3 4 5 | 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
:
左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。
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
:
右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。
C:
full
/
cross
(
outer
)
join
:
全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。
D:分组:
Group
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
tablename ta
where
a=(
select
max
(a)
from
tablename tb
where
tb.b=ta.b)
以上就是关于MySQL数据库 增删改查语句集锦 的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
wdcp上如果修改mysql密码
mysql禁止外部访问解决方案
mysql如何新建权限设置密码
实例详解mysql记录耗时的sql语句
php之mysql数据库优化策略的详解
mysql 修改编码失败怎么办
mysql 查询结果取交集的方法
mysql having用法是什么?
mysql怎么删除注册表
浅谈mysql清空表数据的两种方式和区别
更多相关阅读请进入《mysql》频道 >>
机械工业出版社
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。
转载请注明出处:木庄网络博客 » 关于MySQL数据库 增删改查语句集锦