Sicht: Wenn eine temporäre Tabelle wiederholt verwendet wird, können Sie ihr einen Alias zuweisen, um die zukünftige Verwendung zu erleichtern. Sie können dann eine Ansicht erstellen, und der Alias ist der Name der Ansicht. Eine Ansicht ist lediglich eine virtuelle Tabelle, deren Daten dynamisch aus der physischen Tabelle gelesen werden. Änderungen an der physischen Tabelle führen daher zu einer Änderung der Ansicht. erstellen: Ansicht v1 als SQL erstellen Beispiel: Erstellen Sie Ansicht v1 als „select * from student where sid<10“ Wenn Sie nach der Erstellung das MySQL-Terminal verwenden, können Sie eine Tabelle mit dem Namen v1 sehen. Wenn Sie Navicate verwenden, können Sie sehen, dass in der Ansicht eine Ansicht mit dem Namen v1 generiert wird. Bei erneuter Verwendung können Sie direkt die Abfragetabellenmethode verwenden. Beispiel: select * from v1 Änderung: Sie können die SQL-Anweisungen nur in der Ansicht ändern. Ansicht ändern, Ansichtsname als SQL löschen: Drop-Ansicht, Ansichtsname auslösen: Beim Hinzufügen, Löschen, Ändern oder Überprüfen einer Tabelle (vorher, nachher oder danach) können Sie Trigger verwenden, um das zugehörige Verhalten anzupassen. Ändern Sie das Terminator-Trennzeichen in der SQL-Anweisung vorher nachher --Trennzeichen // -- before oder after definiert die Operation vor oder nach der Operation (Einfügen oder anderes) -- on stellt die Triggeroperation dar, nachdem die Operation in dieser Tabelle ausgeführt wurde -- CREATE TRIGGER t1 BEFORE INSERT für Lehrer für JEDE Zeile --BEGINNEN --INSERT in Kurs(cname) VALUES('Ultraman'); --ENDE // --Trennzeichen; -- in Lehrer(tname) einfügen VALUES('triggertest111') -- --Trennzeichen // -- ERSTELLEN SIE TRIGGER t1 VOR DEM INSERT für JEDE Zeile des Studenten --BEGINNEN -- INSERT in Lehrer(tname) VALUES('Ultraman'); --ENDE // --Trennzeichen; -- einfügen in Student (Geschlecht, Sname, Klassen-ID) VALUES('Student', '1. Klasse 111', 3); -- Trigger löschen -- Trigger t1 löschen; -- NEW und OLD stellen neue und alte Daten dar, um sie konsistent zu machen -- Trennzeichen // -- Erstellen Sie TRIGGER t1 VOR dem Einfügen für den Studenten für jede Zeile --BEGINNEN --Hier gibt „new“ die neu eingefügten Daten an, und „old“ wird normalerweise zum Löschen verwendet – insert into teacher(tname) VALUES(NEW.sname); -- Ende // --Trennzeichen; einfügen in Student (Geschlecht, Sname, Klassen-ID) VALUES ('Student', 'Studentenname', 3); Gespeicherte Prozedur: Im Wesentlichen handelt es sich dabei um eine Sammlung von SQL-Anweisungen, und dieser Sammlung wird dann ein Alias zugewiesen. Der Unterschied zwischen einer Ansicht und einer Tabelle besteht darin, dass eine Ansicht eine SQL-Abfrageanweisung ist, die als Tabelle behandelt wird. Weg: 1 msyql----gespeicherte Prozedur für Programmaufrufe 2 msyql --- Führen Sie keine gespeicherten Prozeduren aus, das Programm schreibt SQL 3 mysql - keine gespeicherten Prozeduren ausführen, Programm schreibt Klassen und Objekte (in SQL-Anweisungen konvertieren) Erstellungsmethode:
-- Aufrufen einer gespeicherten Prozedur rufe p2(5,2) auf<br data-filtered="gefiltert"><br data-filtered="gefiltert"><em id="__mceDel"> cursor.callproc('p1',(5,2)) in pymysql</em> -- 2 mit Parameter im Parameter -- Trennzeichen // -- erstellen Sie das VERFAHREN p2( -- in n1 int, -- in n2 int -- ) --BEGINNEN --Wählen Sie * vom Studenten aus, wobei sid<n1; -- -- Ende //<br data-filtered="gefiltert"><br data-filtered="gefiltert"> rufe p2(5,2) auf<br data-filtered="gefiltert"><br data-filtered="gefiltert"><em id="__mceDel"> cursor.callproc('p1',(5,2)) in pymysql</em> -- 3 out-Parameter Wenn Sie out als Parameter in einer gespeicherten Prozedur verwenden, kann die Variable extern aufgerufen werden. -- In der gespeicherten Prozedur gibt es keine Rückgabe. Wenn Sie eine Variable extern aufrufen möchten, müssen Sie out verwenden. --Trennzeichen // -- erstellen Sie das VERFAHREN p3( -- in n1 int, --out n2 int -- ) --BEGINNEN --set n2=444444; --Wählen Sie * vom Studenten aus, wobei sid<n1; -- -- Ende // -- --Trennzeichen; -- -- set @v1=999 ist gleichbedeutend mit dem Erstellen einer Variablen auf Sitzungsebene -- set @v1=999; -- rufe p3(5,@v1) auf; -- select @v1; #Indem Sie eine Variable übergeben und diese dann überwachen, können Sie überwachen, ob die gespeicherte Prozedur erfolgreich ausgeführt wird -- in pymsyql -- -- Cursor.callproc('p3',(5,2)) -- r2=cursor.fetchall() -- drucken(r2) -- -- Die gespeicherte Prozedur enthält das Schlüsselwort out. Wenn Sie den Rückgabewert erhalten möchten, cursor.execute('select @_p3_0,@_p3_1') -- # Unter ihnen ist „select @_p3_0,@_p3_1“ eine feste Schreibmethode. Wählen Sie „@_stored procedure name_input parameter index position“ – cursor.execute („select @_p3_0,@_p3_1“) -- r3=cursor.fetchall() -- drucken(r3) -- Warum müssen wir den zurückgegebenen Wert fälschen, wenn wir einen Ergebnissatz haben? Da die gespeicherte Prozedur mehrere SQL-Anweisungen enthält, ist es unmöglich zu bestimmen, ob alle SQL-Anweisungen erfolgreich ausgeführt werden können. Mit der Out-Funktion lässt sich ermitteln, ob die SQL-Anweisung erfolgreich ausgeführt wurde. Wenn beispielsweise Erfolg mit 1, Teilerfolg mit 2 und Misserfolg mit 3 markiert wird Transaktionen in gespeicherten Prozeduren: Transaktionen: Dies wird als atomare Operation bezeichnet. DML-Anweisungen (Einfügen, Aktualisieren, Löschen) werden zusammen abgeschlossen und Transaktionen beziehen sich nur auf DML-Anweisungen, oder nur DML verfügt über Transaktionen. Merkmale der Transaktionen: Atomarität A: Eine Transaktion ist die kleinste Einheit und kann nicht geteilt werden. Konsistenz C: Transaktionen erfordern, dass alle DML-Anweisungen bei ihrer Ausführung erfolgreich sein oder fehlschlagen müssen. Isolation I: Es besteht eine Isolation zwischen Transaktion A und Transaktion B. Persistenz D: Dies ist die Garantie der Transaktion und das Zeichen für das Ende der Transaktion (die Daten im Speicher werden vollständig auf der Festplatte gespeichert). Transaktionsschlüsselwörter: Transaktion starten: Transaktion starten Ende der Transaktion: Transaktion beenden Transaktion festschreiben Rollback-Transaktion Grundlegende Vorgänge bei Transaktionen Trennzeichen // Prozedur p5 erstellen( in n1 int, aus n2 int ) beginnen 1 Anweisung, wenn eine abnormale Ausführung auftritt ( setze n2=1; zurückrollen; ) 2 Transaktion starten Käuferkonto - 100 Verkaufskonto +100 begehen 3 Ende des Satzes n2=2 Ende // Trennzeichen ; Auf diese Weise können Sie Fehler durch n2 erkennen und zurücksetzen. Nachfolgend finden Sie den detaillierten Code-Trennzeichen // Prozedur p6 erstellen( Ausgabecode TINYINT ) beginnen Geben Sie an, dass beim Auftreten einer SQLException die folgende Operation ausgeführt wird: DECLARE exit HANDLER for SQLEXCEPTION beginnen --Fehler Code = 1 setzen; zurückrollen; Ende; TRANSAKTION STARTEN; aus tb1 löschen; einfügen in tb2(Name)Werte('slkdjf') begehen; ---Erfolg Code = 2 Ende // Trennzeichen ; Verwendung von Cursorn in gespeicherten Prozeduren: Trennzeichen // Prozedur p7() erstellen beginnen Deklarieren Sie row_id int; Deklarieren Sie row_num int; Deklariere „erledigt“ in DEFAULT FALSE; Deklarieren Sie einen Cursor, deklarieren Sie den Cursor my_cursor, um „ID, Nummer“ aus A auszuwählen. Deklarieren Sie, dass done auf True gesetzt wird, wenn keine Daten vorhanden sind. Deklarieren Sie den Continue-Handler für nicht gefundene Sätze „done=True“. öffne my_cursor; öffne Cursor xxoo; LOOP starte Schleife mit dem Namen xxoo hole my_cursor in row_id,row_num; wenn fertig, dann, wenn fertig True ist, verlasse die Schleife, verlasse xxoo; Ende wenn; setze Temperatur=Zeilen-ID+Zeilennummer; einfügen in B(Zahl)VALUES(temp); Schleife beenden xxoo; Schleife schließen, my_cursor schließen; Ende // Trennzeichen ; Der obige Code wird in Python konvertiert für row_id,row_num in my_cursor: Prüfen Sie, ob sich Daten in der Schleife befinden. Wenn nicht, brechen Sie ab. brechen einfügen in B(num) Werte(row_id+row_num) Führen Sie SQL dynamisch aus und platzieren Sie SQL-Injection auf Datenbankebene: Trennzeichen \\ Prozedur p6 erstellen( in nid int) beginnen 1 Vorkompilieren (Vorabprüfung) der Legitimität einer bestimmten SQL-Anweisung 2 sql=format tpl+arg 3 SQL ausführen setze @nid=nid bereiten Sie die Produktion aus „Select * from student where sid>?“ vor. AUSFÜHREN von prod mit @nid; Freigabe aufheben, Produktion vorbereiten Ende \\ Trennzeichen ; Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: So verbinden Sie Xshell5 mit Linux in einer virtuellen Maschine und beheben den Fehler
>>: JS implementiert die zufällige Generierung von Bestätigungscodes
Nachdem Sie VMware installiert und eine neue virt...
Sechs Schritte zur Installation von MySQL (nur da...
Im Allgemeinen treffen wir die Personalabteilung n...
Eine Umgebung Alibaba Cloud Server: CentOS 7.4 64...
1. Anwendung von Multimedia in HTML_Flash-Animati...
Im vorherigen Artikel wurde ein ausführliches Bei...
Zu viele Verbindungen zur MySQL-Datenbank Dieser ...
Was ist JSX JSX ist eine Syntaxerweiterung von Ja...
Dieser Artikel stellt hauptsächlich die binären O...
Ich glaube, einige Leute haben dieses Bild gesehe...
Inhaltsverzeichnis 1. Flink-Übersicht 1.1 Grundle...
In diesem Artikel wird der Verbindungsfehler ECON...
1. Entpacken Sie das komprimierte MySQL-Paket in ...
INSERT INTO hk_test(Benutzername, Passwort) VALUE...
Inhaltsverzeichnis Lassen Sie uns zunächst kurz P...