suchen
Heimphp教程PHP开发Informationen zu den Grundlagen der ersten Schritte mit gespeicherten SQL-Prozeduren

Im College wird nichts über gespeicherte Prozeduren erwähnt. Ich habe immer noch keine Verwendung für gespeicherte Prozeduren. Dies kann an der Richtung der Software liegen. Für die zukünftige Entwicklung habe ich beschlossen, von Grund auf zu lernen.

Hier ist die Definition einer gespeicherten Prozedur

Eine gespeicherte Prozedur ist eine Reihe von SQL-Anweisungen zum Ausführen bestimmter Funktionen. Sie wird kompiliert und in der Datenbank gespeichert Prozedur und gegebene Parameter, wenn die gespeicherte Prozedur mit Parametern ausgeführt wird.

In den Serienversionen von SQL Server werden gespeicherte Prozeduren in zwei Kategorien unterteilt: vom System bereitgestellte gespeicherte Prozeduren und benutzerdefinierte gespeicherte Prozeduren.

System SP wird hauptsächlich in der Master-Datenbank gespeichert und mit dem Präfix sp_ versehen. Die gespeicherte Systemprozedur ruft hauptsächlich Informationen aus Systemtabellen ab und verwaltet so SQL Server für Systemadministratoren.

Häufig verwendete gespeicherte Systemprozeduren sind:

exec sp_databases; --查看数据库
exec sp_tables;        --查看表
exec sp_columns student;--查看列
exec sp_helpIndex student;--查看索引
exec sp_helpConstraint student;--约束
exec sp_stored_procedures;
exec sp_helptext 'sp_stored_procedures';--查看存储过程创建、定义语句
exec sp_rename student, stuInfo;--修改表、索引、列的名称
exec sp_renamedb myTempDB, myDB;--更改数据库名称
exec sp_defaultdb 'master', 'myDB';--更改登录名的默认数据库
exec sp_helpdb;--数据库帮助,查询数据库信息
exec sp_helpdb master;

Benutzerdefinierte gespeicherte Prozeduren werden von Benutzern erstellt und können eine bestimmte Funktion ausführen, z. B. gespeicherte Prozeduren, die die von ihnen benötigten Dateninformationen abfragen der Benutzer.

Hier betrachten wir die Vorteile gespeicherter Prozeduren

(1) Wiederverwendung. Gespeicherte Prozeduren können wiederverwendet werden, wodurch die Arbeitsbelastung der Datenbankentwickler verringert wird.

(2) Leistung verbessern. Gespeicherte Prozeduren werden bei ihrer Erstellung kompiliert und müssen bei zukünftiger Verwendung nicht erneut kompiliert werden. Allgemeine SQL-Anweisungen müssen bei jeder Ausführung kompiliert werden, sodass die Verwendung gespeicherter Prozeduren die Effizienz verbessert.

(3) Reduzieren Sie den Netzwerkverkehr. Die gespeicherte Prozedur befindet sich auf dem Server. Beim Aufruf müssen Sie nur den Namen und die Parameter der gespeicherten Prozedur übergeben, wodurch die über das Netzwerk übertragene Datenmenge reduziert wird.

(4) Sicherheit. Parametrisierte gespeicherte Prozeduren können SQL-Injection-Angriffe verhindern, und auf gespeicherte Prozeduren können Berechtigungen zum Gewähren, Verweigern und Widerrufen angewendet werden.

Okay, werfen wir einen Blick auf die grundlegende Syntax der Erstellung

定义存储过程的语法
    CREATE  PROC[EDURE]  存储过程名
              @参数1  数据类型 = 默认值,
               …… ,
              @参数n  数据类型 OUTPUT
            AS
            SQL语句
    GO
,参数是可选的
,参数分为输入参数、输出参数
,输入参数允许有默认值
  这里来创建一个简单的存储过程
 
CREATE PROCEDURE UserLogin
@name varchar(20),
@password varchar(20)
AS
-- 定义一个临时用来保存密码的变量
--DECLARE @strPwd NVARCHAR(20) 这里先不介绍变量。稍后的文章会详细讲到
BEGIN
select * from userinfo where userName=@name and userPass=@password
END
GO
首先我们用简单的sql查询
select * from userinfo where userName='admin'
查询结果:
---------------------
UserName  UserPass
Admin      Admin
现在我们来执行我们的存储过程
exec UserLogin admin,admin
--或这样调用:
EXEC UserLogin @name='admin',@password='admin'
查询结果:
---------------------
UserName  UserPass
Admin      Admin

Beachten Sie, dass in SQL SERVER alle benutzerdefinierten Variablen mit „@“ beginnen. Das Schlüsselwort OUTPUT gibt an, dass dieser Parameter für die Ausgabe verwendet wird, und nach AS steht der Inhalt der gespeicherten Prozedur. Solange der obige Code einmal im „Query Analyzer“ ausgeführt wird, erstellt SQL SERVER eine gespeicherte Prozedur mit dem Namen „UserLogin“ in der aktuellen Datenbank. Sie können „Enterprise Manager“ öffnen, die Datenbank auswählen, mit der Sie gerade arbeiten, und dann in der Baumliste auf der linken Seite „Programmierbarkeit->Gespeicherte Prozeduren“ auswählen. Zu diesem Zeitpunkt können Sie die gerade erstellte Datenbank in der Liste sehen Auf der rechten Seite befindet sich die gespeicherte Prozedur (falls nicht, aktualisieren Sie sie einfach).

Ich habe gesehen, dass es zwei Möglichkeiten gibt, gespeicherte Prozeduren in Daten aufzurufen (EXEC und EXECUTE sind hier gleichwertig);

EXEC-Prozessname Parameterwert 1, Parameterwert 2,...


oder

EXEC-Parameter 1=Parameterwert 1, Parameter 2=Parameterwert 2....

Wir haben es auch oben gesehen.

Wenn Sie eine gespeicherte Prozedur löschen möchten, verwenden Sie drop

wie folgt

drop PROCEDURE UserLogin

Was nützt es, eine solche gespeicherte Prozedur zu erstellen? Sehen Sie sich die Übereinstimmung in den Daten an.

Wir arbeiten an einem Web- oder Winform-Programm. Nun, wir können diese gespeicherte Prozedur aufrufen, um uns anzumelden. Gemäß den übergebenen Parametern, wenn in der Abfrage ein Datensatz vorhanden ist , dann befindet sich dieser Datensatz in der Datenbank. Wenn er vorhanden ist, bedeutet dies, dass die Anmeldung erfolgreich war, andernfalls schlägt sie fehl.

Dies ist sicherer und kann SQL-Injection verhindern.


Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

MinGW – Minimalistisches GNU für Windows

MinGW – Minimalistisches GNU für Windows

Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

SecLists

SecLists

SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor