1. Mit MySQL verbinden
Format: mysql -h Hostadresse -u Benutzername -p Benutzerpasswort
1: Mit MYSQL auf diesem Rechner verbinden.
Öffnen Sie zuerst das DOS-Fenster, geben Sie dann das Verzeichnis mysqlbin ein und geben Sie dann den Befehl mysql -uroot -p ein. Nach dem Drücken der Eingabetaste werden Sie aufgefordert, Ihr Passwort einzugeben, den Superuser root hat kein Passwort, also drücken Sie einfach die Eingabetaste. Sie können MYSQL eingeben. Die MYSQL-Eingabeaufforderung lautet: mysql>.
2. Beispiel 2: Verbindung zu MYSQL auf dem Remote-Host herstellen. Angenommen, die IP des Remote-Hosts lautet 110.110.110.110, der Benutzername lautet root und das Kennwort lautet abcd123. Geben Sie dann den folgenden Befehl ein:
mysql -h110.110.110.110 -uroot -pabcd123
(Hinweis: u und root müssen keine Leerzeichen hinzufügen, und das Gleiche gilt auch für andere)
3. Beenden Sie MYSQL-Befehl: Beenden (Enter).
2. Passwort ändern
Format: mysqladmin -u Benutzername -p altes Passwort Passwort neues Passwort
1. Beispiel 1: Fügen Sie dem Root ein Passwort ab12 hinzu. Geben Sie zunächst unter DOS das Verzeichnis mysqlbin ein und geben Sie dann den folgenden Befehl ein:
mysqladmin -uroot -password ab12
Hinweis: Da root am Anfang kein Passwort hat, kann das Element -p altes Passwort weggelassen werden .
2. Beispiel 2: Ändern Sie das Root-Passwort in djg345.
mysqladmin -uroot -pab12 Passwort djg345
3. Neue Benutzer hinzufügen. (Hinweis: Im Gegensatz zu den oben genannten handelt es sich bei den folgenden Befehlen um Befehle in der MySQL-Umgebung, daher folgt ihnen ein Semikolon als Befehlsabschluss)
Format: grant select on Database.* an Benutzername@Login-Host, der durch „Passwort“ identifiziert wird
Beispiel 1: Fügen Sie einen Benutzer test1 mit dem Passwort abc hinzu, damit er sich auf jedem Host anmelden kann und Abfrage-, Einfüge-, Änderungs- und Löschberechtigungen für alle Datenbanken hat. Stellen Sie zunächst als Root-Benutzer eine Verbindung zu MySQL her und geben Sie dann die folgenden Befehle ein:
Auswahl gewähren, einfügen, aktualisieren,
Löschen am *.* an [email=test2@localhost]test2@localhost[/email] identifiziert durch „ abc“;
Wenn Sie nicht möchten, dass test2 ein Passwort hat, können Sie einen anderen Befehl eingeben, um das Passwort zu entfernen.
Auswahl, Einfügen, Aktualisieren, Löschen auf mydb gewähren
.* an [email=test2@localhost]test2@localhost[/email], gekennzeichnet durch „“;
Ich habe über das Anmelden, das Hinzufügen von Benutzern, Passwortänderungen und andere Probleme. Werfen wir einen Blick auf die Datenbankoperationen in MySQL. Hinweis: Sie müssen sich zuerst bei MySQL anmelden. Die folgenden Vorgänge werden an der MySQL-Eingabeaufforderung ausgeführt und jeder Befehl endet mit einem Semikolon.
1. Allgemeine MySQL-Befehle
Datenbank erstellen
Datenbanknamen auswählen; Datenbanknamen löschen, um die Datenbank direkt zu löschen
Tabelle anzeigen
beschreiben; Tabellenname ; Detaillierte Beschreibung der Tabelle
Eindeutig hinzufügen, um doppelte Felder zu entfernen
mysqladmin Drop-Datenbankname Vor dem Löschen der Datenbank wird eine Eingabeaufforderung angezeigt.
Aktuelle MySQL-Version und aktuelles Datum anzeigen
select version(),current_date;
2. Ändern Sie das Root-Passwort in MySQL:
Shell>MySQL -u Root -P
MySQL> user set password=password(”xueok654123″) where user='root';
mysql> alle Datenbanken
mysql>zeige alle Tabellen in der Datenbank mysql an, dann
mysql>zeige die Spalteninformationen der Benutzertabelle in der MySQL-Datenbank an); gewähren
Erstellen Sie einen vollständigen Superuser, der von überall aus eine Verbindung zum Server herstellen kann, hierfür jedoch ein Kennwort verwenden muss
mysql> alle Berechtigungen für *.* gewähren; /email] identifiziert durch „etwas“ mit
Neuen Benutzer hinzufügen
Format: Gewähren Sie „select“ in der Datenbank.* dem Benutzernamen@Login-Host, der durch „Passwort“ identifiziert wird
GEWÄHREN SIE ALLE PRIVILEGIEN FÜR *.* AN [email= monty@localhost ]monty@localhost[/email] IDENTIFIED BY 'something' WITH GRANT OPTION;
GEWÄHREN ALLE PRIVILEGIEN AUF *.* TO [email=monty@%E2%80%9D%]monty@“%[/ email]“ IDENTIFIED BY „something“ WITH GRANT OPTION;
Autorisierung entfernen:
mysql> from [email=root@%E2%80%9D%]root@“%[/ email]“ ;
mysql> delete from user where user="root" and host="%";
mysql> Flush-Berechtigungen;
Erstellen Sie einen benutzerdefinierten Benutzer und melden Sie sich bei einem bestimmten Client it363.com an um auf eine bestimmte Datenbank zuzugreifen, fangchandb
mysql >wählen, einfügen, aktualisieren, löschen, erstellen, ablegen auf fangchandb.* an custom@ it363.com, gekennzeichnet durch „passwd“
Tabelle umbenennen:
mysql > ;tabelle t1 umbenennen t2;
mysqldump
Backup-Datenbank
Shell> h myhost -u root -p create dbname
shell> mysqldump -h host -u root -p dbname < dbname_backup.sql
Wenn Sie nur den Tabellenerstellungsbefehl deinstallieren möchten, lautet der Befehl wie folgt:
Shell> mysqladmin -u root -p -d Datenbankname > mysqladmin -u root -p -t Datenbankname > ; a.sql
Was soll ich also tun, wenn ich nur Daten und keine SQL-Befehle möchte?
Mysqldump -T./ phptest-Treiber
Unter diesen kann nur der Parameter -T zum Entladen der Klartextdatei angegeben werden, der das Verzeichnis zum Entladen der Daten angibt./ gibt das aktuelle Verzeichnis an Gleiches Verzeichnis wie mysqldump. Wenn die Treibertabelle nicht angegeben ist, werden die gesamten Datenbankdaten entladen. Jede Tabelle generiert zwei Dateien, eine davon ist eine SQL-Datei, einschließlich der Ausführung der Tabellenerstellung. Die andere ist eine TXT-Datei, die nur Daten und keine SQL-Anweisungen enthält.
5. Sie können die Abfrage in einer Datei speichern und MySQL anweisen, die Abfrage aus der Datei zu lesen, anstatt auf Tastatureingaben zu warten. Sie können dazu das Dienstprogramm zur Shell-Typ-Umleitung verwenden. Wenn beispielsweise Abfragen
in der Datei my_file.sql gespeichert sind, können Sie diese Abfragen wie folgt ausführen:
Wenn Sie beispielsweise die Tabellenerstellungsanweisung vorab in sql.txt schreiben möchten:
mysql > mysql -h myhost -u root -p Datenbank < sql.txt
1. Installationsumgebung:
Windows XP
Mysql 4.0.17 Sie müssen ab sofort mysql -uroot -proot verwenden Zeit Sie können sich anmelden
Sie können mysql -h 172.5.1.183 -uroot verwenden, um sich remote oder lokal anzumelden. Dies hängt von der Richtlinie in der zweiten Zeile ab
Berechtigungsänderung wird wirksam:
1) net stop mysql
net start mysql
2)c:mysqlbinmysqladmin Flush-Privilegien
3) Nachdem Sie sich bei MySQL angemeldet haben, verwenden Sie die Flush-Privilegien-Anweisung
6. Datenbankmitarbeiter erstellen
Datenbankmitarbeiter erstellen ;
7. Die folgende Anweisung ist in MySQL Die Umgebung wird ausgeführt
Datenbanken anzeigen, für die der Benutzer Berechtigungen hat, Datenbanken anzeigen;
Zur Staffer-Datenbank wechseln, Staffer verwenden;
Tabellen mit Berechtigungen im aktuellen anzeigen Datenbank-Show-Tabellen;
Zeigen Sie die Struktur des Tabellenmitarbeiters.
8. Erstellen Sie eine Testumgebung.
Erstellen Sie einen Datenbankmitarbeiter.
abteilung,position,depart_pos
Tabelle s_position erstellen
(
id int not null auto_increment,
name varchar(20) not null default 'Manager', #Legen Sie den Standardwert fest
beschreibung varchar( 100),
Primärschlüssel PK_positon (id) #Setzen Sie den Primärschlüssel
);
Tabellenabteilung erstellen
(
id int not null auto_increment,
name varchar(20) not null default 'System Department', #Setzen Sie den Standardwert
Beschreibung varchar ( 100),
Primärschlüssel PK_department (id) #Setzen Sie den Primärschlüssel
);
erstellen Sie die Tabelle „depart_pos“
(
Department_id int not null,
position_id int not null,
Primary KEY PK_DEPART_POS (department_id, posity_id) #Lebenslauf und Primärschlüssel festlegen
);
Table Staffer erstellen
(
ID NOT NULL Primärschlüssel automatisch_inkrementieren, # Primärschlüssel festlegen Name varchar ( 20) nicht null Standardwert 'Anonymous', #Standardwert festlegen
Department_id int nicht null,
position_id int nicht null,
unique (department_id,position_id) #Legen Sie den eindeutigen Wert fest
);
3) Löschen Sie
mysql>
Drop Table Depart_pos;
Drop Table Department;
Drop Table s_position;
Tabellenmitarbeiter löschen;
Datenbankmitarbeiter löschen;
9、 Struktur ändern
mysql>
#Tabellenposition Spaltentest hinzufügen
Tabellenposition ändern add(test char(10));
#Tabellenposition Spaltentest ändern
Tabellenposition ändern Testzeichen ändern( 20) nicht null;
#Tabellenposition Spaltentest-Standardwert ändern
Tabellenposition ändern Testsatz-Standardwert „System“ ändern;
#Tabellenposition Test-Standardwert entfernen
Tabellenposition ändern Test-Drop-Standard ändern;
#Tabellenposition Spaltentest löschen
Tabellenposition ändern Spaltentest löschen;
#Tabelle Depart_Pos Primärschlüssel löschen
Tabelle ändern, Abfahrt_pos, Primärschlüssel löschen;
#Table Depart_pos Primärschlüssel hinzufügen
Tabelle Depart_pos Primärschlüssel hinzufügen PK_depart_pos (Abteilungs-ID, Positions-ID);
10. Systemabteilung','Systemabteilung');
in Abteilungswerte(Name,Beschreibung) einfügen('Abteilung für Öffentlichkeitsarbeit','Abteilung für Öffentlichkeitsarbeit');
in Werte für Abteilung(Name,Beschreibung) einfügen(' Kundendienstabteilung' ,'Kundendienstabteilung');
in Abteilungswerte (Name, Beschreibung) einfügen('Finanzabteilung', 'Finanzabteilung');
in Abteilungswerte (Name, Beschreibung) einfügen(' Testabteilung',' Testabteilung');
#Insert table s_position
insert into s_position(name,description) Values('Director','Director');
insert into s_position(name,description) Values('Manager' ,'Manager');
in s_position(name,description) einfügen value('normaler Mitarbeiter','normaler Mitarbeiter');
#In Tabelle Depart_pos einfügen
in Depart_pos( abteilung_id,position_id)
wähle a.id abteilung_id,b.id postion_id
aus abteilung a,s_position b;
#Insert table staffer
insert into staffer(name,department_id,position_id) Values(' Chen Dazhi',1,1 );
insert into staffer(name,department_id,position_id) Values('Li Wenbin',1,2);
insert into staffer(name,department_id,position_id) Values(' Ma Jia',1,3) ;
insert into staffer(name,department_id,position_id) Values('Kang Zhiqiang',5,1);
insert into staffer(name,department_id,position_id) Values(' Yang Yuru',4,1);
11. Vorgänge abfragen und löschen
#Personal und Positionen der Systemabteilung anzeigen
a.name,b.name abteilungsname,c.name position_name
vom Mitarbeiter auswählen a,department b,s_position c
Wobei a.department_id=b.id und a.position_id=c.id und b.name='System Department';
#Zeigt die Anzahl der Personen in der Systemabteilung an
Wählen Sie die Anzahl(*) von Mitarbeiter A, Abteilung B aus.
wobei a.department_id=b.id und b.name='Systemabteilung' sind.
#Zeigen Sie die Anzahl der Personen in jeder Abteilung an.
Wählen Sie die Anzahl aus (*) cou,b.name
from staffer a,department b
where a.department_id=b.id
group by b.name;
#Delete Customer Service Department
delete from Department where name='Customer Service Department';
#Ändern Sie die Finanzabteilung für die Finanzabteilung
aktualisieren Sie die Abteilung set name='Finance Department' where name='Finance Department';
12 🎜> Datenbank „staffer“ sichern
c:mysqlbinmysqldump -uroot -proot staffer> ;e:staffer.sql
Das erhaltene „staffer.sql“ ist ein SQL-Skript, das die Anweisung zum Erstellen der Datenbank nicht enthält, daher müssen Sie dies tun manuell
Erstellen Sie die Datenbank, bevor Sie sie importieren können
Um die Staffer-Datenbank wiederherzustellen, müssen Sie eine leere Datenbank „staffer“ erstellen
c:mysqlbinmysql -uroot -proot staffer
c:mysqlbinmysqldump -uroot -proot --databases staffer>e:staffer.sql
mysql -uroot -proot >e:staffer.sql
Aber In diesem Fall kann die Staffer-Bibliothek nicht im System vorhanden sein und Datenbanken mit anderen Namen können nicht importiert werden
Natürlich können Sie die Datei „staffer.sql“ manuell ändern
13. Daten aus Text in die Datenbank importieren
1) Verwenden Sie das Tool c:mysqlbinmysqlimport
Die Funktion dieses Tools besteht darin, die Datei in eine Tabelle mit demselben Namen wie die Dateierweiterung zu importieren, z. B.
staffer.txt, staffer Sie werden alle in importiert Personaltabelle
Allgemeine Optionen und Funktionen sind wie folgt
-d oder --delete Alle Informationen in der Datentabelle löschen, bevor neue Daten in die Datentabelle importiert werden
-f oder --force unabhängig davon, ob Wenn ein Wenn ein Fehler auftritt, erzwingt mysqlimport das weitere Einfügen von Daten
-i oder --ignore. Mysqlimport überspringt oder ignoriert Zeilen mit demselben eindeutigen Schlüsselwort
und die Daten in der importierten Datei werden ignoriert.
-l oder -lock-tables sperrt die Tabelle, bevor Daten eingefügt werden, und verhindert so, dass
Benutzerabfragen und -aktualisierungen beeinträchtigt werden, wenn Sie die Datenbank aktualisieren.
-r oder -replace Diese Option hat den gegenteiligen Effekt der Option -i; diese Option ersetzt
Es gibt Datensätze mit demselben eindeutigen Schlüssel in der Tabelle.
--fields-enclosed- by= char
Gibt an, wie die Datensätze in die Textdatei eingeschlossen werden sollen. In vielen Fällen werden
Daten in doppelte Anführungszeichen gesetzt. Standardmäßig werden Daten nicht in Zeichen eingeschlossen.
--fields-terminated- by=char
gibt das Trennzeichen zwischen den Werten der einzelnen Daten an. In einer durch Punkte getrennten Datei ist das Trennzeichen
ein Punkt. Mit dieser Option können Sie das Trennzeichen zwischen Daten angeben.
Das Standardtrennzeichen ist Tab
--lines-terminated- by=str
Diese Option gibt die Zeichenfolge
oder das Zeichen an, das Daten zwischen Zeilen in der Textdatei trennt. Standardmäßig verwendet mysqlimport newline als Zeilentrenner.
Sie können ein einzelnes Zeichen durch eine Zeichenfolge ersetzen:
Eine neue Zeile oder einen Wagenrücklauf.
Zu den häufig verwendeten Optionen des Befehls mysqlimport gehören -v zum Anzeigen der Version (Version),
-p zum Auffordern des Kennworts (Passwort) usw.
Es gibt ein Problem mit diesem Tool, das zu großen Problemen beim Datenimport führt.
Wir können dieses Feld zwar manuell festlegen, es kommt jedoch zu unerklärlichen Ergebnissen einfaches Beispiel.
Wir definieren die folgende abteilungsnummer.txt, speichern sie auf dem E-Laufwerk und das Intervall ist das Tabulatorzeichen t
10 10
11 11
12 24
Führen Sie den folgenden Befehl aus
c:mysqlbinmysqlimport - uroot -proot staffer e:depart_pos.txt
Hier wird kein Spaltenklammersymbol verwendet und für die Unterteilung wird das Standard-t verwendet, da es bei der Verwendung anderer Symbole zu Problemen kommen wird,
Ich weiß nicht, ob es an Windows liegt.
2 )Laden Sie Daten INFILE Dateiname in Tabellenname(Spalte1_Name,Spalte2_Name)
Dieser Befehl wird an der MySQL-Eingabeaufforderung verwendet. Der Vorteil besteht darin, dass Sie die zu importierenden Spalten angeben können . Das Beispiel ist wie folgt: Wird unter Windows verwendet. Ich weiß nicht, ob es sich um ein Windows-Problem oder ein chinesisches Problem handelt.
Und das ist nicht der Fall. Es erzeugt Nullwerte für die angegebene Spalte, was offensichtlich nicht das ist, was wir wollen, also verwenden Sie diese Tools mit Vorsicht
Geben Sie MySQL ein: mysql -user -ppassword --port=3307
1: Verwenden Sie die SHOW-Anweisung, um herauszufinden, was auf dem Server passiert. Welche Datenbanken derzeit vorhanden sind:
MYSQL> ;
2:2. Erstellen Sie eine Datenbank MYSQLDATA
3: Wählen Sie die von Ihnen erstellte Datenbank aus
USE MYSQLDATA; Vorgang ist erfolgreich!)
4: Überprüfen Sie, welche Tabellen in der aktuellen Datenbank vorhanden sind
MYSql> *** CHAR(1));
6: Zeigt die Struktur der Tabelle an:
mysql>
7: Datensätze zur Tabelle hinzufügen
mysql> ("hyq", "M");
8: Daten im Textmodus in die Datenbanktabelle laden (z. B. D:/mysql.txt)
LOAD DATA LOCAL INFILE "D:/mysql. txt" INTO TABLE MYTABLE;
9: Befehl zum Importieren einer .sql-Datei (zum Beispiel D:/mysql.sql)
mysql>use Database;
mysql>source d:/mysql .sql;
10: Tabelle löschen
mysql>drop TABLE MYTABLE;
11: Tabelle löschen
mysql>delete from MYTABLE;
12: Daten in der Tabelle aktualisieren
mysql>update MYTABLE set ** *="f" where name='hyq';
UPDATE [LOW_PRIORITY] [IGNORE] tbl_name
SET col_name1=expr1 [, col_name2=expr2 ...]
[WHERE where_definition]
[ ORDER BY ...]
[LIMIT rows]
oder
UPDATE [LOW_PRIORITY] [IGNORE] tbl_name [, tbl_name ...]
SET col_name1=expr1 [, col_name2= expr2 ... ]
[WHERE where_definition]
UPDATE aktualisiert die Spalte einer vorhandenen Tabellenzeile mit einem neuen Wert. Die SET-Klausel gibt an, welche Spalten geändert werden sollen und welche Werte ihnen zugewiesen werden sollen. Die WHERE
-Klausel gibt, falls angegeben, an, welche Zeile aktualisiert werden soll. Andernfalls werden alle Zeilen aktualisiert. Wenn die ORDER BY-Klausel angegeben ist, werden die Zeilen in der angegebenen Reihenfolge aktualisiert.
Wenn Sie das Schlüsselwort LOW_PRIORITY angeben, wird die Ausführung von UPDATE verzögert, bis keine anderen Clients die Tabelle lesen.
Wenn Sie das Schlüsselwort IGNORE angeben, wird die Update-Anweisung nicht abnormal abgebrochen, selbst wenn während des Update-Vorgangs ein Fehler aufgrund eines doppelten Schlüssels auftritt. Die Zeile, die den Konflikt verursacht, wird nicht aktualisiert.
Wenn über tbl_name in einem Ausdruck auf eine Spalte zugegriffen wird, verwendet UPDATE den aktuellen Wert der Spalte. Die folgende Anweisung setzt beispielsweise den Wert der Altersspalte auf den aktuellen Wert plus 1:
UPDATE persondata SET age=age+1;
UPDATE-Zuweisungen werden von links nach rechts ausgewertet. Die folgende Anweisung setzt beispielsweise die Altersspalte auf das Doppelte ihres Werts und fügt dann 1 hinzu:
UPDATE persondata SET age=age*2, age=age+1;
Wenn Sie die Spalte auf einen anderen Wert setzen Wenn Sie den aktuellen Wert ändern, bemerkt MySQL dies und aktualisiert ihn nicht.
UPDATE gibt die tatsächliche Anzahl der geänderten Zeilen zurück. In MySQL 3.22 oder neuer gibt die C-API-Funktion mysql_info()
die Anzahl der Zeilen zurück, die abgeglichen und aktualisiert wurden, sowie die Anzahl der Warnungen, die während UPDATE aufgetreten sind.
In MySQL 3.23 können Sie LIMIT # verwenden, um sicherzustellen, dass nur eine bestimmte Anzahl von Zeilen geändert wird.
Wenn eine ORDER BY-Klausel verwendet wird (unterstützt ab MySQL 4.0.0), werden die Zeilen in der angegebenen Reihenfolge aktualisiert. Dies ist wirklich nur in Verbindung mit LIMIT
sinnvoll.
Ab MySQL 4.0.4 können Sie auch einen UPDATE-Vorgang ausführen, der mehrere Tabellen enthält:
UPDATE items,month SET items.price=month.price
WHERE items.id=month.id ;
Hinweis: ORDER BY oder LIMIT können nicht für Multi-Table-UPDATE verwendet werden.
Schlüsselwörter: mysql
Start: net start mySql;
Eingabe: mysql -u root -p/mysql -h localhost -u root -p Datenbankname;
Datenbanken auflisten: Datenbanken anzeigen;
Datenbank auswählen: Datenbankname verwenden;
Tabellenspalten anzeigen: Spalten aus Tabellenname anzeigen; Verwenden Sie das Platzhalterzeichen _, um ein beliebiges Zeichen darzustellen, und %, um eine beliebige Zeichenfolge darzustellen ein Feld: Tabelle tabelName hinzufügen Spalte Feldname Datumstyp;
Mehrere Felder hinzufügen: Tabelle TabelName hinzufügen Spalte Feldname1 Datumstyp hinzufügen, Spalten hinzufügen Feldname2 Datumstyp Beim Ändern von Daten kann die Zeichenfolge eines Felds nicht in mehrere Zeilen erweitert werden, da sonst eine feste Rückgabe in den Daten gespeichert wird.
Fügen Sie ein Administratorkonto hinzu: Gewähren Sie alle auf *.* an [email=user@localhost]user@; localhost[/email] identifiziert durch „password“;
Fügen Sie nach der Eingabe jedes Statements am Ende ein Semikolon „;“ hinzu, oder Sie können „g“ hinzufügen.
Abfragezeit: select now();
Aktuellen Benutzer abfragen: Benutzer auswählen();
Datenbankversion abfragen: Version auswählen();
Aktuelle verwendete Datenbank abfragen: Datenbank auswählen();
1. Löschen Sie die Studentendatentabelle in der Datenbank student_course:
rm -f student_course/students.*
2. Sichern Sie die Datenbank: (Datenbanktest sichern)
Mysqldump -u root -p test>c:test.txt
Sicherungstabelle: ( Sichern Sie die Mytable-Tabelle unter der Testdatenbank)
mysqldump -u root -p test mytable>c:test.txt
Importieren Sie die Sicherungsdaten in die Datenbank: (zurück in die Testdatenbank importieren)
mysql - u root -p test
3. Temporäre Tabelle erstellen: (temporäre Tabelle zengchao erstellen)
temporäre Tabelle erstellen zengchao(name varchar(10) );
4. Um eine Tabelle zu erstellen, bestimmen Sie zunächst, ob die Tabelle existiert
Tabelle erstellen, falls nicht vorhanden, Students(…); wählen Sie * aus Tabelle1 aus, wobei 1<>1;
6. Tabelle kopieren
Tabelle erstellen, Tabelle2 auswählen * aus Tabelle1;
7. Benennen Sie die um Tabelle
alter table table1 rename as table2;
8. Ändern Sie den Typ der Spalte
Alter table table1 changes id int unsigned; // Ändern Sie den Typ der Spalten-ID in int unsigned
Alter table table1 change id sid int unsigned; // Ändern Sie den Namen der Spalte id in sid und ändern Sie das Attribut in int unsigned
9. Index erstellen
alter table table1 add index ind_id (id);
create index ind_id on table1 (id);
eindeutigen Index ind_id für Tabelle1 (id) erstellen;//eindeutigen Index erstellen
10. Index löschen
Index idx_id für Tabelle1 löschen;
Tabelle ändern Tabelle1 Index ind_id löschen; :“ und Spaltenname und „=" sind verbunden)
Wählen Sie concat(id,':',name,'=') von Students;
12. Limit (wählen Sie 10 bis 20 Elemente aus)< Die Nummer eines Datensatzes ist 0>
Wählen Sie * aus Schülerreihenfolge nach ID-Limit 9,10;
13. Von MySQL nicht unterstützte Funktionen
Transaktionen, Ansichten, Fremdschlüssel und referenzielle Integrität, gespeicherte Prozeduren und Trigger
14. MySQL verwendet Indexoperationssymbole
, Nachteile der Verwendung von Indizes
1) Verlangsamt die Geschwindigkeit beim Hinzufügen, Löschen und Ändern von Daten;
3) Erhöht die Belastung des Abfrageoptimierers.
Wenn der Abfrageoptimierer einen Ausführungsplan generiert, werden zu viele Indizes die Arbeitslast des Abfrageoptimierers erhöhen, was dazu führt, dass der optimale Abfrageplan nicht ausgewählt werden kann > 16. Indexeffizienz analysieren
Methode: Erklären Sie vor der allgemeinen SQL-Anweisung;
Bedeutung des Analyseergebnisses:
1) Tabelle: Tabellenname
2) Typ: Verbindungstyp, (ALL/Range/Ref). Unter diesen ist ref das Idealste;
3) Mögliche_Schlüssel: Fragen Sie den Indexnamen ab, der verwendet werden kann.
4) Schlüssel: Der tatsächlich verwendete Index.
5) Schlüssel_Len: Die Länge des verwendeten Teils des Index (Bytes);
6) ref: zeigt den Spaltennamen oder „const“ an (verstehe nicht, was es bedeutet);
7) rows: zeigt die Anzahl der Zeilen an, die MySQL glaubt, gescannt zu werden bevor Sie das richtige Ergebnis finden;
8) Extra: MySQLs Vorschlag;
17. Verwenden Sie kürzere Spalten mit fester Länge
1) Verwenden Sie möglichst kurze Datentypen Datentypen so weit wie möglich;
a) Verwenden Sie char anstelle von varchar, die Datenverarbeitung mit fester Länge ist schneller als die Daten mit variabler Länge.
b) Bei häufig geänderten Tabellen ist die Festplatte anfällig für Fragmentierung die Gesamtleistung der Datenbank;
c) Im Falle eines Datentabellenabsturzes sind Tabellen mit Datenzeilen fester Länge einfacher zu rekonstruieren. Bei Verwendung von Datenzeilen mit fester Länge ist die Startposition jedes Datensatzes ein Vielfaches der festen Datensatzlänge, was leicht erkannt werden kann, bei Verwendung von Datenzeilen mit variabler Länge ist dies jedoch nicht unbedingt der Fall.
d) Für den MyISAM-Typ Obwohl Das Konvertieren einer Datentabelle in eine Datenspalte mit fester Länge kann die Leistung verbessern, nimmt aber auch viel Platz in Anspruch
18. Verwenden Sie nicht null und enum
Versuchen Sie, die Spalte als nicht null zu definieren, damit die Daten kann effizienter ausgegeben werden. Schnell, benötigt weniger Platz und bei der Abfrage muss MySQL nicht prüfen, ob ein Sonderfall, also ein Nullwert, vorliegt, wodurch die Abfrage optimiert wird.
Wenn eine Spalte nur einen begrenzten Wert enthält B. das Geschlecht, ist es gültig oder eingeschrieben? Jahr usw. In diesem Fall sollten Sie erwägen, ihn in den Wert der Enum-Spalte umzuwandeln, da MySQL ihn schneller verarbeitet, da alle Enum-Werte durch Identifikation dargestellt werden Werte im System;
19. Optimierungstabelle verwenden
Bei Tabellen, die häufig geändert werden, kann es leicht zu Fragmentierung kommen, was es erforderlich macht, beim Abfragen der Datenbank mehr Festplattenblöcke zu lesen, was die Abfrageleistung verringert. Bei Tabellen mit variabler Länge kommt es zu Festplattenfragmentierungsproblemen. Dieses Problem tritt bei Blob-Datentypen stärker auf, da ihre Größen stark variieren. Sie können die Funktion „Tabelle optimieren“ verwenden, um sie zu defragmentieren, um sicherzustellen, dass die Datenbankleistung nicht abnimmt, und um von der Fragmentierung betroffene Datentabellen zu optimieren. Die Optimierungstabelle kann für Datentabellen vom Typ MyISAM und BDB verwendet werden. Tatsächlich besteht jede Defragmentierungsmethode darin, die Datentabelle mit mysqldump zu sichern und die Datentabelle dann mit der gesicherten Datei neu zu erstellen
20. Verwenden Sie die Prozedur „analysieren()“
Sie können die Prozedur „analysieren()“ zum Anzeigen verwenden Die besten Typvorschläge sind sehr einfach zu verwenden. Fügen Sie einfach die Prozedur „analysate()“ nach der SELECT-Anweisung hinzu; 🎜> Die zweite Anweisung erfordert, dass die Prozedur analyse() keine Aufzählungstypen mit mehr als 16 Werten oder mehr als 256 Bytes empfiehlt. Wenn es keine Begrenzung gibt, kann die Ausgabe sehr lang sein
21. Abfragecache verwenden
1) So funktioniert der Abfrage-Cache:
Wenn eine SELECT-Anweisung zum ersten Mal ausgeführt wird, merkt sich der Server den Textinhalt und die Abfrageergebnisse der Abfrage und speichert sie beim nächsten Mal, wenn er auf diese Anweisung trifft , wird es direkt aus dem Cache abgerufen. Wenn eine Datentabelle aktualisiert wird, werden alle zwischengespeicherten Abfragen für diese Datentabelle ungültig und verworfen.
2) Cache-Parameter konfigurieren:
Variable: query_cache _type, Abfrage-Cache-Betriebsmodus. Es gibt 3 Modi: 0: kein Caching; 1: Abfragen zwischenspeichern, sofern nicht mit „select sql_no_cache“ begonnen wird; 2: nur die Abfragen zwischenspeichern, die bei Bedarf mit „select sql_cache_size“ beginnen; Große werden nicht zwischengespeichert.
22. Passen Sie die Hardware an
1) Installieren Sie mehr Speicher auf der Maschine
2) Fügen Sie eine schnellere Festplatte hinzu, um die E/A-Wartezeit zu reduzieren.
Die Suchzeit ist der Hauptfaktor, der die Leistung bestimmt. Das Bewegen des Kopfes Wort für Wort ist am langsamsten. Sobald der Kopf positioniert ist, erfolgt das Lesen von der Spur sehr schnell.
3) Verteilen Sie die Festplattenaktivität auf verschiedene physische Festplattengeräte Die Datenbank wird auf verschiedenen physischen Geräten gespeichert, was sich von der Verwendung verschiedener Partitionen auf demselben physischen Gerät unterscheidet, da diese um dieselben physischen Ressourcen (Köpfe) konkurrieren.