Heim > php教程 > PHP开发 > 99 häufig verwendete Abfrageanweisungen in Oracle-Datenbanken

99 häufig verwendete Abfrageanweisungen in Oracle-Datenbanken

高洛峰
Freigeben: 2017-01-06 13:21:25
Original
1567 Leute haben es durchsucht

1. Wählen Sie * aus emp;

wählen Sie empno, ename, job from emp;

wählen Sie empno number, ename name, job job from emp;

4. Wählen Sie einen bestimmten Job aus emp;

6. Wählen Sie einen bestimmten Job aus emp;

Erklärung: Da die Mitarbeiterzahlen sind nicht wiederholt, daher ist zu diesem Zeitpunkt bewiesen, dass nicht alle Spalten dupliziert sind, sodass doppelte Spalten nicht entfernt werden können.


7 Fragen Sie die Nummer, den Namen und den Job des Mitarbeiters ab, aber das angezeigte Format ist: Mitarbeiternummer : 7369, Name ist: smith, der Job ist: ' ||' |. Job von emp;

8. Finden Sie den Namen und das Jahresgehalt jedes Mitarbeiters
wählen Sie E-Name, Sal * 12 Einkommen von emp;

9 Gehalt ist größer als 1500
wählen Sie * von emp, wobei sal > 10.

10.

11. Fragen Sie die Mitarbeiter ab, die keine Bonusinformationen haben.

wählen Sie * aus emp, wobei „comm“ null ist;

12. Fragen Sie die Informationen von Mitarbeitern ab, deren Grundgehalt mehr als 1500 beträgt und kann Prämien erhalten

wählen Sie * von emp, wobei sal > 1500 und comm nicht null ist;

13 Fragen Sie die Informationen von Mitarbeitern ab, deren Grundgehalt größer als 1500 ist oder die Prämien erhalten können

Wählen Sie * von Emp, wobei Sal > 1500 oder Comm nicht null ist not(sal > 1500 and comm is not null);

15. Fragen Sie ab, ob das Grundgehalt größer als 1500 ist, aber alle Mitarbeiterinformationen kleiner als 3000 sind.

wählen Sie * aus emp, wobei sal > sal < 3000;

16. Fragen Sie alle Mitarbeiterinformationen ab, deren Grundgehalt größer oder gleich 1500, aber kleiner oder gleich 3000 ist.

Wählen Sie * aus emp, wobei sal >= 1500 und sal <= 3000;
wählen Sie * aus emp, wobei sal zwischen 1500 und 3000;

17. Fragen Sie alle Mitarbeiterinformationen ab, die 1981 eingestellt wurden (Mitarbeiter, die zwischen dem 1. Januar 1981 und dem 31. Dezember 1981 eingestellt wurden)
wählen Sie * aus emp, wo das Einstellungsdatum zwischen „1. Januar 1981“ und „31. Dezember 1881“ liegt;

18. Bitten Sie um die Abfrage der Mitarbeiterinformationen, deren Name Smith ist ename = 'SMITH';

19. Anfrage zur Abfrage der Mitarbeiterinformationen von 7369, 7499, 7521 Spezifische Informationen

wählen Sie * aus emp, wobei empno = 7369 oder empno = 7499 oder empno = 7521;

wählen Sie * von emp, wo empno in(7369, 7499, 7521);

20. Abfrage anfordern Erhalten Sie die spezifischen Informationen von Mitarbeitern, deren Mitarbeiter nicht 7369, 7499, 7521 sind

wählen Sie * von emp, wo empno nicht in (7369, 7499, 7521);

21. Anfrage, um herauszufinden, ob die Namen Smith, Allen, King sind. Mitarbeiterinformationen

select * from emp where ename in('SMITH', 'ALLEN ', 'KING');

22. Fragen Sie alle Mitarbeiter ab, deren zweiter Buchstabe des Namens „M“ enthält. Mitarbeiterinformationen

wählen Sie * aus emp, wobei der Name „_M%“ lautet;


23. Fragen Sie Mitarbeiterinformationen ab, die den Buchstaben M im Namen des Mitarbeiters enthalten.

wählen Sie * aus emp, wobei der E-Name etwa „%M%“ lautet.


Anfrage zur Abfrage von Mitarbeiterinformationen, die 1981 eingestellt wurden

wählen * von emp, wo Einstellungsdatum wie „%81%“;


