suchen
HeimDatenbankMySQL-Tutorial6 Tipps, die Sie beim Erlernen von MySQL beherrschen sollten

MySQL wird aufgrund seiner kompakten Größe und effizienten Funktionsweise zunehmend in Datenbankanwendungen eingesetzt. Als wichtiger Teil der LAMP- (oder WAMP-)Entwicklung verdient MySQL die Aufmerksamkeit und das sorgfältige Studium von PHP-Entwicklern.

1. Jede Befehlszeile endet mit einem Semikolon (;)

Bei MySQL müssen Sie sich als Erstes merken: Jede Zeile von seine Befehle enden mit einem Semikolon (;), aber wenn eine MySQL-Zeile in den PHP-Code eingefügt wird, ist es am besten, das folgende Semikolon wegzulassen, zum Beispiel:

mysql_query ("INSERT INTO tablename (first_name, last_name) VALUES ('$first_name', $last_name')");

Dies liegt daran, dass auch PHP endet Eine Zeile mit einem Semikolon verwirrt manchmal den PHP-Parser, daher ist es besser, sie wegzulassen. In diesem Fall wird das Semikolon zwar weggelassen, PHP fügt es jedoch automatisch für Sie hinzu, wenn Sie den MySQL-Befehl ausführen.

2. Verwenden Sie assoziative Arrays, um auf Abfrageergebnisse zuzugreifen

Sehen Sie sich das folgende Beispiel an:

