Heim > Datenbank > MySQL-Tutorial > Hauptteil

Python-Full-Stack-Einführung in die MySQL-Datenbank

coldplay.xixi
Freigeben: 2020-12-17 10:39:36
nach vorne
2209 Leute haben es durchsucht

MySQL-TutorialSpalte Python-Full-Stack-Erklärung der Datenbank

Python-Full-Stack-Einführung in die MySQL-Datenbank

Empfohlen (kostenlos): MySQL-Tutorial

Drei Hauptaspekte:

1.Linux-Terminalbefehl

2.MySQL-Anweisung

3.Python-Aufruf

Terminalbefehl:

vi                                Texteditor

cat /etc/password |. grep "username" Benutzertabelle abrufen

sudo -i Get Root-Rechte

sudo apt-get install python3-pip Installiere pip3

sudo pip3 install pymysql Installiere MySQL

sudo apt-get install mysql-server Installiere den Server

sudo apt-get install mysql-client Installiere den Client

TSudo APT-get Update Leseliste Speichern unter/var/lib/APT/Lists

sudo APT-Get Upgrade und Update

Sudo /etc/init.d/mysql Status

sudo/ETC /init.d/mysql stop                                                                                                   / etc/

MySQL -h Hostadresse -u Benutzername -p Passwort                                                                                                                        aus 1. Root

chmod 644-Dateinamen abrufen                                    3. Geben Sie das Verzeichnis der Konfigurationsdatei ein tCP ETC/MSQL.CNF/MySQLD.CNF.BAK 4. Backup

Subl mysqld.cnf 5.vi Open Source-Datei

[mysqld] Verzeichnis

Character_Set_SERVER = UTF8 6. Befehle hinzufügen

/ETC/ETC/ init .d/mysql

mysqldump -u user -p Quellbibliotheksname> ~/xxx.sql                                                                                                             '                                                                                                                                                   Name 2. Eine einzelne Bibliothek sichern 备 -b Bibliothek 1 Bibliothek 2.. 3. Mehrere Bibliotheken sichern2 Bibliotheksname Tabelle 1 2 ... 4. Sichern Sie die angegebene Bibliothekstabelle

Datenwiederherstellung:

Mysql -UROOT -P & LT; Zielbibliotheksname xxx.sql 1. Stellen Sie die Sicherungsbibliothek wieder her

Mysql -UROOT -P —ONE -DataBase-Zielbibliotheksname & lt; cd

CD /etc/mysql/mysql.conf.d/                       2.cd zum MySQL-Verzeichnis

vi mysqld.cnf                               3. Öffnen Sie die Standard-IP und kommentieren Sie sie aus

#bind-address = 127.0.0.1                           4. Speichern

/etc/init. D/MySQL Restart 5. Dienst neu starten

Autorisierter Benutzer:

Autorisierte Liste auf Bibliothek gewähren. an „tiger“@„%“ identifiziert durch „123“ mit Berechtigungsliste

Python3-Modulinstallation:

Modulname: pymysql

Online: sudo pip3 install pymysql

Offline: pymysql-0.7.11 .tar.gz

$ tar -zxvf pymyql-0 .7.11.tar .gz

$ cd pymysql-0.7.11

$ sudo python3 setup.py install

Überprüfung:

$ python3

$.py thon3

; pymysql importieren

                                                        Modulinstallation:

Modulname: MySQLdb

Installation: sudo pip install mysql-python

sqlalchemy Framework-Installation:

Online: sudo pip3 install sqlalchemy

Offline: $ tar -zxvf SQLAlchemy-1.2. 10.tar.gz

$ cd SQLAlchemy-1.2.10

$ sudo python3 setup.py install

Überprüfung: $ python3

>>> import sqlalchemy

> ;>>

Pymysql-Verwendung:

aus Pymsql-Import *                                                                         ​ ​ 1. Stellen Sie eine Datenbankverbindung her

c = db.cursor()) ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ 2. Erstellen Sie eine Cursorobjekt

c.execute(“insert….”)                                                                                                                                  4. An die Datenbank senden

c.close()                                                                                                                                                                                                             Schließen​​​​​​​​​​​​​​​​​​​​​ :

7.connect-Objekt:

db = pymysql.connect (Parameterliste)

1. Host: Hostadresse, localhost

2. Port: Portnummer, Standard 3306

