Maison > Article > base de données > À propos de la base de données MySQL Une collection d'instructions d'ajout, de suppression, de modification et de requête
一、基本的sql语句
CRUD操作: create 创建(添加) read 读取 update 修改 delete 删除
1. Ajouter des données
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. Modifier les données
修改所有数据 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. Lire les données
(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) Requête de plage
select * from car where price9()>40 and price<60 select * from car where price between 40 and 60(8) Requête discrète
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) Fonction d'agrégation (requête statistique)
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) Pagination requête
select * from car limit 0,10 #分页查询,跳过几条数据(0)取几条(10) 规定一个每页显示的条数:m 当前页数:n] select * from car limit (n-1)*m,m(11) Requête de déduplication
select distinct brand from car(12) Requête de groupe
Interroger les voitures de chaque série dans la table des voitures La quantité
select brand,count(*) from car group by brandAprès le regroupement, vous ne pouvez interroger que la colonne ou la fonction d'agrégation
Obtenir le code de la série pour laquelle le prix moyen de la série est supérieur à 40
select brand from car group by brand having(加条件) avg(price)>40Obtenir le code de série dont la consommation maximale de carburant est supérieure à 8
select brand from car group by brand having max(oil)>8
2. Requête avancée de MySql (使用外连接
)
SELECT t1.Name,t2.Brand_Name FROM brand t2,car t1 -- 笛卡尔乘积 WHERE t2.Brand = t1.Brand--Requête de jointure de tables multiples
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--Le nombre de champs dans la requête conjointe doit être la même
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
:
<p class="line number57 index56 alt2"><code class="sql spaces"> <span style="font-size: 16px"><strong> </strong></span>
一张表,一旦分组完成后,查询后只能得到组相关的信息。
组相关的信息:(统计信息)
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
范围
Je:选择在每一组b值相同的数据中对应的a最大的记录的所有信息(可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.)
select
a,b,c
from
tablename ta
where
a=(
select
max
(a)
from
tablename tb
where
tb.b=ta.b)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!