In diesem Artikel werden hauptsächlich einfache und eingeschränkte Abfragen in Oracle vorgestellt. Im Folgenden werde ich nicht viel sagen. Schauen wir uns das gemeinsam an.
SQL:
1. DML (Datenmanipulationssprache): Bezieht sich hauptsächlich auf die Abfrage- und Aktualisierungsvorgänge der Datenbank. Der Abfragevorgang ist der problematischste in der gesamten SQL-Syntax Wird häufig im schriftlichen Teil verwendet.
2. DDL (Datendefinitionssprache): Bezieht sich hauptsächlich auf die Erstellung von Datenobjekten (Tabellen, Benutzer usw.). Zum Beispiel: Erfordert relevante Designparadigmen.
3. DCL (Data Control Language): Führt hauptsächlich Berechtigungsvorgänge aus (muss in Kombination mit Benutzern beachtet werden). Dieser Teil ist für den DBA verantwortlich.
Einfache Abfrage:
1, verwenden Sie die Select-Klausel, um die anzuzeigenden Datenspalten zu steuern:
select empno,ename,ename,job,sal from emp;
2 können Sie mit „distinct“ doppelte Datenzeilen entfernen:
select distinct job from emp;
3 Die Select-Klausel kann vier arithmetische Operationen ausführen und konstante Inhalte direkt ausgeben , aber für Zeichenfolgen verwenden Sie einfache Anführungszeichen, um direkt zu schreiben. Das Datumsformat folgt dem Zeichenformat:
select empno,ename,(sal*15+(200+100)) income from emp;
Erscheint selten direkt in der Abfrage:
select empno||ename from emp;
5. Die where-Klausel wird im Allgemeinen nach der from-Klausel geschrieben, ihr folgt jedoch unmittelbar die from-Klausel. Nach der Ausführung steuert die where-Klausel die Anzeige von Datenzeilen, während select die Daten steuert Die SELECT-Klausel bleibt hinter der Ausführung der WHERE-Klausel zurück, sodass die in der SELECT-Klausel definierten Aliase nicht in WHERE verwendet werden können.
Qualifizierte Abfrage:
1, relationaler Operator:
select * from emp where sal>1500; select * from emp where ename ='SMITH' select empno,ename,job from emp where job<>'SALESMAN';
2, logischer Operator:
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, Bereichsabfrage:
select * from emp where sal between 1500 and 2000; select * from emp where hiredate between '01-1月-1981'and'31-12月-1981';
4, leeres Urteil ( Null bedeutet Unsicherheit in der Datenbank. Wenn in der Datenspalte Null verwendet wird, bedeutet dies nicht 0)
select * from emp where comm is not null;
5, IN-Operator (ähnlich wie zwischen und in gibt den angegebenen Bereich an):
select * from emp where empno in (7369,7566,7788,9999);
Über not in und null:
Bei Verwendung von not in Während der Bereichsbeurteilung, wenn die Wenn der Bereich null enthält, wird kein Ergebnis zurückgegeben.
6, Fuzzy-Abfrage:
„-“: entspricht einem beliebigen Zeichen;
„%“: entspricht einem beliebigen 0, 1 oder mehreren Zeichen; 🎜>Mitarbeiterinformationen abfragen, deren Name mit dem Buchstaben A beginnt:
Mitarbeiterinformationen abfragen, deren zweiter Buchstabe A ist:select * from emp where ename like 'A%'
select * from emp where ename like '_A%';
select * from emp where ename like '%A%';
ASC (Standard): Sortierung in aufsteigender Reihenfolge;
DESC: Sortierung in absteigender Reihenfolge
Alle Mitarbeiterinformationen abfragen, eine Sortierung nach Gehalt ist in aufsteigender Reihenfolge erforderlich . zum niedrigsten:
Nummer, Name, Jahresgehalt jedes Mitarbeiters abfragen, nach Jahresgehalt von niedrig nach hoch sortieren:select * from emp order by sal desc;
select empno ,ename,sal*12 income from emp order by income;
select * from emp where deptno=30;
3. Finden Sie Mitarbeiter, deren Provision mehr als 60 % ihres Gehalts beträgt:
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);
select distinct job from emp where comm is not null;
select distinct job from emp where comm is null or comm<100;
select * from emp where ename not like '%R%';
select * from emp where ename like '%A%' order by sal desc,hiredate asc,job;