25. Fragen Sie diejenigen ab, deren Gehalt 5 Mitarbeiterinformationen enthält.

wählen Sie * von emp, wo sal wie „%5%“;


26. Fragen Sie Mitarbeiterinformationen ab, deren Mitarbeiternummer nicht 7369 ist.

wählen Sie * aus emp, wobei empno != 7369;

wählen Sie * aus emp, wobei empno <>

27 nach Gehalt von niedrig nach hoch

wählen Sie * aus emp, ordnen nach sal aufsteigend;

28. Bitte sortieren Sie nach Gehalt von hoch nach niedrig

wählen * von emp order by sal desc;

29. Anfrage zur Abfrage aller Mitarbeiterinformationen von 20 Abteilungen, Abfrageinformationen Sortieren nach Gehalt von hoch nach niedrig. Wenn die Gehälter gleich sind, sortieren Sie nach Beschäftigungsdatum von früh nach spät .

wählen Sie * aus emp, wobei deptno = 20 order by sal desc, Hiredate asc;


30. Ändern Sie Kleinbuchstaben in Großbuchstaben
wählen Sie Großbuchstaben ('hello') aus dual;

31. Ändern Sie Großbuchstaben in Kleinbuchstaben.
Wählen Sie Kleinbuchstaben ('HALLO WORLD') aus Dual aus ename = Upper('smith');

33. Verwenden Sie die Funktion initcap(), um das erste Zeichen der Wortgroßbuchstaben zu ändern
wählen Sie initcap('hello world') aus dual;

34. Ändern Sie die Mitarbeiternamen in der Mitarbeitertabelle in Großbuchstaben.
wählen Sie initcap(ename) aus emp;

35. Verketten Sie die Zeichenfolgen „hello“ und „world“
wählen Sie concat ('hello', 'world') von dual;

36. Häufig verwendete Operationen für Zeichenfolgen Zeichenverarbeitungsfunktion
select substr('hello', 1, 3) zum Abfangen der Zeichenfolge, length(' hallo') die Länge der Zeichenfolge, replace('hello', 'l', 'x'), um die Zeichenfolge durch Dual zu ersetzen;

select substr('hello', 0, 3) intercept the string, length( 'hello') die Länge der Zeichenfolge, replace('hello', 'l', 'x') String-Ersetzung durch Dual ;

37. Zeigt die Namen und letzten drei Zeichen aller Mitarbeiter an
select ename, substr(ename, length(ename) -2) from emp;
select ename, substr(ename, -3, 3) Von emp; >select runden (789.536, 2) aus Dual; 41. Bei Verwendung der Funktion trunc() bleiben keine Dezimalstellen erhalten und der Dezimalpunkt führt keine Rundungsoperationen aus

select trunc(789.536) aus Dual;


42. Der Dezimalpunkt kann auch über trunc() angegeben werden. Reservierte Ziffern

select trunc(789.536, 2) from dual;


43. Verwenden Sie negative Zahlen, um Ziffern darzustellen

select trunc(789.536 , -2) von dual;


44 . Verwenden Sie die Funktion mod(), um die Restoperation auszuführen

wählen Sie mod(10, 3) von dual;


45 Anzahl der Wochen, in denen Mitarbeiter aus den 10 Abteilungen in das Unternehmen eingetreten sind (aktuelles Datum – Beschäftigungsdatum = Anzahl der Tage / 7 = Wochennummer)

select empno, ename, round((sysdate – Hiredate) / 7) from emp where deptno = 10;


46. Datumsfunktion

months_between(): Finden Sie die Anzahl der Monate in einem bestimmten Datumsbereich

add_months(): Addieren Sie die angegebene Anzahl von Monaten zum angegebenen Datum, um das zu finden Folgedatum
next_day(): Das nächste Datum des angegebenen Datums

last_day() : Finden Sie den letzten Tag des Monats an einem bestimmten Datum


47

select empno, ename, Months_between(sysdate, Hiredate) from emp;

select empno, ename, Round(months_between(sysdate, Hiredate)) from emp;

select sysdate, add_months(sysdate, 4) from dual;


49. select next_day(sysdate, 'Monday') from dual;

50. select last_day(sysdate) from dual;

51. ): In String konvertieren

to_number(): In Zahl konvertieren
to_date() : In Datum konvertieren

