Zusammenfassung der in MySQL häufig verwendeten Verkettungsanweisungen

Zusammenfassung der in MySQL häufig verwendeten Verkettungsanweisungen

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:
  • MySQL verwendet „show status“, um MySQL-Serverstatusinformationen anzuzeigen
  • So erhalten Sie Tabelleninformationen in MySQL Show Table Status
  • Zusammenfassung häufig verwendeter SQL-Anweisungen zum Erstellen von MySQL-Tabellen
  • Notieren Sie eine Falle bei der Aktualisierung der MySQL-Update-Anweisung
  • Navicat Premium betreibt MySQL-Datenbank (führt SQL-Anweisungen aus)
  • Der Unterschied zwischen zwei MySQL-Anweisungen zum Löschen von Benutzern (Benutzer löschen und Benutzer löschen)
  • Zusammenfassung der MySQL-Datenbank-ähnlichen Anweisung zur Platzhalter-Fuzzy-Abfrage
  • Zusammenfassung der Methoden zum Schreiben von Urteilsaussagen in MySQL
  • Implementierungsanweisungen zur Duplikatsprüfung und Deduplizierung von MySQL-Daten
  • Verwendung der MySQL SHOW STATUS-Anweisung

<<:  Linux verwendet Shell-Skripte, um historische Protokolldateien regelmäßig zu löschen

>>:  Eine einfache und eingehende Studie zu Async und Await in JavaScript

Artikel empfehlen

Detaillierte Erklärung zur Verwendung verschiedener MySQL-Indizes

1. Langsames Abfrageprotokoll 1.1 MySQL-Protokoll...

Tutorial zur HTML-Tabellenauszeichnung (4): Rahmenfarbenattribut BORDERCOLOR

Um die Tabelle zu verschönern, können Sie untersc...

Beispielcode für ein großes Dropdown-Menü, implementiert in reinem CSS

Dies ist ein großes Dropdown-Menü, das rein in CS...

Vergleich der Effizienz verschiedener Methoden zum Löschen von Dateien in Linux

Testen Sie die Effizienz des Löschens einer große...

MySQL-Komplettabsturz: Detaillierte Erklärung der Abfragefilterbedingungen

Überblick In tatsächlichen Geschäftsszenarioanwen...

Verwendung von relativen und absoluten Pfaden unter Linux

01. Übersicht Absolute und relative Pfade kommen ...

Implementierung der Parametersprungfunktion im Vue-Projekt

Seitenbeschreibung:​ Hauptseite: Name —> shish...

Einführung in die Funktionen und Verwendung von Wert- und Namensattributen in HTML

1. Der in der Schaltfläche verwendete Wert bezieht...

So stellen Sie Docker-Containerdaten wieder her

Die Datenbankdaten der Projekttestumgebung sind v...

Zusammenfassung der wichtigsten Attribute des Body-Tags

bgcolor="Textfarbe" background="Hin...

Verwendung von Provide und Inject in Vue3

1. Erklärung von provide und inject Mit „Bereitst...

Vier Modi zum Öffnen und Schließen von Oracle

>1 Starten Sie die Datenbank Geben Sie im cmd-...