Recommandations d'apprentissage gratuites : tutoriel mysql(Vidéo )
1. Préparation
1. Installer la base de données MySQL
Script Shell en un seul clic. Déploiement - compilation du code source et installation de MySQL
2 Préparation de l'expérience, configuration de la table de données
mysql -uroot -p show databases; create database train_ticket; use train_ticket; create table REGION(region varchar(10),site varchar(20)); create table FARE(site varchar(20),money int(10),date varchar(15)); desc REGION; desc FARE; insert into REGION values ('south','changsha'); insert into REGION values ('south','nanchang'); insert into REGION values ('north','beijing'); insert into REGION values ('north','tianjin'); insert into FARE values ('changsha',1000,'2021-01-30'); insert into FARE values ('nanchang',700,'2021-01-30'); insert into FARE values ('beijing',1500,'2021-01-30'); insert into FARE values ('tianjin',1200,'2021-01-30'); insert into FARE values ('beijing',2200,'2021-02-05'); select * from REGION; select * from FARE;
2. Instructions SQL avancées (avancées) MySQL
1 SELECT
affiche toutes les données dans un ou plusieurs champs de la table Syntaxe : SELECT field FROM table name
select region from REGION;
2 DISTINCT
Ne pas afficher les données en double (supprimer la duplication)<.> Syntaxe : SELECT DISTINCT field FROM table name
select distinct region from REGION;
Requête conditionnelle
Syntaxe : SELECT field FROM Nom de la table WHERE condition
select site from FARE where money > 1000; select site from FARE where money <br>4, AND, OR<p><strong></strong></p>et (et), ou (ou) <p><strong> Syntaxe : SELECT champ FROM nom de la table WHERE condition 1 ([AND|OR] condition 2)+; </strong></p><pre class="brush:php;toolbar:false">select site from FARE where money > 1000 and (money = 700); select site,money,date from FARE where money >= 500 and (date <br>5, IN<p><strong></strong></p>Afficher les informations sur la valeur connue<p> <strong> Syntaxe : SELECT field FROM nom de la table WHERE field IN ('value 1', 'value 2',...); </strong></p><pre class="brush:php;toolbar:false">select site,money from FARE where money in (700,1000);
Afficher les données dans deux plages de valeurs
Syntaxe : SELECT field FROM table name WHERE field BETWEEN 'value one' and 'value two';
select * from FARE where money between 500 and 1000;
Généralement, les caractères génériques sont utilisés avec LIKE
% : Le signe pour cent représente zéro, un ou plusieurs caractères
_ : Le trait de soulignement représente un seul caractère
Syntaxe : SELECT field FROM table name WHERE field LIKE 'pattern';
8. ORDER BY
Trier par mot-clé Syntaxe : SELECT field FROM table name [WHERE condition] ORDER BY field [ASC,DESC]
#ASC ; : Trier par ordre croissant, la méthode de tri par défaut #DESC : Trier par ordre décroissant
select * from FARE where site like 'be%'; select site,money from FARE where site like '%jin_';
1. Fonctions mathématiques
select * from FARE order by money desc;
select date,money from FARE order by money desc;
abs(x) | 返回 x 的绝对值 |
---|---|
rand() | 返回 0 到 1 的随机数 |
mod(x,y) | 返回 x 除以 y 以后的余数 |
power(x,y) | 返回 x 的 y 次方 |
round(x) | 返回离 x 最近的整数 |
round(x,y) | 保留 x 的 y 位小数四舍五入后的值 |
sqrt(x) | 返回 x 的平方根 |
truncate(x,y) | 返回数字 x 截断为 y 位小数的值 |
ceil(x) | 返回大于或等于 x 的最小整数 |
floor(x) | 返回小于或等于 x 的最大整数 |
greatest(x1,x2…) | 返回集合中最大的值 |
least(x1,x2…) | 返回集合中最小的值 |
select abs(-1),rand(),mod(5,3),power(2,3),round (1.579),round(1.734,2);
2, Fonction d'agrégation
#count(*)包括所有列的行数,在统计结果时,不好忽略值为null 3、字符串函数 SELECT TRIM ([ [位置] [要移除的字符串] FROM ] 字符串); #[位置]:的值可以为 LEADING (起头), TRAILING (结尾), BOTH (起头及结尾)。 4、| | 连接符 如果sql_mode开启开启了PIPES_AS_CONCAT,"||"视为字符串的连接操作符而非或运算符,和字符串的拼接函数Concat相类似,这和Oracle数据库使用方法一样的 5、GROUP BY BY后面的栏位的查询结果进行汇总分组,通常是结合聚合函数一起使用的 语法:SELECT 字段1,SUM(字段2) FROM 表名 GROUP BY 字段1; 6、HAVING 用来过滤由GROUP BY语句返回的记录集,通常与GROUP BY语句联合使用。 语法:SELECT 字段1,SUM(字段2) FROM 表名 GROUP BY 字段1 HAVING(函数条件); 7、别名 字段别名、表格别名 8、子查询 连接表格,在WHERE 子句或HAVING 子句中插入另一个SQL 语句 可以是符号的运算符 也可以是文字的运算符select avg(money) from FARE;
select count(money) from FARE;
select min(money) from FARE;
select max(money) from FARE;
select sum(money) from FARE;
#count(字段)只包括那一行的列数,在统计结果的时候,会忽略列值为null的值
trim()
返回去除指定格式的值
concat(x,y)
将提供的参数 x 和 y 拼接成一个字符串
substr(x,y)
获取从字符串 x 中的第 y 个位置开始的字符串,跟substring()函数作用相同
substr(x,y,z)
获取从字符串 x 中的第 y 个位置开始长度为 z 的字符串
length(x)
返回字符串 x 的长度
replace(x,y,z)
将字符串 z 替代字符串 x 中的字符串 y
upper(x)
将字符串 x 的所有字母变成大写字母
lower(x)
将字符串 x 的所有字母变成小写字母
left(x,y)
返回字符串 x 的前 y 个字符
right(x,y)
返回字符串 x 的后 y 个字符
repeat(x,y)
将字符串 x 重复 y 次
space(x)
返回 x 个空格
strcmp(x,y)
比较 x 和 y,返回的值可以为-1,0,1
reverse(x)
将字符串 x 反转
#[要移除的字符串]:从字串的起头、结尾,或起头及结尾移除的字符串。缺省时为空格。select trim(leading 'na' from 'nanchang');
select trim(trailing '--' from 'nanchang--');
select trim(both '--' from '--nanchang--');
select concat(region,site) from REGION where region = 'south';
select concat(region,' ',site) from REGION where region = 'south';
select substr(money,1,2) from FARE;
select length(site) from FARE;
select replace(site,'ji','--') from FARE;
select upper(site) from FARE;
select lower('HAHAHA');
select left(site,2) from FARE;
select right(site,3) from FARE;
select repeat(site,2) from FARE;
select space(2);
select strcmp(100,200);
select reverse(site) from FARE;
mysql -uroot -p
use train_ticket;
select region || ' ' || site from REGION where region = 'north';
select site || ' ' || money || ' ' || date from FARE;
GROUP BY 有一个原则,就是 SELECT 后面的所有列中,没有使用聚合函数的列,必须出现在GROUP BY后面。select site,sum(money) from FARE group by site;
select site,sum(money),date from FARE group by site order by money desc;
select site,count(money),sum(money),date from FARE group by site order by money desc;
HAVING语句的存在弥补了WHERE关键字不能与聚合函数联合使用的不足。如果被SELECT的只有函数栏,那就不需要GROUP BY子句。select site,count(money),sum(money),date from FARE group by site having sum(money) >=700;
语法:SELECT “表格別名”.“字段1” [AS] “字段1別名” FROM “表格名” [AS] “表格別名”;select RE.region AS reg, count(site) from REGION AS RE group by reg;
select FA.site AS si,sum(money),count(money),date AS da from FARE AS FA group by si;
语法:SELECT 字段1 FROM 表格1 WHERE 字段2 [比较运算符] (SELECT 字段1 FROM 表格2 WHERE 条件)
例:=、>、=、
例:LIKE、IN、BETWEENselect A.site,region from REGION AS A where A.site in(select B.site from FARE AS B where money<blockquote><p><strong>相关免费推荐:<a href="https://www.php.cn/sql/" target="_blank">SQL教程</a></strong></p></blockquote>
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!