$connection = mysql_connect("localhost", "albert", "shhh");  
mysql_select_db("winestore", $connection);  
$result = mysql_query("SELECT cust_id, surname,  
firstname FROM customer", $connection);  

while ($row = mysql_fetch_array($result))  
{  
echo "ID:t{$row["cust_id"]}n";  
echo "Surnamet{$row["surname"]}n";  
echo "First name:t{$row["firstname"]}nn";  
}

Die Funktion mysql_fetch_array() fügt eine Zeile mit Abfrageergebnissen in ein Array ein , was gleichzeitig erfolgen kann. Auf zwei Arten referenziert, zum Beispiel kann cust_id auf die folgenden zwei Arten gleichzeitig referenziert werden: $row["cust_id"] oder $row[0]. Offensichtlich ist Ersteres viel besser lesbar als Letzteres.

Wenn bei einer Mehrtabellen-Join-Abfrage zwei Spaltennamen gleich sind, ist es am besten, sie durch Aliase zu trennen:

SELECT winery.name AS wname, region.name AS rname, FROM winery, region WHERE winery.region_id = region.region_id;  

列名的引用为:$row["wname"] 和 $row["rname"]

Nach der Angabe der Tabellenname und der Spaltenname. Im Fall von wird nur der Spaltenname in Anführungszeichen gesetzt:

SELECT winery.region_id   
FROM winery   
列名的引用为: $row["region_id"]

Die Referenz der Aggregatfunktion ist der Referenzname:

SELECT count(*) 
FROM customer; 
列名的引用为: $row["count(*)"]

3. TEXT-, DATE- und SET-Datentyp

Für die Felder der MySQL-Datentabelle muss ein Datentyp definiert sein. Es gibt etwa 25 Optionen, von denen die meisten unkompliziert sind und keiner weiteren Erklärung bedürfen. Aber es gibt einige, die erwähnt werden müssen.

TEXT ist kein Datentyp, auch wenn dies in manchen Büchern behauptet wird. Es sollte eigentlich „LONG VARCHAR“ oder „MEDIUMTEXT“ sein.

Das Format des Datentyps DATE ist JJJJ-MM-TT, zum Beispiel: 1999-12-08. Sie können die Datumsfunktion ganz einfach verwenden, um die aktuelle Systemzeit in diesem Format zu erhalten: date(„Y-m-d“) Darüber hinaus können Sie zwischen DATA-Datentypen subtrahieren, um den Zeitunterschied in Tagen zu erhalten:

$age = ($current_date - $birthdate);

Die Menge SET ist ein nützlicher Datentyp, der der Aufzählung ENUM etwas ähnelt, mit der Ausnahme, dass SET mehrere Werte speichern kann und ENUM nur einen Wert speichern kann. Darüber hinaus kann der SET-Typ nur maximal 64 vordefinierte Werte haben, während der ENUM-Typ maximal 65.535 vordefinierte Werte verarbeiten kann. Was sollen wir tun, wenn wir eine Sammlung mit mehr als 64 Werten benötigen? Zu diesem Zeitpunkt müssen wir mehrere Sammlungen definieren, um dieses Problem gemeinsam zu lösen.

4. Verwenden Sie mysql_unbuffered_query(), um schnelle Skripte zu entwickeln

Diese Funktion kann verwendet werden, um die Funktion mysql_query() zu ersetzen. Der Hauptunterschied besteht darin, dass mysql_unbuffered_query() sofort nach der Ausführung der Abfrage zurückkehrt. ohne zu warten. Oder sperren Sie die Datenbank. Die Anzahl der zurückgegebenen Zeilen kann jedoch nicht mit der Funktion mysql_num_rows() überprüft werden, da die Größe des Ausgabeergebnissatzes unbekannt ist.

5. Platzhalterzeichen

Es gibt zwei Arten von Platzhalterzeichen in SQL: „*“ und „%“. Wird in verschiedenen Situationen verwendet. Beispiel: Wenn Sie alle Inhalte der Datenbank sehen möchten, können Sie wie folgt abfragen:

SELECT * FROM dbname WHERE USER_ID LIKE '%';

Hier werden beide Platzhalter verwendet. Sie bedeuten dasselbe – sie stimmen beide mit einer beliebigen Zeichenfolge überein –, werden jedoch in unterschiedlichen Kontexten verwendet. „*“ wird zum Abgleichen von Feldnamen und „%“ zum Abgleichen von Feldwerten verwendet. Eine weitere Sache, die nicht leicht zu bemerken ist, ist, dass das Platzhalterzeichen „%“ zusammen mit dem Schlüsselwort LIKE verwendet werden muss. Es gibt auch ein Platzhalterzeichen, den Unterstrich „_“, der eine andere Bedeutung als oben hat und für die Übereinstimmung mit jedem einzelnen Zeichen verwendet wird.

6. NICHT NULL und leere Datensätze

Was passiert, wenn der Benutzer auf die Schaltfläche „Senden“ klickt, ohne etwas auszufüllen? Wenn Sie wirklich einen Wert benötigen, können Sie zur Datenvalidierung clientseitiges oder serverseitiges Scripting verwenden. In der Datenbank dürfen jedoch einige Felder leer bleiben und mit nichts gefüllt werden. Für einen solchen Datensatz wird MySQL etwas tun: den Wert NULL einfügen, was die Standardoperation ist.

Wenn Sie in der Felddefinition (beim Erstellen oder Ändern dieses Felds) dafür NOT NULL deklarieren, lässt MySQL dieses Feld leer und füllt es mit nichts. Wenn Sie für ein Feld vom Aufzählungstyp ENUM NOT NULL dafür deklarieren, fügt MySQL den ersten Wert des Aufzählungssatzes in das Feld ein. Mit anderen Worten: MySQL verwendet den ersten Wert im Aufzählungssatz als Standardwert für diesen Aufzählungstyp.

Es gibt einige Unterschiede zwischen einem Datensatz mit dem Wert NULL und einem leeren Datensatz. Das Platzhalterzeichen % kann mit leeren Datensätzen übereinstimmen, aber nicht mit NULL-Datensätzen. Irgendwann kann diese Unterscheidung unbeabsichtigte Folgen haben. Meiner Erfahrung nach sollte jedes Feld als NOT NULL deklariert werden. Auf diese Weise können viele SELECT-Abfrageanweisungen normal ausgeführt werden. Beachten Sie, dass Sie bei der Suche nach NULL das Schlüsselwort „IS“ verwenden müssen und LIKE nicht ordnungsgemäß funktioniert. Als Letztes ist zu erwähnen, dass der Wert des neu hinzugefügten Felds im ursprünglichen Datensatz NULL oder Null sein kann, wenn Sie bereits einige Datensätze in der Datenbank haben, bevor Sie ein neues Feld hinzufügen oder ändern. Dies kann als Fehler von MySQL angesehen werden, daher müssen Sie in diesem Fall besonders vorsichtig sein, wenn Sie SELECT-Abfragen verwenden.

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
Was sind die Grenzen der Verwendung von Ansichten in MySQL?Was sind die Grenzen der Verwendung von Ansichten in MySQL?May 14, 2025 am 12:10 AM

MySQLViewShavelimitations: 1) Sie sind supportallsqloperationen, restriktedatamanipulation ThroughviewswithjoinSuBqueries.2) Sie können sich angesehen, insbesondere mit der kompetenten Formata -Ansichten, die docrexQuqueriesorlargedatasets angezeigt werden