3. Benutzer: Benutzername

4. Passwort: Passwort

5. Datenbank: Bibliothek

6. Zeichensatz: Kodierungsmethode, es wird empfohlen, utf8 zu verwenden

8.Methode zum Verbinden von Objekten:

Datenbankverbindungsobjekt (db) Methode

1. db.close() schließt die Verbindung

2. db.commit() sendet sie zur Ausführung an die Datenbank

3. db.rollback() rollt zurück

4. cur = db.cursor( ) gibt das Cursorobjekt zurück, das zum Ausführen bestimmter SQL-Befehle verwendet wird SQL-Befehle

2. cur.close() Schließt das Cursorobjekt 3. cur.fetchone() Ruft das erste Datenelement in der Abfrageergebnismenge ab                                  s n Artikel

((Datensatz 1), (Datensatz 2))

5. cur.fetchall() Alle Datensätze abrufen

ORM

: orm (Object Relation Mapping Object Relational Mapping) Definition: Ordnen Sie das Objektmodell der MySQL-Datenbank zu

SQL-Befehl:

/var/lib/mysql                                                                

Variablen wie „autocommit“ anzeigen;                                    Transaktion festschreiben (MySQL wird standardmäßig automatisch festgeschrieben)

rollback;                                                                                                                                                                                                                                                                                                                                Erstellen Sie eine Bibliothek

    Datenbankbibliotheksnamen-Zeichensatz erstellen utf8; Bibliothekszeichensatz anzeigen
  • Datenbank auswählen(); Aktuelle Bibliothek anzeigen
  • Bibliotheksnamen verwenden;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       # aufzeichnen

  • in Tabellennamen einfügen (Wert 1),…; Felddaten einfügen

  • wählen Sie * aus Tabellenname [wobei Bedingung] ; Name Feldnamendatentyp hinzufügen ; Tabellenname Feldnamen-Datentyp zuerst hinzufügen;                                                           Name des Feldnamens ändern, neuer Datentyp;

  • Aus Tabellennamen löschen, wobei Bedingung

  • Tabellennamen aktualisieren, Feld 1 = Wert 1, Feldname 2 = Wert 2 ,... wo Bedingung Tabellendatensatz ändern (wo muss hinzugefügt werden)
  • Tabelle ändern Tabellenname Originalnamen ändern Neuer Name Datentyp;                                      .Abfrage MySQL Variable
  • Select Feldname aus Tabellenname Liste; Tabellenname;                    id int, Primärschlüssel (Feldname) );                                                                                auf
  • (id int Primary Key, )auto_increment=10000; Tabellenname ändern id int auto_inkrementieren
  • Tabelle ändern Tabellennamen id int ; Primärschlüssel löschen.
  • Index aus Tabellenname anzeigen (Abfrageergebnisse)
  • QNON_UNIQUE: 0: Der einzige Index von Unique (Abfrageergebnis)
  • Ändern Sie den Namen des Außenschlüssels des Fremdschlüssels. Löschen Sie den Namen der Tabelle. Zeigen Sie den Namen des Außenschlüssels an Fremdschlüssel erstellen:
  • create…t1();

  • create table t2(
  • Foreign Key (Referenzfeldname)

references main table (referenzierter Feldname)on delete cascade Action

on Kaskadenaktion aktualisieren);

Fremdschlüssel hinzufügen:

Tabelle ändern, Tabellenname hinzufügen,

Fremdschlüssel (Referenzfeld) verweist auf die Haupttabelle (referenziertes Feld)

bei Löschung …

bei Aktualisierung …

Kaskadenaktion :

restrict (Standard) erlaubt der Haupttabelle nicht, die Slave-Tabelle zu bedienen

cascade: Follow delete, update

set null: Der Slave-Tabellenwert ist NULL, nachdem die Master-Tabelle geändert wurde

Interner Link:

Feldnamen aus Tabelle 1 auswählen

Inner-Join-Tabelle 2 unter Bedingung

Inner-Join-Tabelle 3 unter Bedingung...;

Externer Link:

Abfrageergebnisse basierend auf der linken Tabelle anzeigen

         Feldname aus Tabelle 1f auswählen LEFT JOIN Tabelle 2 ON-Bedingungen

LEFT JOIN Tabelle 3 ON-Bedingung ...;

Rechter Link

