Maison >base de données >tutoriel mysql >À propos de la base de données MySQL Une collection d'instructions d'ajout, de suppression, de modification et de requête

À propos de la base de données MySQL Une collection d'instructions d'ajout, de suppression, de modification et de requête

一个新手
一个新手original
2017-10-13 10:27:334512parcourir

一、基本的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 brand
Aprè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)>40
Obtenir 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 (使用外连接)

Requête de jointure


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 = &#39;p001&#39;)

说明:使用外连接

A、 leftouter join

左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。

SQL: selecta.a, a.b, a.c, b.c, b.d, b.f froma LEFT OUT JOINb ONa.a = b.c

B: rightouterjoin:

右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。

C:full/ crossouterjoin

全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。

D : 分组: Groupby :

<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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn