Cet article présente principalement les requêtes simples et les requêtes limitées dans Oracle. Je ne dirai pas grand-chose ci-dessous, jetons un coup d'œil ensemble.
SQL :
1. DML (langage de manipulation de données) : fait principalement référence aux opérations de requête et de mise à jour de la base de données. L'opération de requête est la plus gênante de toute la syntaxe SQL et la plus. couramment utilisé dans la partie d’examen écrit.
2. DDL (langage de définition de données) : fait principalement référence à la création d'objets de données (tables, utilisateurs, etc.). Par exemple : creat. Nécessite des paradigmes de conception pertinents.
3. DCL (Data Control Language) : effectue principalement des opérations d'autorisation (doit être observée en combinaison avec les utilisateurs), cette partie est responsable du DBA.
Requête simple :
1, utilisez la clause select pour contrôler les colonnes de données à afficher :
select empno,ename,ename,job,sal from emp;
2 , vous pouvez utiliser distinct pour éliminer les lignes de données en double :
select distinct job from emp;
3 La clause select peut effectuer quatre opérations arithmétiques et générer directement un contenu constant. , mais Pour les chaînes, utilisez des guillemets simples pour écrire directement. Le format de date suit le format de caractère :
select empno,ename,(sal*15+(200+100)) income from emp;
Apparaît rarement directement dans la requête :
select empno||ename from emp;
5. La clause Where est généralement écrite après la clause from, mais elle est immédiatement suivie par la clause from Lorsqu'elle est exécutée ultérieurement, la clause Where contrôle l'opération d'affichage des lignes de données, tandis que select contrôle la clause from. colonnes de données. La clause select est en retard par rapport à l'exécution de la clause Where, de sorte que les alias définis dans la clause Select ne peuvent pas être utilisés dans Where.
Requête qualifiée :
1, opérateur relationnel :
select * from emp where sal>1500; select * from emp where ename ='SMITH' select empno,ename,job from emp where job<>'SALESMAN';
2, opérateur logique :
select * from emp where sal>1500 and sal<3000; select * from emp where sal>2000 or job='CLERK'; select * from emp where not sal >=2000;
3, requête de plage :
select * from emp where sal between 1500 and 2000; select * from emp where hiredate between '01-1月-1981'and'31-12月-1981';
4, jugement vide (Null signifie incertitude sur la base de données. Si null est utilisé dans la colonne de données, cela ne signifie pas 0)
select * from emp where comm is not null;
5, opérateur IN (similaire à entre et in donne la plage spécifiée) :
select * from emp where empno in (7369,7566,7788,9999);
Concernant la question de not in et null :
Lors de l'utilisation de not in Pendant le jugement de plage , si la plage contient null, aucun résultat ne sera renvoyé.
6, requête floue :
« - » : correspond à n'importe quel caractère ;
« % » : correspond à 0, 1 ou plusieurs caractères
Rechercher les informations sur les employés dont le nom commence par la lettre A :
select * from emp where ename like 'A%'
Rechercher les informations sur les employés dont la deuxième lettre est A :
select * from emp where ename like '_A%';
Interrogez les informations sur les employés dont le nom est A à n'importe quel poste :
select * from emp where ename like '%A%';
Tri des requêtes :
ASC (par défaut) : Trier par ordre croissant ;
DESC : Trier par ordre décroissant
Interroger toutes les informations sur les employés, et il est nécessaire de trier par salaire par ordre croissant ; .au plus bas :
select * from emp order by sal desc;
Interroger le numéro, le nom, le salaire annuel de chaque employé, trier par salaire annuel du plus bas au plus élevé :
select empno ,ename,sal*12 income from emp order by income;
Ordre d'exécution des instructions : de - où -sélectionner - trier par
Exercice de base :
1, sélectionnez le département 30 Tous les employés de :
select * from emp where deptno=30;
2. Indiquez les noms, numéros et numéros de service de tous les commis :
<. 🎜>
select ename,empno,deptno from emp where job='CLERK';
select * from emp where comm>sal*0.6 ;
select * from emp where (deptno=10 and job='MANAGER' )or(deptno=20 and job='CLERK' );
select * from emp where (deptno=10 and job='MANAGER')or(deptno=20 and job='CLERK')or(job! ='MANAGER'and job!='CLERK' and sal>=2000);
select * from emp where (deptno=10 and job='MANAGER')or(deptno=20 and job='CLERK')or(job not in ('CLERK','MANAGER') and sal>=2000);
Ou des salariés qui facturent moins de 100 commissions :
select distinct job from emp where comm is not null;
8 , afficher les noms des employés sans « R » :
select distinct job from emp where comm is null or comm<100;
9 Afficher les noms de tous les employés dont le champ de nom contient A. Les résultats affichés sont basés sur le salaire de base du plus élevé au plus bas. Si les salaires sont les mêmes, ils sont basés sur les années d'emploi du plus tôt au plus tard, si les dates d'embauche sont les mêmes, trier par poste :
.select * from emp where ename not like '%R%';
Résumé
Ce qui précède est l'intégralité du contenu de cet article, j'espère que le contenu de cet article pourra être d'une certaine aide pour les études ou le travail de chacun si vous l'avez fait. Pour toute question, vous pouvez laisser un message pour communiquer.
select * from emp where ename like '%A%' order by sal desc,hiredate asc,job;