Tabelle, um Abfrageergebnisse in der rechten Tabelle anzuzeigen

Datenimport:

Daten in Datei „Dateiname“ laden

in Tabelle Tabellenname

Felder, die mit „Trennzeichen“ abgeschlossen sindZeilen, die mit „n“ abgeschlossen sind;

Datenexport:

wählen … aus Tabellenname

in Ausgabedatei " /var/lib/mysql-files/file name"Felder enden mit „Trennzeichen“

Zeilen enden mit „n“;

Datenwiederherstellung:

Eine einzelne Bibliothek wiederherstellen

mysql -uroot - p < ; Zieldatenbankname xxx.sqlEine bestimmte Datenbank aus allen Datenbanksicherungen wiederherstellen (-one-database)

Mysql -uroot -p –one-database Zieldatenbankname < xxx.sql

Wiederherstellen: Tabelle löschen, überschreiben Tabellendatensätze löschen

Datensicherung:

mysqldump -u user -p Quelldatenbankname> ~/xxx.sql–all-databases Alle Datenbanken sichern

Bibliotheksname Eine einzelne Datenbank sichern

- B Bibliothek 1 Bibliothek 2.. Mehrere Bibliotheken sichern

Bibliotheksnamenstabelle 1 Tabelle 2... Die angegebene Bibliothekstabelle sichern

Laufzeiterkennung:

Öffnen: Profilierung festlegen=1;

Schließen: Profilierung festlegen= 0; Abfrageausführungsdatensatz: Profilierungen anzeigen;

SQL-Abfrage:

3.select … Aggregatfunktion aus Tabellenname

1.wo

2.group by…

4.have …

5 .sortieren nach …

6.limit …;

Abfrageverschachtelung:

select … from table name where condition (select ….); A select name, gongji from sanguo

where

(country, gongji) in

(Land auswählen, max (gongji) aus Sanguo gruppieren nach Land); Gruppieren nach: Gruppieren Sie die Abfrageergebnisse

unterscheiden: Keine wiederholten Feldwerte anzeigen

Anzeigen von Suchmaschinen;

show Tabelle Tabellenname erstellen; Tabelle Tabellenname erstellen(...)engine=myisam:

InnoDB-Funktionen (2 Dateien):

Sperren auf Zeilenebene, Unterstützung für Fremdschlüssel, Transaktionsoperationen

.frm (Tabellenstruktur, Index), .ibd (Tabellendatensätze)

MyISAM:

MyISAM-Funktionen ( 3 Dateien):                                                                                                                   { :

Sperre auf Tabellenebene: myisam

Sperre auf Zeilenebene: innodb

Optimierung:

1. Wählen Sie die entsprechende Speicher-Engine aus

3. Vermeiden Sie die Verwendung von != , NULL-Urteil oder Link,

wie führendes %, in, nicht in, * anstelle von Feldern,

Datentyp:

Datentyp: int                                                                                                                                                  Datentyp: Vorzeichenbehaftet (Standardeinstellung mit Vorzeichen): -128 ~ 127

                                                                                                                                                                                                   Punkte (4 Bytes, 7. signifikant Ziffern)

        Feldname float (m, n) m: Gesamtzahl der Ziffern n: Anzahl der Dezimalstellen

decimal             Gleitkommazahl (28 signifikante Ziffern)

                  -- . Zahl n: Anzahl der Dezimalstellen

          Vielfache von 9 in 4 Bytes packen       Rest     Bytes

                               1

    3-4 2

5-6 3

7-9 4

Feldname Aufzählung (Wert 1, Wert 2…);                                                                                                                                                                                                durch Zahlen getrennt)

Datum: „JJJJ-MM-TT“

Uhrzeit: „HH:MM:SS“

DatumUhrzeit: „JJJJ-MM-TT HH:MM: SS“

Zeitstempel: „JJJJ -MM-TT HH:MM:SS“

Datumszeit: Gibt standardmäßig Null zurück, wenn kein Wert angegeben ist

Zeitstempel: Gibt standardmäßig die Systemzeit zurück, wenn kein Wert angegeben ist

Zeitfunktion

now()                                                                                                                                                                                                                                                                                                                                                                                                        llll out to avg (field name): Ermitteln Sie den Durchschnittswert des Felds

sum (field name): sum

max (Feldname): Maximalwert