52 Mitarbeiternummer, Name, Beschäftigungsdatum aller Mitarbeiter abfragen

empfr. auswählen ,

ename,

to_char(hiredate, 'yyyy') Jahr,

to_char(hiredate, 'mm') Monate,

to_char(hiredate, 'dd') Tag

from emp;


wählen Sie empno, ename, to_char(hiredate, 'yyyy-mm-dd') from emp;

wählen Sie empno, ename, to_char(hiredate, 'fmyyyy-mm-dd') from emp;

53. Fragen Sie die Anzahl, den Namen und das Gehalt aller Mitarbeiter ab
wählen Sie empno, ename, sal aus emp;
wählen Sie empno, ename, to_char(sal, '99,999') aus emp ;
select empno, ename, to_char(sal, 'L99,999') from emp;
select empno, ename, to_char(sal, '$99,999') from emp;

54 to_number('123') + to_number('123') from dual;

55 . Konvertieren Sie eine Zeichenfolge in den Datumstyp

select to_date('2009-01-01', 'yyyy-mm-dd ') von dual;

56. Finden Sie das Jahresgehalt jedes Mitarbeiters (Anforderungen plus Bonus)

wählen Sie empno, ename, sal, comm, (sal + comm) * 12 von emp;
select empno, ename, sal, comm, nvl(comm, 0), (sal + nvl (comm, 0)) * 12 yield from emp;

57. Die Funktion decode() ähnelt if. ...elsif...else-Anweisung
select decode(1, 1, 'The content is 1', 2, 'The content is 2', 3, 'The content is 3') from dual;

58. Fragen Sie die Nummer, den Namen, das Beschäftigungsdatum und die Arbeit des Mitarbeiters ab und fordern Sie die Ersetzung des Arbeitsplatzes des Mitarbeiters durch die folgenden Informationen an:

Mitarbeiternummer auswählen,

Namen des Mitarbeiters angeben,
Beschäftigung einstellen date,

decode(job,

'CLERK', 'salesman',
'SALESMAN' , 'Salesperson',
'MANAGER', 'Manager',

'ANALYST', ' Analyst',

'PRÄSIDENT', 'Präsident'
) Position

von emp;


59 >Wählen Sie * aus Emp Cross Join Dept;

60. Inner Join
Wählen Sie * aus Emp e, Dept d on e.deptno = d.deptno;
select * from emp e join dept d on e .deptno = d.deptno;


61. Natural join
select * from emp natürlich Abteilung beitreten;
wählen Sie * aus emp und treten Sie Abteilung d bei (Abteilungsnr);

62. Anfrage zur Abfrage von Mitarbeiternummer, Name, Abteilungsnummer, Name, Adresse

wählen Sie e.empno, e.ename, d.deptno, d.dname, d.loc from emp e, dept d where e.deptno = d.deptno;

63 Anfrage zur Abfrage des Namens, der Tätigkeit und des Namens des Mitarbeiters des direkten Vorgesetzten des Mitarbeiters

select e.ename, e.job, m.ename from emp e , emp m where e.mgr = m.empno;


64 Anfrage zur Abfrage des Namens des Mitarbeiters, job, Name des unmittelbaren Vorgesetzten des Mitarbeiters und Abteilungsname
wählen Sie e.ename, e.job, m.ename, d.dname aus emp e, emp m, dept d, wobei e.mgr = m.empno und e. deptno = d.deptno;

65. Anfrage zur Abfrage des Namens, des Gehalts, des Abteilungsnamens, der Gehaltsstufe im Unternehmen (Salgrade) sowie des Namens des Leiters und der Gehaltsstufe im Unternehmen
Wählen Sie E-Name, E-Sale, d.dname, s.grade, m.ename, m.sal, ms.grade
von emp e, dept d, salgrade s, emp m, salgrade ms
wobei e.deptno = d.deptno
und e.sal zwischen s.losal und s.hisal
und e.mgr = m.empno
und m.sal zwischen ms.losal und ms.hisal;

