Maison base de données SQL Quelles sont les instructions de requête SQL ?

Quelles sont les instructions de requête SQL ?

Dec 10, 2020 pm 02:48 PM
instruction de requête SQL

Instruction de requête SQL : 1. Afficher la structure de la table [SQL>DESC emp]; 2. Interroger toutes les colonnes [SQL>SELECT * FROM emp]; ; 5. Utiliser des expressions arithmétiques ; 6. Utiliser des symboles d'opérations logiques.

Quelles sont les instructions de requête SQL ?

Recommandé (gratuit) : tutoriel SQL 

Instruction de requête SQL :

1. Instruction de requête simple

1. 🎜>

SQL>DESC emp;
Copier après la connexion

2. Interrogez toutes les colonnes

SQL>SELECT * FROM emp;
Copier après la connexion

3 Interrogez la colonne spécifiée

SQL>SELECT empmo, ename, mgr FROM emp;
SQL>SELECT DISTINCT mgr FROM emp; 只显示结果不同的项
Copier après la connexion

4. ligne spécifiée

SQL>SELECT * FROM emp WHERE job='CLERK';
Copier après la connexion

5. Utilisez des expressions arithmétiques

SQL>SELECT ename, sal*13+nvl(comm,0)  FROM emp; 
nvl(comm,1)的意思是,如果comm中有值,则nvl(comm,1)=comm; comm中无值,则nvl(comm,1)=0。
SQL>SELECT ename, sal*13+nvl(comm,0) year_sal FROM emp; (year_sal为别名,可按别名排序)
SQL>SELECT * FROM emp WHERE hiredate>'01-1月-82';
Copier après la connexion

6. Utilisez l'opérateur like (%,_)

% représente un ou plusieurs caractères, _ représente un caractère, [charlist] représente n'importe quel caractère unique dans la colonne de caractères, [^charlist] ou [!charlist] représente n'importe quel caractère unique ne figurant pas dans la colonne de caractères.

SQL>SELECT * FROM emp WHERE ename like 'S__T%';
Copier après la connexion

7. Utiliser dans

SQL>SELECT * FROM emp WHERE job IN ('CLERK','ANALYST');
Copier après la connexion

8. Interrogez l'instruction indiquant que le contenu du champ est vide/non vide

SQL>SELECT * FROM emp WHERE mgr IS/IS NOT NULL;
Copier après la connexion

9. Utilisez des symboles d'opération logique

SQL>SELECT * FROM emp WHERE (sal>500 or job='MANAGE') and ename like 'J%';
Copier après la connexion

10. Triez les résultats de la requête par la valeur du champ

SQL>SELECT * FROM emp ORDER BY deptno, sal DESC; (按部门升序,并按薪酬降序)
Copier après la connexion

11. . Cas d'utilisation ... quand ... puis ... fin pour traiter les résultats de la requête

SQL>SELECT CASE a WHEN "original_a" THEN "新命名Aa" WHEN "original_b" THEN "新命名Bb" END AS XXX;
Copier après la connexion
Sélectionnez le champ a dans le tableau et nommez-le XXX Lorsque le contenu de a est original_a, le. le contenu est affiché sous la forme "Nouveau nom Aa".

Tableau original

Résultats de la requête
abc
original_a......
original_b......

XXX
新命名Aa
新命名Bb
12. Formater les données de date

SQL>SELECT DATE_FORMAT(start_time,"%Y-%m-%d") as "时间";
Copier après la connexion

2 . Requête complexe

1. Regroupement des données (max, min, moy, sum, count)

SQL>SELECT MAX(sal),MIN(age),AVG(sal),SUM(sal) from emp;
SQL>SELECT * FROM emp where sal=(SELECT MAX(sal) from emp));
SQL>SELEC COUNT(*) FROM emp;
Copier après la connexion