min (Feldname): Minimalwert

count (Feldname): Anzahl der Felder zählen

Operator: + – * / %

Zeitoperator

select * aus Tabellenname

wobei Feldname-Operator (Zeitintervall-Zeitintervalleinheit): 1 Tag |. 2Jahre | ; <=

Zeichenvergleich: = !=

Logischer Vergleich: und oder

Vergleich innerhalb des Bereichs:

1.wo Feldname zwischen Wert 1 und Wert 2 liegt

2.wo Feldname in (Wert 1, Wert 2,….)

3.wo Feldname nicht in (Wert 1, Wert 2,...)

Leer: wobei der Name null ist

Nicht leer: wobei der Name nicht null ist

NILL: Nullwert, kann nur mit is oder is not abgeglichen werden

"": leere Zeichenfolge, verwenden = oder != zum Abgleichen

Fuzzy-Vergleich:

wobei Feldname wie Ausdruck

Ausdruck

_ : Übereinstimmung mit einem einzelnen Zeichen

%: Übereinstimmung mit 0 mit mehreren Zeichen

  NULL wird nicht gezählt

Sortierung: Reihenfolge von ASC |. DESC

Anzeige: Begrenzung der Startanzeigeposition, Anzahl der Elemente

Anzeige von n Datensätzen pro Seite, Anzeigeseite m:

Begrenzung (m-1)*n, n

MySQL interagiert mit Python

# mysqlpython.py

# 导入mysql模块
from pymysql import *


class MysqlPython:
    def __init__(self, database,  # 库
                 host="127.0.0.1",  # ip地址
                 user="root",  # 用户名
                 password="123456",  # 密码
                 port=3306,  # 端口
                 charset="utf8"):  # 字符集
        self.host = host
        self.database = database
        self.user = user
        self.password = password
        self.port = port
        self.charset = charset

    def open(self):  # 创建数据库链接函数
        self.db = connect(host=self.host,
                          database=self.database,
                          user=self.user,
                          password=self.password,
                          port=self.port,
                          charset=self.charset)
        self.cur = self.db.cursor()  # 创建游标对象

    def close(self):  # 创建断开数据库链接 关闭游标函数
        self.cur.close()
        self.db.close()

    def zhixing(self, sql, L=[]):  # 创建pymysql.execute() 方法函数
        try:
            self.open()  # 链接数据库
            self.cur.execute(sql, L)  # 参数化执行SQL命令
            self.db.commit()  # 提交数据
            print("ok")
        except Exception as e:
            self.db.rollback()  # 出错取消提交
            print("Failed", e)
        self.close()  # 断开数据库链接 关闭游标

    def all(self, sql, L=[]):
        try:
            self.open()
            self.cur.execute(sql, L)
            result = self.cur.fetchall()
            return result
        except Exception as e:
            print("Failed", e)
        self.close()
Nach dem Login kopieren

Datenbankbenutzeranmeldung

from mysqlpython import Mysqlpython
from hashlib import sha1

uname = input("请输入用户名:")
pwd = input("请输入密码:")
# 用sha1给pwd加密

s1 = sha1()  # 创建sha1加密对象
s1.update(pwd.encode("utf8"))  # 指定编码
pwd2 = s1.hexdigest()  # 返回16进制加密结果

sqlh = Mysqlpython("db4")
select = "select password from user where 
          username=%s;"
result = sqlh.all(select, [uname])
# print(result)
# ((&#39;7c4a8d09ca3762af61e59520943dc26494f8941b&#39;,),)

if len(result) == 0:
    print("用户名不存在")
elif result[0][0] == pwd2:
    print("登录成功")
else:
    print("密码错误")
Nach dem Login kopieren

ORM sqlalchemy Framework

# 创建一张表 # 连接数据库的模块 from 
sqlalchemy import create_engine fromsqlalchemy.ext.declarative
 import declarative_base from sqlalchemy import Column, Integer
,String engine = create_engine("mysql+pymysql://root:123456@localhost/db4", 
encoding="utf8") Base = declarative_base() # orm基类 class User(Base):
 # 继承Base基类 __tablename__ = "t123" id =Column(Integer, primary_key=True) 
name = Column(String(20)) address = Column(String(40))Base.metadata.create_all
(engine)
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonPython-Full-Stack-Einführung in die MySQL-Datenbank. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!