Vorwort: In MySQL wird die Funktion CONCAT() verwendet, um mehrere Zeichenfolgen zu einer Zeichenfolge zu verketten. Mit dieser Funktion können wir das SQL heraustrennen, das nicht in einem Schritt erhalten werden konnte. Dies kann bei der Arbeit viel praktischer sein. Im Folgenden werden hauptsächlich einige häufig verwendete Szenarien vorgestellt. Hinweis: Gilt für Version 5.7 und niedrigere Versionen, möglicherweise sind geringfügige Unterschiede möglich. 1. Beitreten und alle Benutzer abfragen AUSWÄHLEN KONKAT( 'Benutzer: \'', BENUTZER, '\'@\'', GASTGEBER, '\';' ) ALS ABFRAGE AUS mysql.BENUTZER; # Wenn ' in der verknüpften Zeichenfolge erscheint, müssen Sie das Escape-Zeichen \ verwenden 2. DROP-Tabellen verknüpfen WÄHLEN KONKAT( 'DROP-Tabelle ', TABELLE_NAME, ';' ) AUS information_schema. TABELLEN WO TABLE_SCHEMA = "Test"; 3. Splice-Kill-Verbindung WÄHLEN concat('TÖTEN ', id, ';') AUS information_schema.PROZESSLISTE WO STATE LIKE 'Sortierindex erstellen'; 4. Fügen Sie die Anweisungen zusammen, um eine Datenbank zu erstellen WÄHLEN KONKAT( 'Datenbank erstellen', '`', SCHEMA_NAME, '`', ' STANDARDZEICHENSATZ ', STANDARD_ZEICHENSATZ_NAME, ';' ) AS CreateDatabaseQuery AUS information_schema.SCHEMATA WO SCHEMA_NAME NICHT IN ( 'Informationsschema', 'Leistungsschema', "mysql", 'System' ); 5. Verketten Sie Anweisungen, um Benutzer zu erstellen WÄHLEN KONKAT( 'Benutzer erstellen \'', Benutzer, '\'@\'', Gastgeber, '\'' ' IDENTIFIZIERT DURCH PASSWORT \'', Authentifizierungszeichenfolge, '\';' ) AS CreateUserQuery AUS mysql.`Benutzer` WO `Benutzer` NICHT IN ( 'Wurzel', „mysql.sitzung“, 'mysql.sys' ); # Es gibt eine Kennwortzeichenfolge. Sie können direkt einen Benutzer mit demselben Kennwort wie diese Instanz erstellen, indem Sie es in anderen Instanzen ausführen 6. Exportberechtigungsskript Dieses Shellskript verwendet ebenfalls Splicing #!/bin/bash #Funktion exportiert Benutzerrechte pwd=IhrPasswort expgrants () { mysql -B -u'root' -p${pwd} -N $@ -e "SELECT CONCAT( 'SHOW GRANTS FOR ''', Benutzer, '''@''', Host, ''';' ) AS Abfrage FROM mysql.user" | \ mysql -u'root' -p${pwd} $@ | \ sed 's/\(GRANT .*\)/\1;/;s/^\(Grants für .*\)/-- \1 /;/--/{x;p;x;}' } expgrants > /tmp/grants.sql echo "Berechtigungen löschen;" >> /tmp/grants.sql 7. Fragmentierung der Nachschlagetabelle Wählen Sie t.TABLE_SCHEMA aus, t.Tabellenname, t.TABLE_ROWS, concat(round(t.DATA_LENGTH / 1024 / 1024, 2), 'M') AS-Größe, t.INDEX_LENGTH, concat(round(t.DATA_FREE / 1024 / 1024, 2), 'M') AS datenfrei VON information_schema.tables t WHERE t.TABLE_SCHEMA = „Test“, Sortierung nach DATA_LENGTH desc; 8. Suchen Sie die Tabelle ohne Primärschlüssel. Diese wird nicht zum Spleißen verwendet, geben Sie sie also frei. #Suchen Sie eine Tabelle ohne Primärschlüssel in einer bestimmten BibliothekSELECT Tabellenschema, Tabellenname AUS information_schema.TABELLEN WO Tabellenschema = "Test" UND TABLE_NAME NICHT IN ( WÄHLEN Tabellenname AUS information_schema.table_constraints JOIN information_schema.key_column_usage k USING ( Einschränkungsname, Tabellenschema, Tabellenname ) WO t.constraint_type = "Primärschlüssel" UND t.table_schema = "test" ); #Suche nach Tabellen ohne Primärschlüssel außer SystembibliothekenSELECT t1.table_schema, t1.Tabellenname AUS information_schema.TABELLEN t1 LINKER ÄUSSERER JOIN information_schema.TABLE_CONSTRAINTS t2 ON t1.table_schema = t2.TABLE_SCHEMA UND t1.Tabellenname = t2.TABELLENNAME UND t2.CONSTRAINT_NAME IN ('PRIMARY') WO t2.table_name IST NULL UND t1.TABLE_SCHEMA NICHT IN ( 'Informationsschema', 'Leistungsschema', "mysql", 'System' ) ; Oben finden Sie den detaillierten Inhalt der häufig verwendeten Verkettungsanweisungen in MySQL. Weitere Informationen zu MySQL-Verkettungsanweisungen finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Linux verwendet Shell-Skripte, um historische Protokolldateien regelmäßig zu löschen
>>: Eine einfache und eingehende Studie zu Async und Await in JavaScript
Verifizierungsumgebung: [root@~~/]# rpm -qa | gre...
Installations- und Konfigurationsmethode für MySQ...
Das enctype-Attribut des FORM-Elements gibt den Ko...
Inhaltsverzeichnis Die benutzerdefinierte CSS-Var...
Die Beispiele in diesem Artikel laufen auf MySQL ...
Derzeit werden fast alle großen Websites und Anwe...
1.mysql-5.7.19-winx64.zip (das ist die kostenlose...
Angenommen, ein Knoten im Drei-Knoten-MGR ist abn...
1. Umweltvorbereitung Die IP-Adresse jedes Contai...
Vor Kurzem hat das Unternehmen damit begonnen, al...
Inhaltsverzeichnis Vorwort zx-Bibliothek $`Befehl...
Inhaltsverzeichnis 1. Vorbereitung: 2. Quellcode-...
Inhaltsverzeichnis 1. Aufgetretene Probleme 2. Id...
Es gibt offensichtliche Unterschiede zwischen der...
Der Linux-Stream-Editor ist eine nützliche Möglic...