wählen Sie ename ,
e.sal,
d.dname,
decode(s.grade, 1, „Fünfte Klasse“, 2, „Vierte Klasse“, 3, „Dritte Klasse“, 4 , „Zweite Klasse“. ', 5, 'Erste Klasse'),
m.ename,
m.sal,
decode(ms.grade, 1, 'Fünfte Klasse', 2, ' vierte Klasse', 3, ' dritte Klasse“, 4, „zweite Klasse“, 5, „erste Klasse“)
von emp e, dept d, salgrade s, emp m, salgrade ms
wobei e.deptno = d.deptno und e. sal zwischen s.losal und s.hisal und e.mgr = m.empno
und m.sal zwischen ms.losal und ms.hisal;

66. Wählen Sie empno, ename, d.deptno, dname, loc from emp e, dept d where e.deptno = d.deptno;
select empno, ename, d.deptno, dname, loc from emp e inner join dept d on e.deptno = d.deptno;

67. Linker äußerer Join
select empno, ename, d.deptno, dname, loc from emp e, dept d where e.deptno = d.deptno (+);
select empno, ename , d.deptno, dname, loc from emp e left external join dept d on e.deptno = d.deptno;
select empno, ename, d.deptno, dname, loc from emp e left join dept d on e. deptno = d.deptno(+);

68. Rechter äußerer Join
select empno, ename, d.deptno, dname, loc from emp e, dept d where e.deptno(+) = d .deptno;
select empno, ename, d.deptno, dname, loc from emp e right äußere join dept d on e.deptno = d.deptno;
select empno, ename, d.deptno, dname, loc from emp e right join dept d on e.deptno = d.deptno;

69 select e.empno, e.ename, m.empno, m ename from emp e, emp m where e.mgr = m.empno;

70. Wählen Sie e.empno, e.ename, m.empno, m.ename aus emp e, emp m, wobei e.mgr = m.empno(+);

71.
select * from emp e, dept d where e.deptno = d.deptno and d.deptno = 30;
select * from emp e inner joint dept d on e.deptno = d. deptno where d.deptno = 30;
select * from emp e join dept d on e.deptno = d.deptno where d.deptno = 30;
select * from emp e natural join dept d where deptno = 30 ;
select * from emp e join dept d using(deptno) where deptno = 30;

72
select e.ename, d. d.name, d.loc from emp e rechter äußerer Join dept d on e.deptno = d.deptno;
select e.ename, d.deptno, d.dname, d.loc from emp e right join dept d on e.deptno = d.deptno;
select e.ename, d.deptno, d.dname, d.loc from emp e, dept d where e.deptno(+) = d.deptno;

73. von emp;

74. wähle min(sal) von emp;

wähle max(sal) von emp;

wähle Summe(sal) von emp ;

77. select sum(sal) from emp;

79. von emp, wobei Abteilungsnr. = 20;

80. Finden Sie die Anzahl der Mitarbeiter in jeder Abteilung.

Wählen Sie Abteilungsnr., Anzahl (Abteilungsnr.) aus der Emp-Gruppe nach Abteilungsnr Emp-Gruppe nach Abteilungsnummer;


81. Finden Sie das durchschnittliche Gehalt jeder Abteilung.
Wählen Sie Abteilungsnummer, Durchschnitt (Salz) aus Emp-Gruppe nach Abteilungsnummer;

82 den Namen der Abteilung und die Anzahl der Mitarbeiter in jeder Abteilung
wählen Sie d.dname, count(e.empno) aus emp e, dept d

wobei e.deptno = d.deptno

gruppieren nach d.dname;

select d.deptno, d.dname, temp.c
from (select deptno, count(e.empno) c from emp e group by e.deptno) temp, dept d

wobei temp.deptno = d.deptno;


83. Anforderung zur Anzeige der Abteilungsnummer und des durchschnittlichen Gehalts, wenn das durchschnittliche Gehalt größer als 2000 ist.
wählen Sie deptno, avg( sal) aus der Emp-Gruppe nach Abteilungsnr. mit Durchschn. (Salz) > 2000;

84 Zeigt die Berufsbezeichnung des Nicht-Verkaufspersonals und die Summe der Monatslöhne der Mitarbeiter an, die denselben Job ausüben, und muss den Anforderungen der Mitarbeiter entsprechen im gleichen Job tätig Das monatliche Gesamtgehalt ist größer als 5000, die Ausgabeergebnisse werden in aufsteigender Reihenfolge nach dem monatlichen Gesamtgehalt sortiert.
Job auswählen, Summe(sal) su von emp, wobei Job <> Gruppieren Sie nach Job mit Summe (Salz) > ; 'VERKÄUFER') temp

group by temp .job

with sum(temp.sal) > order by s;

85 höchstes Durchschnittsgehalt

wählen Sie max(avg(sal)) aus emp-Gruppe nach Abteilungsnr.

86 Anfrage zur Abfrage der Informationen aller Mitarbeiter, deren Gehalt höher als die Mitarbeiternummer 7654 ist
wählen Sie * aus emp where sal >(select sal from emp where empno = 7654);

87. Anfrage zur Abfrage der Informationen aller Mitarbeiter, deren Gehalt höher als 7654 ist und die den gleichen Job wie 7788 haben
wählen Sie * von emp
wobei sal >(select sal from emp where empno = 7654)
und job = (wählen Sie den Job aus emp, wobei empno = 7788);

88 Anfrage zur Abfrage des Namens, des Jobs und des Gehalts des Mitarbeiters mit dem niedrigsten Gehalt
wählen Sie E-Mail, job, sal from emp where sal = (select min(sal) from emp);

89 Anfrage zur Abfrage: Abteilungsname, Anzahl der Mitarbeiter in der Abteilung, Durchschnittsgehalt der Abteilung, Name des niedrigsten bezahlter Mitarbeiter in der Abteilung
select d.dname, temp. min(sal) m from emp group by deptno) temp,
emp e
wobei d.deptno = temp.deptno und e.sal = temp.m;

