当前位置:网站首页>Mysql - CRUD
Mysql - CRUD
2022-07-06 00:00:00 【Lion TOW】
Table des matières
2.、Filtrer et trier les données
Un.、Requête de base
1、Syntaxe:select Liste des requêtes from Nom du tableau
2、Caractéristiques:
①、La liste des requêtes peut être:Champs du tableau、Valeur constante、Expression、Fonctions
②、Le résultat de la requête est un tableau virtuel
3、 Instruction de requête:
3.1Champs individuels dans la table de requête:
SELECT last_name FROM t_mysql_employees;
3.2:Plusieurs champs dans la table de requête:
SELECT last_name,salary,email FROM t_mysql_employees;
3.3:Tous les champs de la table de requête:( Méthode polyvalente de l'entreprise I , Parce que l'efficacité est plus rapide )
Mode 1:
SELECT
`employee_id`,
`first_name`,
`last_name`,
`phone_number`,
`last_name`,
`job_id`,
`phone_number`,
`job_id`,
`salary`,
`commission_pct`,
`manager_id`,
`department_id`,
`hiredate`
FROM
t_mysql_employees ;
Mode 2:
SELECT * FROM t_mysql_employees;
3.4:Valeurs constantes de requête:
SELECT 100;
SELECT 'john';
Résultats:
3.5:Valeurs constantes de requête:
SELECT 100%98;
Résultats:
3.6:Fonction de requête:
SELECT VERSION();
Résultats:
3.7: Objet de l'alias :
①Facile à comprendre
②Si le champ à interroger a un double nom,L'utilisation d'alias permet de distinguer
3.7.1:Mode 1:Utiliseras:
SELECT 100%98 AS Résultats;
SELECT salary AS "out put" FROM t_mysql_employees;
Résultats des opérations:
3.7.2:Mode 2:Utiliser des espaces:
SELECT last_name Nom de famille,first_name Nom FROM t_mysql_employees;
3.8:Poids mort: Supprimer les champs dupliqués du tableau
SELECT DISTINCT department_id FROM t_mysql_employees;
3.9:+Le rôle du signe:AvecJAVADans+Comparer
javaDans+No.:
①Opérateur,Les deux opérandes sont numériques
②Connecteur,Tant qu'un opérande est une chaîne
mysqlDans+No.: Fonction unique :Opérateur
3.9.1+ Plusieurs cas de No. :
1、Les deux opérandes sont numériques,Ajouter:
select 100+90;
Résultats des opérations:
2、Tant que l'un des côtés est de type caractère, Convertir une valeur de type caractère en valeur numérique ,Si la conversion est réussie,Continuer l'addition:
select '123'+90
Résultats:
3、Si la conversion échoue,Convertit les valeurs de type caractère en0:
select 'john'+90;
Résultats:
4、Tant que l'un d'eux estnull,Le résultat doit êtrenull:
select null+10;
Résultats:
2.、Filtrer et trier les données
1、Filtre par expression conditionnelle:
SELECT * FROM t_mysql_employees WHERE salary>12000;
2、Filtrer par expression logique:
CAS1:Demande de salairezIn10000À20000Nom de l'employé entre、Salaires et primes
SELECT last_name, salary, commission_pct FROM t_mysql_employees WHERE salary>=10000 AND salary<=20000;
3、Requête floue:
3.1、like:
CAS2:Le nom de l'employé de la requête contient des caractèresaInformations sur les employés pour
select * from employees where last_name like '%a%';
3.2、between and:
CAS3:Demander le numéro d'employé à100À120Informations sur les employés entre
SELECT * FROM t_mysql_employees WHERE employee_id <= 120 AND employee_id>=100;
Comparer:
SELECT
*
FROM
t_mysql_employees
WHERE
employee_id BETWEEN 100 AND 120;
3.3、in:Sens:Déterminer si la valeur d'un champ appartient àinUn élément de la Liste
CAS4:..Le numéro de travail de l'employé interrogé est IT_PROG、AD_VP、AD_PRESUn nom d'employé et un numéro d'emploi
SELECT
last_name,
job_id
FROM
t_mysql_employees
WHERE
job_id = 'IT_PROT' OR job_id = 'AD_VP' OR JOB_ID ='AD_PRES'
Comparer:
SELECT
last_name,
job_id
FROM
t_mysql_employees
WHERE
job_id IN( 'IT_PROT' ,'AD_VP','AD_PRES');
3.4、is null is not null:
CAS5:Demandez le nom de l'employé sans prime et le taux de prime; La requête a presque le nom de l'employé et le taux de prime
SELECT
last_name,
commission_pct
FROM
t_mysql_employees
WHERE
commission_pct IS NULL;
SELECT
last_name,
commission_pct
FROM
t_mysql_employees
WHERE
commission_pct IS NOT NULL;
3.6Sécurité égale <=>
CAS6:Demandez le nom de l'employé sans prime et le taux de prime
SELECT
last_name,
commission_pct
FROM
t_mysql_employees
WHERE
commission_pct <=>NULL;
is null Et la sécurité égale la différence :
IS NULL:Il suffit de jugerNULLValeur,Haute lisibilité,Utilisation recommandée
<=> :On peut jugerNULLValeur,Et peut juger les valeurs normales,Faible lisibilité
4、order by Clause:Trier la requête
Syntaxe:select Liste des requêtes from Nom du tableau【where Critères de filtrage】order by Champs ou expressions triés;
Caractéristiques:
1、ascReprésente l'ordre croissant,Peut être omisdescReprésente l'ordre décroissant
2、order byLa clause peut supporter Champ unique、Alias、Expression、Fonctions、Champs multiples
3、order byClause à la fin de l'instruction de requête,Sauf quelimitClause
4.1Trier par un seul champ:
SELECT * FROM t_mysql_employees ORDER BY salary DESC;
4.2Ajouter un filtre réorganiser:
CAS7:Numéro du Département de la requête>=90Informations sur les employés pour,Et par ordre décroissant de numéro d'employé
SELECT * FROM t_mysql_employees WHERE department_id>=90 ORDER BY employee_id DESC;
4.3Trier par expression:
SELECT *,salary*12*(1+IFNULL(commission_pct,0)) FROM t_mysql_employees ORDER BY salary*12*(1+IFNULL(commission_pct,0)) DESC;
4.4Trier par expression:
CAS8:Demander des renseignements sur les employés Augmentation par année
SELECT *,salary*12*(1+IFNULL(commission_pct,0)) Salaire annuel FROM t_mysql_employees ORDER BY Salaire annuel ASC;
4.5Trier par fonction:
CAS9:Demander le nom de l'employé,Et par ordre décroissant de longueur de nom
SELECT LENGTH(last_name),last_name FROM t_mysql_employees ORDER BY LENGTH(last_name) DESC;
4.6Trier par fonction:
CAS10:Demander des renseignements sur les employés,Demande de réduction de salaire,Appuie encore.employee_idOrdre croissant
SELECT * FROM t_mysql_employees ORDER BY salary DESC,employee_id ASC;
Trois、Requête de groupe
Fonction:À des fins statistiques,Aussi appelé fonction d'agrégation ou fonction statistique ou fonction de groupe
Classification: sum Somme、avg Moyenne、max Max. 、min Minimum 、count Nombre calculé
Caractéristiques:1、sum、avgGénéralement utilisé pour traiter les types numériques max、min、countPeut traiter n'importe quel type de
2、Toutes les fonctions de regroupement ci - dessus sont ignoréesnullValeur
3、Oui.distinctMise en œuvre de l'opération de déstockage par colocation
4、count Une description séparée de la fonction est généralement utilisée count(*)Utilisé comme nombre de lignes statistiques
5、Les exigences relatives aux champs à interroger avec les fonctions de regroupement sont les suivantes:group byChamps suivants
1、Utilisation simple:
SELECT SUM(salary) FROM t_mysql_employees;
SELECT AVG(salary) FROM t_mysql_employees;
SELECT MIN(salary) FROM t_mysql_employees;
SELECT MAX(salary) FROM t_mysql_employees;
SELECT COUNT(salary) FROM t_mysql_employees;
2、 Quels types de paramètres supportent :
SELECT SUM(last_name) ,AVG(last_name) FROM t_mysql_employees;
SELECT SUM(hiredate) ,AVG(hiredate) FROM t_mysql_employees;
SELECT MAX(last_name),MIN(last_name) FROM t_mysql_employees;
SELECT MAX(hiredate),MIN(hiredate) FROM t_mysql_employees;
SELECT COUNT(commission_pct) FROM t_mysql_employees;
SELECT COUNT(last_name) FROM t_mysql_employees;
3、Ignorernull:
SELECT SUM(commission_pct) ,AVG(commission_pct),SUM(commission_pct)/35,SUM(commission_pct)/107 FROM t_mysql_employees;
SELECT MAX(commission_pct) ,MIN(commission_pct) FROM t_mysql_employees;
SELECT COUNT(commission_pct) FROM t_mysql_employees;
SELECT commission_pct FROM t_mysql_employees;
4、EtdistinctCollocation:
SELECT SUM(DISTINCT salary),SUM(salary) FROM t_mysql_employees;
SELECT COUNT(DISTINCT salary),COUNT(salary) FROM t_mysql_employees;
5、countDescription détaillée de la fonction:
SELECT COUNT(salary) FROM t_mysql_employees;
SELECT COUNT(*) FROM t_mysql_employees;
SELECT COUNT(1) FROM t_mysql_employees;
6、 Les champs que les fonctions de regroupement interrogent ensemble sont limités employee_id C'est le plus petit. :
SELECT AVG(salary),employee_id FROM t_mysql_employees;
Analyse de cas finale :
Un.、 Tableau exigences structurelles :
-- 1.Formulaire étudiant-t_student
-- sid Étudiant No.,sname Nom de l'étudiant,sage Âge des élèves,ssex Sexe de l'étudiant
-- 2.Tableau des enseignants-t_teacher
-- tid Nombre d'enseignants,tname Nom de l'enseignant
-- 3.Programme de cours-t_course
-- cid Numéro du cours,cname Nom du cours,tid Nom de l'enseignant
-- 4.Feuille de notes-t_score
-- sid Étudiant No.,cid Numéro du cours,score Résultats
-- Formulaire étudiant
insert into t_student values('01' , 'Zhao Lei' , '1990-01-01' , 'Hommes');
insert into t_student values('02' , 'Argent et électricité' , '1990-12-21' , 'Hommes');
insert into t_student values('03' , 'Sun Feng' , '1990-12-20' , 'Hommes');
insert into t_student values('04' , 'Li Yun' , '1990-12-06' , 'Hommes');
insert into t_student values('05' , 'Zhou Mei' , '1991-12-01' , 'Femme');
insert into t_student values('06' , 'Wu Lan' , '1992-01-01' , 'Femme');
insert into t_student values('07' , 'Zheng Zhu' , '1989-01-01' , 'Femme');
insert into t_student values('09' , 'Zhang San' , '2017-12-20' , 'Femme');
insert into t_student values('10' , 'Li - si.' , '2017-12-25' , 'Femme');
insert into t_student values('11' , 'Li - si.' , '2012-06-06' , 'Femme');
insert into t_student values('12' , 'Zhao Liu' , '2013-06-13' , 'Femme');
insert into t_student values('13' , 'Sun Qi' , '2014-06-01' , 'Femme');
-- Tableau des enseignants
insert into t_teacher values('01' , 'Zhang San');
insert into t_teacher values('02' , 'Li - si.');
insert into t_teacher values('03' , 'Wang Wu');
-- Programme de cours
insert into t_course values('01' , 'Langues' , '02');
insert into t_course values('02' , 'Mathématiques' , '01');
insert into t_course values('03' , 'Anglais' , '03');
-- Feuille de notes
insert into t_score values('01' , '01' , 80);
insert into t_score values('01' , '02' , 90);
insert into t_score values('01' , '03' , 99);
insert into t_score values('02' , '01' , 70);
insert into t_score values('02' , '02' , 60);
insert into t_score values('02' , '03' , 80);
insert into t_score values('03' , '01' , 80);
insert into t_score values('03' , '02' , 80);
insert into t_score values('03' , '03' , 80);
insert into t_score values('04' , '01' , 50);
insert into t_score values('04' , '02' , 30);
insert into t_score values('04' , '03' , 20);
insert into t_score values('05' , '01' , 76);
insert into t_score values('05' , '02' , 87);
insert into t_score values('06' , '01' , 31);
insert into t_score values('06' , '03' , 34);
insert into t_score values('07' , '02' , 89);
insert into t_score values('07' , '03' , 98);
2.、Titre:
01)Requête" 01 "Comparaison des cours" 02 "Information et notes des élèves ayant obtenu de bons résultats
select a.*,b.score,c.score from t_student a,t_score b,t_score c where a.sid=b.sid and a.sid=c.sid and b.cid='01' and c.cid='02' and b.score > c.score
02)La requête existe en même temps" 01 "Cours et" 02 "Situation des cours
select a.*,b.cid,c.cid from t_student a,t_score b,t_score c where a.sid=b.sid and a.sid=c.sid and b.cid='01' and c.cid='02'
03)La requête existe" 01 "Cours mais peut ne pas exister" 02 "Situation des cours(Afficher comme s'il n'existe pas null )
select a.*,b.cid,c.cid from t_student a,t_score b,t_score c where a.sid=b.sid and a.sid=c.sid and b.cid='01' and c.cid not in('02')
04)La requête n'existe pas" 01 "Cours mais existence" 02 "Situation des cours
select a.*,b.cid,c.cid from t_student a,t_score b,t_score c where a.sid=b.sid and a.sid=c.sid and c.cid not in('01') and b.cid='02'
05)Le score moyen de la requête est supérieur ou égal à 60 Numéro de l'étudiant et nom de l'étudiant et note moyenne de l'étudiant
select a.sid,a.sname,AVG(b.score) from t_student a,t_score b where a.sid = b.sid GROUP BY b.sid HAVING AVG(b.score)>=60
06)Requête danst_scoreTableau renseignements sur les élèves ayant des notes
select * from t_student where sid not in(select DISTINCT(sid) from t_score)
07)Demander le numéro d'étudiant de tous les étudiants、Nom de l'étudiant、Nombre total de cours sélectionnés、Note globale pour tous les cours(Aucun résultat affiché comme null )
select a.sid,a.sname,COUNT(b.cid),SUM(b.score) from t_student a,t_score b where a.sid = b.sid GROUP BY b.sid
08)Requête「Lee.」Nombre d'enseignants
select count(*) from t_teacher where tname like 'Lee.%'
09)J'ai étudié les requêtes.「Zhang San」Informations sur les élèves enseignés par l'enseignant
select a.*,c.tname from t_student a , t_score b ,t_teacher c ,t_course d where a.sid=b.sid and b.cid = d.cid and d.tid = c.tid and b.cid='01'
10)Demander des renseignements sur les étudiants qui n'ont pas suivi tous les cours
select * from t_student where sid not in(select a.sid from t_student a,t_score b,t_score c,t_score d where a.sid=b.sid and a.sid=c.sid and b.cid='01' and c.cid='02' and d.cid='03')
11)Je n'ai pas appris les requêtes."Zhang San"Nom de l'étudiant pour tout cours donné par l'enseignant
select sname from t_student where sname not in(select a.sname from t_student a , t_score b ,t_teacher c ,t_course d where a.sid=b.sid and b.cid = d.cid and d.tid = c.tid and b.cid='01')
12)Demander le numéro d'étudiant d'un étudiant qui a échoué à deux cours ou plus,Nom et moyenne
select * from t_student a,t_score b where a.sid=b.sid and a.sid in(select c.sid from t_score c where c.score<60 GROUP BY c.sid HAVING COUNT(*)>1)
13)Recherche" 01 "La note du cours est inférieure à 60,Information sur les élèves par ordre décroissant
select a.* from t_student a,t_score b where a.sid=b.sid and b.cid='01' and b.score<60 ORDER BY b.score desc
14)Afficher les notes de tous les cours et les notes moyennes de tous les étudiants par moyenne de haut en bas
select a.*,AVG(b.score) from t_student a,t_score b where a.sid = b.sid GROUP BY b.sid HAVING AVG(b.score)>=0 ORDER BY AVG(b.score) desc
15)Demander la note maximale de chaque section、Notes minimales et moyennes:
Afficher comme suit::Cours ID,Cours name,Le score le plus élevé,Score minimum,Note moyenne,Taux de réussite,Taux moyen,Excellent taux,Le taux d'excellence est de>=60,Moyenne:70-80,Excellent:80-90,Excellent pour:>=90
Numéro du cours et nombre de candidats requis,Résultats de la requête par ordre décroissant de nombre de personnes,Si le nombre est le même,Par numéro de cours
select a.cid,cname,max(a.score)'Le score le plus élevé',min(a.score)'Score minimum',avg(a.score)'Note moyenne',((select count(sid) from t_score where score>=60 and cid=b.cid )/(select count(sid) from t_score where cid=b.cid)) 'Taux de réussite' from t_score a
inner join t_course b on a.cid = b.cid
group by b.cid;
边栏推荐
- 单商户V4.4,初心未变,实力依旧!
- C# 文件与文件夹操作
- 上门预约服务类的App功能详解
- How to rotate the synchronized / refreshed icon (EL icon refresh)
- 云呐|公司固定资产管理系统有哪些?
- 18. (ArcGIS API for JS) ArcGIS API for JS point collection (sketchviewmodel)
- Initialize your vector & initializer with a list_ List introduction
- Shardingsphere source code analysis
- 传输层协议------UDP协议
- Convert Chinese into pinyin
猜你喜欢
Configuring OSPF load sharing for Huawei devices
[binary search tree] add, delete, modify and query function code implementation
Huawei equipment configuration ospf-bgp linkage
Bao Yan notebook IV software engineering and calculation volume II (Chapter 8-12)
PV静态创建和动态创建
Initialize your vector & initializer with a list_ List introduction
【LeetCode】5. Valid palindrome
Research notes I software engineering and calculation volume II (Chapter 1-7)
数据库遇到的问题
20. Migrate freetype font library
随机推荐
Russian Foreign Ministry: Japan and South Korea's participation in the NATO summit affects security and stability in Asia
如何获取localStorage中存储的所有值
[Luogu cf487e] tours (square tree) (tree chain dissection) (line segment tree)
FFMPEG关键结构体——AVFrame
Permission problem: source bash_ profile permission denied
JS 这次真的可以禁止常量修改了!
用列表初始化你的vector&&initializer_list简介
20220703 周赛:知道秘密的人数-动规(题解)
5. Logistic regression
【EF Core】EF Core与C# 数据类型映射关系
C# 文件与文件夹操作
[Luogu p3295] mengmengda (parallel search) (double)
Tools to improve work efficiency: the idea of SQL batch generation tools
China Jinmao online electronic signature, accelerating the digitization of real estate business
Online yaml to CSV tool
[online chat] the original wechat applet can also reply to Facebook homepage messages!
Use mapper: --- tkmapper
USB Interface USB protocol
7.5 装饰器
18.(arcgis api for js篇)arcgis api for js点采集(SketchViewModel)