当前位置:网站首页>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'+90Ré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;
边栏推荐
- 软件测试工程师必会的银行存款业务,你了解多少?
- QT -- thread
- [Luogu p3295] mengmengda (parallel search) (double)
- DEJA_VU3D - Cesium功能集 之 055-国内外各厂商地图服务地址汇总说明
- Tips for using pads router
- 第16章 OAuth2AuthorizationRequestRedirectWebFilter源码解析
- Yunna | what are the main operating processes of the fixed assets management system
- FFmpeg学习——核心模块
- 【NOI模拟赛】Anaid 的树(莫比乌斯反演,指数型生成函数,埃氏筛,虚树)
- 20220703 week race: number of people who know the secret - dynamic rules (problem solution)
猜你喜欢

跟着CTF-wiki学pwn——ret2libc1

After summarizing more than 800 kubectl aliases, I'm no longer afraid that I can't remember commands!

GFS分布式文件系統

Biased sample variance, unbiased sample variance

FFmpeg学习——核心模块

20220703 周赛:知道秘密的人数-动规(题解)

Upgrade openssl-1.1.1p for openssl-1.0.2k

Laser slam learning record

C reflection and type

【二叉搜索树】增删改查功能代码实现
随机推荐
行列式学习笔记(一)
[Luogu cf487e] tours (square tree) (tree chain dissection) (line segment tree)
MySql——CRUD
C# 反射与Type
How much do you know about the bank deposit business that software test engineers must know?
GFS Distributed File System
数据库遇到的问题
Convert Chinese into pinyin
【luogu P3295】萌萌哒(并查集)(倍增)
20220703 周赛:知道秘密的人数-动规(题解)
wx. Getlocation (object object) application method, latest version
Shardingsphere source code analysis
Bao Yan notes II software engineering and calculation volume II (Chapter 13-16)
【LeetCode】5. Valid palindrome
18.(arcgis api for js篇)arcgis api for js点采集(SketchViewModel)
GFS分布式文件系統
Zhongjun group launched electronic contracts to accelerate the digital development of real estate enterprises
权限问题:source .bash_profile permission denied
C file and folder operation
Biased sample variance, unbiased sample variance