select d.deptno, temp .dname, temp.c, temp.a, e.ename, e.sal

from

(select d.dname , count(e.empno) c, avg(e.sal) a, min(e .sal) m
von emp e, dept d
wobei e.deptno = d.deptno
group by d.dname) temp,
emp e,
dept d
wo temp.m = e.sal
und temp.dname = d.dname;

90. Finden Sie die Mindestlohn-Mitarbeiterinformationen in jeder Abteilung

select * from emp where sal in(select min( sal) aus emp-Gruppe nach Abteilungsnr.);

select * from emp where sal =any(select min(sal) from emp group by deptnr);
select * from
(select min(sal) m from emp-Gruppe nach Abteilungsnr.) temp,
emp e
wobei e.sal = temp.m;

91, Mitarbeiterinformationen, die größer sind als das niedrigste (kleine) Gehalt in der Unterabfragebedingung

select * from emp where sal > ;any(select min(sal) from emp group by deptno);

select * from emp where sal > (select min(min(sal)) from emp group von deptno);

92. In Beispiel 90 sind die Mitarbeiterinformationen kleiner als das höchste (größere) Gehalt in der Unterabfragebedingung

select * from emp where sal select * from emp where sal < (select max(min(sal)) from emp group by deptnr);

93, also Mitarbeiterinformationen größer als das höchste (größere) Gehalt in der Unterabfragebedingung

select * from emp where sal >all(select min(sal) from emp group by deptno);

select * from emp where sal > max(min(sal)) from emp group by deptno );

94. In Beispiel 90 sind die Mitarbeiterinformationen kleiner als das niedrigste (kleinere) Gehalt in der Unterabfragebedingung

select * from emp where sal select * from emp where sal < (select min(min(sal)) from emp group by deptno);

95. Finden Sie Informationen über Mitarbeiter ohne Boni in 20 Abteilungen

select * from emp where (sal, nvl(comm, -1)) in (select sal, nvl(comm, -1) from emp where deptno = 20);

select * from emp where deptno = 20 and comm is null;

96. Der Union-Operator gibt alle eindeutigen Zeilen zurück, die von den beiden Abfragen ausgewählt wurden

select deptno from emp union select deptno from dept;


97. Union Der All-Operator führt alle von zwei Abfragen ausgewählten Zeilen zusammen, einschließlich doppelter Zeilen.

select deptno from emp union all select deptno from dept;


98 Der Intersect-Operator gibt nur die zurück Zeilen, die beiden Abfragen gemeinsam sind Zeile

select deptno from emp intersect select deptno from dept;


99 Der Minusoperator gibt nur Zeilen zurück, die von der ersten Abfrage ausgewählt wurden, aber nicht von der zweiten Abfrage , bei Zeilen ausschließen, die im zweiten Abfrageergebnis erscheinen, von einem Abfrageergebnis

wählen Sie Deptno aus Dept minus Select Deptno aus Emp;


Weitere Artikel zu den 99 häufig verwendeten Abfrageanweisungen in Oracle-Datenbanken finden Sie bitte Achten Sie auf die chinesische PHP-Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage