Vorwort: In diesem Artikel wird hauptsächlich die Abfragesyntax wie „Where“, „Group By“, „Order By“, „Limit“, „Join“, „Union“, „Union All“, „Subtable“ usw. in MySQL vorgestellt. Testdatenaufbereitung erstelle Tabelle emp (empno numerisch(4) ungleich null, ename varchar(10), job varchar(9), mgr numerisch(4), hiredate datetime, sal numerisch(7, 2), comm numerisch(7, 2), deptno numerisch(2)); Erstelle Tabelle dept (deptno numeric(2), dname varchar(14), loc varchar(13)); Tabelle „Salgrade“ erstellen (Grad numerisch, Losal numerisch, Hisal numerisch); in Abteilungswerte einfügen (10, ‚ACCOUNTING‘, ‚NEW YORK‘); in Abteilungswerte einfügen (20, ‚RESEARCH‘, ‚DALLAS‘); in Abteilungswerte einfügen (30, ‚SALES‘, ‚CHICAGO‘); in Abteilungswerte einfügen (40, ‚OPERATIONS‘, ‚BOSTON‘); in Salgrade-Werte einfügen (1, 700, 1200); in Salgrade-Werte einfügen (2, 1201, 1400); in Salgrade-Werte einfügen (3, 1401, 2000); in Salgrade-Werte einfügen (4, 2001, 3000); in Salgrade-Werte einfügen (5, 3001, 9999); insert into emp values (7369, 'SMITH', 'CLERK', 7902, '1980-12-17', 800, null, 20);insert into emp values (7499, 'ALLEN', 'SALESMAN', 7698, '1981-02-20', 1600, 300, 30);insert into emp values (7521, 'WARD', 'SALESMAN', 7698, '1981-02-22', 1250, 500, 30);insert into emp values (7566, 'JONES', 'MANAGER', 7839, '1981-04-02', 2975, null, 20);insert into emp values (7654, 'MARTIN', 'SALESMAN', 7698, '1981-09-28', 1250, 1400, 30);insert into emp values (7698, 'BLAKE', 'MANAGER', 7839, '1981-05-01', 2850, null, 30);insert into emp values (7782, 'CLARK', 'MANAGER', 7839, '1981-06-09', 2450, null, 10);insert into emp values (7788, 'SCOTT', 'ANALYST', 7566, '1982-12-09', 3000, null, 20);insert into emp values (7839, 'KING', 'PRESIDENT', null, '1981-11-17', 5000, null, 10);insert into emp values (7844, 'TURNER', 'SALESMAN', 7698, '1981-09-08', 1500, 0, 30);insert into emp values (7876, 'ADAMS', 'CLERK', 7788, '1983-01-12', 1100, null, 20);insert into emp values (7900, 'JAMES', 'CLERK', 7698, '1981-12-03', 950, null, 30);insert into emp values (7902, 'FORD', 'ANALYST', 7566, '1981-12-03', 3000, null, 20);insert into emp values (7934, 'MILLER', 'CLERK', 7782, '1982-01-23', 1300, null, 10); 1. Fuzzy-Abfrage mysql> select * from emp where ename like '%S%'; +-------+-------+---------+------+---------------------+---------+------+--------+| empno | ename | job | mgr | hiredate | sal | comm | deptno |+-------+-------+---------+------+---------------------+---------+------+--------+| 7369 | SMITH | CLERK | 7902 | 1980-12-17 00:00:00 | 800.00 | NULL | 20 || 7566 | JONES | MANAGER | 7839 | 1981-04-02 00:00:00 | 2975.00 | NULL | 20 || 7788 | SCOTT | ANALYST | 7566 | 1982-12-09 00:00:00 | 3000.00 | NULL | 20 || 7876 | ADAMS | CLERK | 7788 | 1983-01-12 00:00:00 | 1100.00 | NULL | 20 || 7900 | JAMES | CLERK | 7698 | 1981-12-03 00:00:00 | 950.00 | NULL | 30 |+-------+-------+---------+------+---------------------+---------+------+--------+5 rows in set (0.00 sec) MySQL> Ausgewählte EMP, wobei der ENMEITE ISGE ISTEN +--------+| . MySQL> SELECT * von EMP, wo sich der ENMIS wie "%s ';+-------+------- -----+| |. MySQL> Ausgewählte EMP, wo sich eingehalten hat, wie +--------+| +-------+-------+----------+------+-------------------------+----------+------+--------+2 Zeilen in Set (0,00 Sek.) Zusammenfassung: % steht für beliebige 0 oder mehr Zeichen und kann mit Zeichen jeden Typs und jeder Länge übereinstimmen; _ steht für jedes einzelne Zeichen und stimmt mit einem einzelnen beliebigen Zeichen überein. 2. Sortieren mysql> select * from emp order by sal;+-------+--------+-----------+------+---------------------+---------+---------+--------+| empno | ename | job | mgr | hiredate | sal | comm | deptno |+-------+--------+-----------+------+---------------------+---------+---------+--------+| 7369 | SMITH | CLERK | 7902 | 1980-12-17 00:00:00 | 800.00 | NULL | 20 || 7900 | JAMES | CLERK | 7698 | 1981-12-03 00:00:00 | 950.00 | NULL | 30 || 7876 | ADAMS | CLERK | 7788 | 1983-01-12 00:00:00 | 1100.00 | NULL | 20 || 7521 | WARD | SALESMAN | 7698 | 1981-02-22 00:00:00 | 1250.00 | 500.00 | 30 || 7654 | MARTIN | SALESMAN | 7698 | 1981-09-28 00:00:00 | 1250.00 | 1400.00 | 30 || 7934 | MILLER | CLERK | 7782 | 1982-01-23 00:00:00 | 1300.00 | NULL | 10 || 7844 | TURNER | SALESMAN | 7698 | 1981-09-08 00:00:00 | 1500.00 | 0.00 | 30 || 7499 | ALLEN | SALESMAN | 7698 | 1981-02-20 00:00:00 | 1600.00 | 300.00 | 30 || 7782 | CLARK | MANAGER | 7839 | 1981-06-09 00:00:00 | 2450.00 | NULL | 10 || 7698 | BLAKE | MANAGER | 7839 | 1981-05-01 00:00:00 | 2850.00 | NULL | 30 || 7566 | JONES | MANAGER | 7839 | 1981-04-02 00:00:00 | 2975.00 | NULL | 20 || 7788 | SCOTT | ANALYST | 7566 | 1982-12-09 00:00:00 | 3000.00 | NULL | 20 || 7902 | FORD | ANALYST | 7566 | 1981-12-03 00:00:00 | 3000.00 | NULL | 20 || 7839 | KING | PRESIDENT | NULL | 1981-11-17 00:00:00 | 5000.00 | NULL | 10 |+-------+--------+-----------+------+---------------------+---------+---------+--------+14 rows in set (0.00 sec) mysql> select * from emp order by sal asc;+-------+--------+-----------+------+---------------------+---------+---------+--------+| empno | ename | job | mgr | hiredate | sal | comm | deptno |+-------+--------+-----------+------+---------------------+---------+---------+--------+| 7369 | SMITH | CLERK | 7902 | 1980-12-17 00:00:00 | 800.00 | NULL | 20 || 7900 | JAMES | CLERK | 7698 | 1981-12-03 00:00:00 | 950.00 | NULL | 30 || 7876 | ADAMS | CLERK | 7788 | 1983-01-12 00:00:00 | 1100.00 | NULL | 20 || 7521 | WARD | SALESMAN | 7698 | 1981-02-22 00:00:00 | 1250.00 | 500.00 | 30 || 7654 | MARTIN | SALESMAN | 7698 | 1981-09-28 00:00:00 | 1250.00 | 1400.00 | 30 || 7934 | MILLER | CLERK | 7782 | 1982-01-23 00:00:00 | 1300.00 | NULL | 10 || 7844 | TURNER | SALESMAN | 7698 | 1981-09-08 00:00:00 | 1500.00 | 0.00 | 30 || 7499 | ALLEN | SALESMAN | 7698 | 1981-02-20 00:00:00 | 1600.00 | 300.00 | 30 || 7782 | CLARK | MANAGER | 7839 | 1981-06-09 00:00:00 | 2450.00 | NULL | 10 || 7698 | BLAKE | MANAGER | 7839 | 1981-05-01 00:00:00 | 2850.00 | NULL | 30 || 7566 | JONES | MANAGER | 7839 | 1981-04-02 00:00:00 | 2975.00 | NULL | 20 || 7788 | SCOTT | ANALYST | 7566 | 1982-12-09 00:00:00 | 3000.00 | NULL | 20 || 7902 | FORD | ANALYST | 7566 | 1981-12-03 00:00:00 | 3000.00 | NULL | 20 || 7839 | KING | PRESIDENT | NULL | 1981-11-17 00:00:00 | 5000.00 | NULL | 10 |+-------+--------+-----------+------+---------------------+---------+---------+--------+14 rows in set (0.00 sec) mysql> select * from emp order by sal desc;+-------+--------+-----------+------+---------------------+---------+---------+--------+| empno | ename | job | mgr | hiredate | sal | comm | deptno |+-------+--------+-----------+------+---------------------+---------+---------+--------+| 7839 | KING | PRESIDENT | NULL | 1981-11-17 00:00:00 | 5000.00 | NULL | 10 || 7788 | SCOTT | ANALYST | 7566 | 1982-12-09 00:00:00 | 3000.00 | NULL | 20 || 7902 | FORD | ANALYST | 7566 | 1981-12-03 00:00:00 | 3000.00 | NULL | 20 || 7566 | JONES | MANAGER | 7839 | 1981-04-02 00:00:00 | 2975.00 | NULL | 20 || 7698 | BLAKE | MANAGER | 7839 | 1981-05-01 00:00:00 | 2850.00 | NULL | 30 || 7782 | CLARK | MANAGER | 7839 | 1981-06-09 00:00:00 | 2450.00 | NULL | 10 || 7499 | ALLEN | SALESMAN | 7698 | 1981-02-20 00:00:00 | 1600.00 | 300.00 | 30 || 7844 | TURNER | SALESMAN | 7698 | 1981-09-08 00:00:00 | 1500.00 | 0.00 | 30 || 7934 | MILLER | CLERK | 7782 | 1982-01-23 00:00:00 | 1300.00 | NULL | 10 || 7521 | WARD | SALESMAN | 7698 | 1981-02-22 00:00:00 | 1250.00 | 500.00 | 30 || 7654 | MARTIN | SALESMAN | 7698 | 1981-09-28 00:00:00 | 1250.00 | 1400.00 | 30 || 7876 | ADAMS | CLERK | 7788 | 1983-01-12 00:00:00 | 1100.00 | NULL | 20 || 7900 | JAMES | CLERK | 7698 | 1981-12-03 00:00:00 | 950.00 | NULL | 30 || 7369 | SMITH | CLERK | 7902 | 1980-12-17 00:00:00 | 800.00 | NULL | 20 |+-------+--------+-----------+------+---------------------+---------+---------+--------+14 rows in set (0.00 sec) Zusammenfassung: Die Sortierung erfolgt standardmäßig in aufsteigender Reihenfolge. Sie können auch die absteigende Reihenfolge angeben. 3. Begrenzen Sie die Anzahl der Zeilen MySQL> Ausgewählte Limit 3;+-------+-------+----------+------+----------------- +-----+| 521 | MySQL> Ausgewählte Begrenzung von SAL Desc 3;+-------+-------+------- -----+| Scott | Zusammenfassung: limit begrenzt die Anzahl der anzuzeigenden Zeilen und kann in Verbindung mit order by verwendet werden. 4. Aggregationsfunktion Verwendung der Funktion count() sum(): #1. Gehälter und Gehälter verschiedener Abteilungenmysql> select deptno,sum(sal) from emp group by deptno;+--------+----------+| deptno | sum(sal) |+--------+----------+| 10 | 8750,00 || 20 | 10875,00 || 30 | 9400,00 |+--------+----------+3 Zeilen im Set (0,01 Sek.) : : : : : : : : : : : : : : : #3.verschiedene Positionen in verschiedenen Abteilungen mit einem Gehalt von > 5000 habenmysql> select deptno,job, sum(sal) -> from emp -> group by deptno ,job -> having sum(sal)>5000; +--------+----------+----------+| deptno | job | sum(sal) |+--------+----------+----------+| 20 | ANALYST | 6000,00 || 30 | SALESMAN | 5600,00 |+--------+----------+----------+2 Zeilen im Set (0,00 Sek.)#4.Häufige Kombinationen mit Order Limit select deptno,job, sum(sal) as sum_salfrom emp where job='SALESMAN'group by deptno ,jobmit sum(sal)>5000 order by sum(sal) desc limit 1; Im Folgenden wird die Verwendung der Join- und Union-Datenaufbereitung beschrieben: Tabelle erstellen testa(aid int,aname varchar(40)); Tabelle erstellen testb(Gebot int, bname varchar(40), Alter int); in Testawerte einfügen (1, „xiaoming“); in Testawerte einfügen (2, „LY“); in Testawerte einfügen (3, „KUN“); in Testawerte einfügen (4, „ZIDONG“); in Testawerte einfügen (5, „HB“); in Testb-Werte einfügen (1, „xiaoming“, 10); in Testb-Werte einfügen (2, „LY“, 100); in Testb-Werte einfügen (3, „KUN“, 200); in Testb-Werte einfügen (4, „ZIDONG“, 110); in Testb-Werte einfügen (6, „niu“, 120); in Testb-Werte einfügen (7, „meng“, 130); in Testb-Werte einfügen (8, „mi“, 170); 5.Links verbinden mysql> Auswahl -> a.aid,a.aname, -> b.bid,b.bname,b.age -> von testa als a -> linker Join testb als b auf a.aid=b.bid; +------+----------+------+----------+------+| aid | aname | bid | bname | age |+------+----------+------+----------+------+| 1 | xiaoming | 1 | xiaoming | 10 || 2 | LY | 2 | LY | 100 || 3 | KUN | 3 | KUN | 200 || 4 | ZIDONG | 4 | ZIDONG | 110 || 5 | HB | NULL | NULL |+------+----------+------+----------+------+5 Zeilen im Set (0,00 Sek.) Zusammenfassung: Ein Left Join einer Tabelle b ist abgeschlossen und die Tabelle b wird zum Zuordnen einer Tabelle verwendet. Das Schlüsselwort LEFT JOIN gibt alle Zeilen der linken Tabelle (a) zurück, auch wenn in der rechten Tabelle (b) keine übereinstimmenden Zeilen vorhanden sind. Die nicht übereinstimmenden Spalten werden durch NULL ersetzt. 6.Rechtsbeitritt MySQL> Select-> A.Aid, A.Aname,-> B.Bid, B.bname, von testa als ordentlicher Join als bauf Xiaoming | NULL | Zusammenfassung: a right join b b Tabelle ist vollständig, verwenden Sie Tabelle a, um Tabelle b abzugleichen. Das Schlüsselwort RIGHT JOIN gibt alle Zeilen aus der rechten Tabelle (b) zurück, auch wenn es in der linken Tabelle (a) keine übereinstimmende Zeile gibt. Die nicht übereinstimmenden Spalten werden durch NULL ersetzt. 7. Innerer Join mysql> Auswahl -> a.aid,a.aname, -> b.bid,b.bname,b.age -> von testa als a -> innerer Join testb als b auf a.aid=b.bid; +------+----------+------+----------+------+| aid | aname | bid | bname | age |+------+----------+------+----------+------+| 1 | xiaoming | 1 | xiaoming | 10 || 2 | LY | 2 | LY | 100 || 3 | KUN | 3 | KUN | 200 || 4 | ZIDONG | 4 | ZIDONG | 110 |+------+----------+------+----------+------+4 Zeilen im Set (0,00 Sek.) mysql> Auswahl -> a.aid,a.aname, -> b.bid,b.bname,b.age -> von testa als a -> verbinde testb als b auf a.aid=b.bid; +------+----------+------+----------+------+| aid | aname | bid | bname | age |+------+----------+------+----------+------+| 1 | xiaoming | 1 | xiaoming | 10 || 2 | LY | 2 | LY | 100 || 3 | KUN | 3 | KUN | 200 || 4 | ZIDONG | 4 | ZIDONG | 110 |+------+----------+------+----------+------+4 Zeilen im Set (0,00 Sek.) Zusammenfassung: Inner Join hat die gleiche Wirkung wie Join. Das Schlüsselwort INNER JOIN gibt Zeilen zurück, wenn mindestens eine Übereinstimmung in der Tabelle vorhanden ist. 8.Union und Union alle mysql> wähle aid,aname aus testa -> union -> wähle bid,bname aus testb;+------+----------+| aid | aname |+------+----------+| 1 | xiaoming || 2 | LY || 3 | KUN || 4 | ZIDONG || 5 | HB || 6 | niu || 7 | meng || 8 | mi |+------+----------+8 Zeilen im Set (0,01 Sek.) mysql> wähle aid,aname aus testa -> alles verschmelzen -> wähle bid,bname aus testb;+------+----------+| aid | aname |+------+----------+| 1 | xiaoming || 2 | LY || 3 | KUN || 4 | ZIDONG || 5 | HB || 1 | xiaoming || 2 | LY || 3 | KUN || 4 | ZIDONG || 6 | niu || 7 | meng || 8 | mi |+------+----------+12 Zeilen im Set (0,00 Sek.) Zusammenfassung: „Union“ entfernt Duplikate, „Union All“ hingegen nicht. Oben finden Sie den detaillierten Inhalt der Zusammenfassung der MySQL-Abfragesyntax. Weitere Informationen zur MySQL-Abfragesyntax finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Prozessdiagramm für die Ideenbereitstellung und Tomcat-Dienstimplementierung
>>: Detaillierte Erläuterung des Vuex-Gesamtfalls
In diesem Artikelbeispiel wird der spezifische Co...
In diesem Artikel werden einige der Techniken ausf...
Baidu Cloud-Festplatte: Link: https://pan.baidu.c...
Hinweis: Diese Tabelle ist aus dem W3School-Tutor...
Das Span-Tag wird häufig beim Erstellen von HTML-W...
Wie kann die Seiten-Rendering-Zeit im Browser so ...
Dieser Artikel stellt hauptsächlich die Wirkung d...
Vor einiger Zeit musste das Projekt die Funktion ...
Manchmal möchten wir nicht, dass der Inhalt unser...
CentOS 8 ist offiziell veröffentlicht! CentOS ent...
Inhaltsverzeichnis So setzen Sie Cookies Nachteil...
Lösung Fügen Sie position:relative zum übergeordn...
Überblick Bei kleinen und mittelgroßen Projekten ...
Vorwort: Docker ist eine Open-Source-Anwendungsco...
In diesem Artikel wird der spezifische Code von J...