Heim >Datenbank >MySQL-Tutorial >Informationen zur MySQL-Datenbank Eine Sammlung von Anweisungen zum Hinzufügen, Löschen, Ändern und Abfragen

Informationen zur MySQL-Datenbank Eine Sammlung von Anweisungen zum Hinzufügen, Löschen, Ändern und Abfragen

一个新手
一个新手Original
2017-10-13 10:27:334513Durchsuche

一、基本的sql语句

CRUD操作:
create 创建(添加)
read 读取
update 修改
delete 删除
1. Daten hinzufügen


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. Daten löschen


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


修改所有数据
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. Daten lesen


(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) Bereichsabfrage


select * from car where price9()>40 and price<60
select * from car where price between 40 and 60
(8) Diskrete Abfrage


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) Aggregationsfunktion (statistische Abfrage)


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) Paginierung Abfrage


select * from car limit 0,10  #分页查询,跳过几条数据(0)取几条(10)
规定一个每页显示的条数:m
当前页数:n]
select * from car limit (n-1)*m,m
(11) Deduplizierungsabfrage


select distinct brand from car
(12) Gruppenabfrage

Fragen Sie die Autos in jeder Serie in der Autotabelle ab. Die Menge

select brand,count(*) from car group by brand
Nach der Gruppierung können Sie nur die Spalten- oder Aggregatfunktion abfragen


Rufen Sie den Seriencode ab, für den der Durchschnittspreis der Serie größer als 40 ist

select brand from car group by brand having(加条件) avg(price)>40
Erhalten Sie den Seriencode, dessen maximaler Kraftstoffverbrauch größer als 8 ist


select brand from car group by brand having max(oil)>8

2. Erweiterte Abfrage von MySql (使用外连接)

Join-Abfrage


SELECT t1.Name,t2.Brand_Name FROM brand t2,car t1 -- 笛卡尔乘积
WHERE t2.Brand = t1.Brand
--Mehrere Tabellen-Join-Abfrage


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
--Die Anzahl der Felder in die gemeinsame Abfrage muss gleich sein


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 范围

I:选择在每一组b值相同的数据中对应的a最大的记录的所有信息(可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.)

select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b)

Das obige ist der detaillierte Inhalt vonInformationen zur MySQL-Datenbank Eine Sammlung von Anweisungen zum Hinzufügen, Löschen, Ändern und Abfragen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn