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
Wenn das Home-Verzeichnis des Benutzers immer grö...
Ich wollte wissen, wie ich mit einem Domänennamen...
Inhaltsverzeichnis Standards für flüssige Animati...
Ich werde drei Tage benötigen, um den statischen ...
Inhaltsverzeichnis Einführung Indexierungsprinzip...
1. Umweltvorbereitung: Betriebssystem: CentOS Lin...
In letzter Zeit haben mich viele Studenten zur Ko...
Erstellen Sie ein neues Projekt test1 auf Code Cl...
Inhaltsverzeichnis 1. Automatische Installation m...
In diesem Artikelbeispiel wird der spezifische JS...
Vorwort Was ist eine langsame Abfrage und wie kan...
In diesem Tutorial erfahren Sie alles über die In...
Allgemeine utf8mb4-Sortierregeln in MySQL sind: u...
Lassen Sie uns ohne weitere Umschweife den Screen...
Bemerkung: Die Datenmenge in diesem Artikel beträ...