2. statistiques de groupe des résultats de la requête) et clause have (utilisée pour limiter les résultats d'affichage des groupes)

SQL>SELECT deptno,MAX(sal),AVG(sal) FROM emp GROUP BY deptno;
SQL>SELECT deptno, job, AVG(sal),MIN(sal) FROM emp group by deptno,job having AVG(sal)<2000;
Copier après la connexion
Pour un résumé du regroupement des données :

    a. ne peut apparaître que dans la liste de sélection, ayant, commande par clause (ne peut pas apparaître dans où)
  • b Si l'instruction select contient également group by, ayant, commande par, alors leur commande. est grouper par, avoir, commander par.
  • c. S'il y a des colonnes, des expressions et des fonctions de regroupement dans la colonne de sélection, alors ces colonnes et expressions doivent apparaître dans la clause group by, sinon une erreur se produira. Autrement dit : le nom de la colonne dans la clause SELECT doit être une colonne de regroupement ou une fonction de colonne
Requête multi-table

SQL>SELECT e.name,e.sal,d.dname FROM emp e, dept d WHERE e.deptno=d.deptno order by d.deptno;
SQL>SELECT e.ename,e.sal,s.grade FROM emp e,salgrade s WHER e.sal BETWEEN s.losal AND s.hisal;
Select a.*, b.x, c.y from a
  left outer join (Select * from tablex where condition1)b
  on a.id=b.id
  left outer join (Select * from tabley where condition2)c
  on a.id=c.id
where condition3;
Copier après la connexion

4. Auto-jointure (faisant référence à la requête de connexion de la même table)

SQL>SELECT er.ename, ee.ename mgr_name from emp er, emp ee where er.mgr=ee.empno;
Copier après la connexion

5 Sous-requête (instruction select intégrée dans d'autres instructions SQL, également appelée requête imbriquée) <🎜. >

5.1 Sous-requête sur une seule ligne

SQL>SELECT ename FROM emp WHERE deptno=(SELECT deptno FROM emp where ename=&#39;SMITH&#39;);
Copier après la connexion

Interrogez les noms des personnes du même service que Smith dans la table de requête. Étant donné que le résultat renvoyé n'est qu'une seule ligne, utilisez "=" pour connecter l'instruction de sous-requête

5.2 Sous-requête multi-lignes

SQL>SELECT ename,job,sal,deptno from emp WHERE job IN (SELECT DISTINCT job FROM emp WHERE deptno=10);
Copier après la connexion

Interrogez les noms et les emplois des employés ayant le même emploi que le numéro de service 10 dans le tableau, salaire, numéro de département. Comme le résultat renvoyé comporte plusieurs lignes, « IN » est utilisé pour connecter les instructions de sous-requête.

5.3 Utilisez ALL

SQL>SELECT ename,sal,deptno FROM emp WHERE sal> ALL (SELECT sal FROM emp WHERE deptno=30);或SQL>SELECT ename,sal,deptno FROM emp WHERE sal> (SELECT MAX(sal) FROM emp WHERE deptno=30);
Copier après la connexion

pour interroger le nom, le salaire et le numéro de service des employés dont le salaire est supérieur à celui de tous les employés portant le numéro de service 30. Les deux instructions ci-dessus sont fonctionnellement identiques, mais en termes d'efficacité d'exécution, la fonction sera beaucoup plus élevée.

5.4 Utilisez ANY

SQL>SELECT ename,sal,deptno FROM emp WHERE sal> ANY (SELECT sal FROM emp WHERE deptno=30);或SQL>SELECT ename,sal,deptno FROM emp WHERE sal> (SELECT MIN(sal) FROM emp WHERE deptno=30);
Copier après la connexion

pour interroger le nom, le salaire et le numéro de département de l'employé dont le salaire est supérieur à celui de tout employé portant le numéro de département 30 (à condition que le salaire soit supérieur à un certain employé) . Les deux instructions ci-dessus sont fonctionnellement identiques, mais en termes d'efficacité d'exécution, la fonction sera beaucoup plus élevée.

5.5 Sous-requête multi-colonnes

SQL>SELECT * FROM emp WHERE (job, deptno)=(SELECT job, deptno FROM emp WHERE ename=&#39;SMITH&#39;);
Copier après la connexion

5.6 Utilisation d'une sous-requête dans la clause from

 SQL>SELECT emp.deptno,emp.ename,emp.sal,t_avgsal.avgsal FROM emp,(SELECT emp.deptno,avg(emp.sal) avgsal FROM emp GROUP BY emp.deptno) t_avgsal where emp.deptno=t_avgsal.deptno AND emp.sal>t_avgsal.avgsal ORDER BY emp.deptno;
Copier après la connexion

5.7 Requête de pagination

Chaque ligne de données de la base de données a un Le numéro de ligne correspondant est appelé rownum.

SQL>SELECT a2.* FROM (SELECT a1.*, ROWNUM rn FROM (SELECT * FROM emp ORDER BY sal) a1 WHERE ROWNUM<=10) a2 WHERE rn>=6;
Copier après la connexion

Pour spécifier la colonne de requête, trier les résultats de la requête, etc., il vous suffit de modifier la sous-requête la plus interne.

5.8 Créer une nouvelle table avec les résultats de la requête

SQL>CREATE TABLE mytable (id,name,sal,job,deptno) AS SELECT empno,ename,sal,job,deptno FROM emp;
Copier après la connexion

5.9 Requête de fusion (union union, intersection, union all union+intersection, moins différence définie)

SQL>SELECT ename, sal, job FROM emp WHERE sal>2500 UNION(INTERSECT/UNION ALL/MINUS) SELECT ename, sal, job FROM emp WHERE job=&#39;MANAGER&#39;;
Copier après la connexion

Fusionner le l'efficacité d'exécution de la requête est bien supérieure à celle des requêtes logiques telles que et et ou.

5.10 Utilisez une sous-requête pour insérer des données

SQL>CREATE TABLE myEmp(empID number(4), name varchar2(20), sal number(6), job varchar2(10), dept number(2));
Copier après la connexion

Créez d'abord une table vide

SQL>INSERT INTO myEmp(empID, name, sal, job, dept) SELECT empno, ename, sal, job, deptno FROM emp WHERE deptno=10;
Copier après la connexion

Insérez ensuite les données avec le numéro de département 10 dans la table emp dans la nouvelle table myEmp pour réaliser une requête par lots de données.

5.11 utilise une requête pour mettre à jour les données du tableau

SQL>UPDATE emp SET(job, sal, comm)=(SELECT job, sal, comm FROM emp where ename=&#39;SMITH&#39;) WHERE ename=&#39;SCOTT&#39;;
Copier après la connexion

Recommandations d'apprentissage gratuites associées :

programmation php
(vidéo)

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment utiliser SQL DateTime Comment utiliser SQL DateTime Apr 09, 2025 pm 06:09 PM

Le type de données DateTime est utilisé pour stocker les informations de date et de temps de haute précision, allant de 0001-01-01 00:00:00 à 9999-12-31 23: 59: 59.99999999, et la syntaxe est DateTime (Precision), lorsque la précision spécifie la précision après le point de déviation (0-7), et le défaut est 3. Les fonctions de conversion, mais doivent être conscientes des problèmes potentiels lors de la conversion de précision, de plage et de fuseaux horaires.

Comment créer des tables avec SQL Server à l'aide de l'instruction SQL Comment créer des tables avec SQL Server à l'aide de l'instruction SQL Apr 09, 2025 pm 03:48 PM

Comment créer des tables à l'aide de instructions SQL dans SQL Server: Ouvrez SQL Server Management Studio et connectez-vous au serveur de base de données. Sélectionnez la base de données pour créer le tableau. Entrez l'instruction Créer la table pour spécifier le nom de la table, le nom de la colonne, le type de données et les contraintes. Cliquez sur le bouton Exécuter pour créer le tableau.

Comment utiliser SQL IF Comment utiliser SQL IF Apr 09, 2025 pm 06:12 PM

Les instructions SQL IF sont utilisées pour exécuter conditionnellement les instructions SQL, avec la syntaxe comme: if (condition) alors {instruction} else {instruction} end if;. La condition peut être n'importe quelle expression SQL valide, et si la condition est vraie, exécutez la clause alors; Si la condition est fausse, exécutez la clause ELSE. Si les déclarations peuvent être imbriquées, permettant des contrôles conditionnels plus complexes.

Que signifie la pagination SQL? Que signifie la pagination SQL? Apr 09, 2025 pm 06:00 PM

SQL Paging est une technologie qui recherche de grands ensembles de données dans des segments pour améliorer les performances et l'expérience utilisateur. Utilisez la clause limite pour spécifier le nombre d'enregistrements à ignorer et le nombre d'enregistrements à retourner (limite), par exemple: Sélectionnez * From Table Limit 10 Offset 20; Les avantages incluent des performances améliorées, une expérience utilisateur améliorée, des économies de mémoire et un traitement simplifié des données.

Utilisation de Declare dans SQL Utilisation de Declare dans SQL Apr 09, 2025 pm 04:45 PM

L'instruction Declare dans SQL est utilisée pour déclarer des variables, c'est-à-dire les espaces réservés qui stockent les valeurs variables. La syntaxe est: Declare & lt; Nom de la variable & gt; & lt; type de données & gt; [Par défaut & lt; valeur par défaut & gt;]; où & lt; nom variable & gt; est le nom de variable, & lt; type de données & gt; est son type de données (tel que varchar ou entier), et [par défaut & lt; valeur par défaut & gt;] est une valeur initiale facultative. DÉCLARATIONS Les déclarations peuvent être utilisées pour stocker les intermédiaires

Comment juger l'injection SQL Comment juger l'injection SQL Apr 09, 2025 pm 04:18 PM

Les méthodes pour juger l'injection de SQL incluent: la détection des entrées suspectes, la visualisation des instructions SQL originales, l'utilisation d'outils de détection, la visualisation des journaux de la base de données et l'exécution des tests de pénétration. Une fois l'injection détectée, prenez des mesures pour corriger les vulnérabilités, vérifier les correctifs, surveiller régulièrement et améliorer la sensibilisation des développeurs.

Plusieurs méthodes courantes pour l'optimisation SQL Plusieurs méthodes courantes pour l'optimisation SQL Apr 09, 2025 pm 04:42 PM

Les méthodes d'optimisation SQL courantes incluent: Optimisation d'index: créer des requêtes appropriées accélérées par l'index. Optimisation de la requête: utilisez le type de requête correct, les conditions de jointure appropriées et les sous-requêtes au lieu de jointures multiples. Optimisation de la structure des données: sélectionnez la structure de table appropriée, type de champ et essayez d'éviter d'utiliser des valeurs nulles. Cache de requête: Activez le cache de requête pour stocker les résultats de requête fréquemment exécutés. Optimisation du pool de connexion: utilisez des pools de connexion pour multiplexer les connexions de la base de données. Optimisation des transactions: Évitez les transactions imbriquées, utilisez des niveaux d'isolement appropriés et les opérations par lots. Optimisation du matériel: mise à niveau du matériel et utilisez le stockage SSD ou NVME. Maintenance de la base de données: Exécutez régulièrement les tâches de maintenance d'index, optimiser les statistiques et nettoyer les objets inutilisés. Requête

Comment éviter l'injection SQL Comment éviter l'injection SQL Apr 09, 2025 pm 05:00 PM

Pour éviter les attaques d'injection SQL, vous pouvez prendre les étapes suivantes: Utilisez des requêtes paramétrées pour prévenir l'injection de code malveillant. Échappez des caractères spéciaux pour les éviter de briser la syntaxe de requête SQL. Vérifiez les entrées utilisateur contre la liste blanche pour la sécurité. Implémentez la vérification des entrées pour vérifier le format de l'entrée de l'utilisateur. Utilisez le cadre de sécurité pour simplifier la mise en œuvre des mesures de protection. Gardez les logiciels et les bases de données mises à jour pour patcher des vulnérabilités de sécurité. Restreindre l'accès à la base de données pour protéger les données sensibles. Crypter les données sensibles pour empêcher un accès non autorisé. Réglez et surveillez régulièrement pour détecter les vulnérabilités de sécurité et l'activité anormale.

See all articles