Sicherung Ihrer MySQL -Datenbank: Hinzufügen von Benutzern und Gewährung von BerechtigungenSicherung Ihrer MySQL -Datenbank: Hinzufügen von Benutzern und Gewährung von BerechtigungenMay 14, 2025 am 12:09 AM

OrteSermanagementinmysqlisicialforenHancingSecurityAnsuringEffizienceDatabaseoperation.1) Usecreateutertoaddusers, spezifizierende Connections mit 'localhost'or@'%'.

Welche Faktoren beeinflussen die Anzahl der Trigger, die ich in MySQL verwenden kann?Welche Faktoren beeinflussen die Anzahl der Trigger, die ich in MySQL verwenden kann?May 14, 2025 am 12:08 AM

Mysqldoes nicht imposeahardlimitontriggers, aber praktische Faktorendeterminetheireffectiveuse: 1) serverconfigurationImpactstriggermanagement;

MySQL: Ist es sicher, Blob zu speichern?MySQL: Ist es sicher, Blob zu speichern?May 14, 2025 am 12:07 AM

Ja, es ist safetostoreblobdatainmysql, butconsiderthesefactors: 1) StorageSpace: BloBScanconSignificantantspace, potenziellincreaseingCostsandSlowingPerformance.2) Leistung: größereRowsisDuetoBoBsMayslowdownquers.3) BackupandRecovery:

MySQL: Hinzufügen eines Benutzers über eine PHP -Weboberfläche hinzufügenMySQL: Hinzufügen eines Benutzers über eine PHP -Weboberfläche hinzufügenMay 14, 2025 am 12:04 AM

Das Hinzufügen von MySQL -Benutzern über die PHP -Weboberfläche kann MySQLI -Erweiterungen verwenden. Die Schritte lauten wie folgt: 1. Verbinden Sie eine Verbindung zur MySQL -Datenbank und verwenden Sie die MySQLI -Erweiterung. 2. Erstellen Sie einen Benutzer, verwenden Sie die Anweisung createUser und verwenden Sie die Funktion password (), um das Kennwort zu verschlüsseln. 3.. Verhindern Sie die SQL -Injektion und verwenden Sie die Funktion mySQLI_REAL_ESCAPE_STRING (), um die Benutzereingabe zu verarbeiten. V.

MySQL: Blob und andere Nicht-SQL-Speicher, was sind die Unterschiede?MySQL: Blob und andere Nicht-SQL-Speicher, was sind die Unterschiede?May 13, 2025 am 12:14 AM

Mysql'SbloBissableForstoringBinaryDatawithinarelationalDatabase, whilenosqloptionslikemongodb, Redis und CassandraofferFlexible, skalablessolutionenfornernstrukturierteData.blobissimplerbutcanslowdownscalgedlargedDataTTersClaTTersScalgedlargedDataTersClaTTersScalgedlargedDataTersClaTTERSCHITHLARGEGEGEBEN

MySQL Fügen Sie Benutzer hinzu: Syntax-, Optionen und Best Practices für SicherheitsverhältnisseMySQL Fügen Sie Benutzer hinzu: Syntax-, Optionen und Best Practices für SicherheitsverhältnisseMay 13, 2025 am 12:12 AM

ToaddauserinMysql, Verwendung: createUser'username '@' host'identifiedBy'password '; hier'Showtodoitesecurely: 1) choosethehostCrefulyTocon TrolAccess.2) setResourcelimits withOptionslikemax_queries_per_hour.3) UsSeStong, Uniquepasswords.4) Enforcesl/tlsConnectionsWith

MySQL: Wie vermeidet man String -Datentypen gemeinsame Fehler?MySQL: Wie vermeidet man String -Datentypen gemeinsame Fehler?May 13, 2025 am 12:09 AM

ToavoidCommonMistakeswithStringDatatypesinmysql, Verständnisstringtypenuances, ChoosetherightType, und ManageCodingandCollationsetingseffekt.1) UsecharforFixed-Länge-Strings, Varcharforvariable-Länge und Ventionlargerdata.2) -Tetcorrectaracters und Ventionlargerdata.2)

See all articles

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

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Nordhold: Fusionssystem, erklärt
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
Mandragora: Flüstern des Hexenbaum
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

WebStorm-Mac-Version

WebStorm-Mac-Version

Nützliche JavaScript-Entwicklungstools

mPDF

mPDF

mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

MantisBT

MantisBT

Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Leistungsstarke integrierte PHP-Entwicklungsumgebung