Gemeinsame MySQL-Funktionen und View-Indizes

Inhaltsverzeichnis

Gemeinsame Funktionen

Mehrere Funktionstypen

1. Datumsfunktion

2. String-Funktion

3. Digitale Funktionen

4. Aggregatfunktion

 verschmelzen

Index ansehen

Aussicht

Konzept und Funktionen:

Rolle anzeigen:

Grundlegende Syntax:

Index 

Konzept:

Vorteile und Nachteile

Einstufung:

Indexpflege:

Häufige Fehlercodes


Gemeinsame Funktionen

Das Konzept und die Eigenschaften von Funktionen:

In Übereinstimmung mit dem Konzept der Funktionen in Java und js

Features: Datenbankfunktionen müssen Rückgabewerte haben (eine Zeile und eine Spalte)

Mehrere Funktionstypen

1. Datumsfunktion

now() erhält das aktuelle Datum;

Beispiel: jetzt auswählen();

day() erhält den Tagesteil des angegebenen Datums;

Beispiel: select day(now());

month() Ruft den Monatsteil des angegebenen Datums ab;

Beispiel: select month(now());

year() erhält den Monatsteil des angegebenen Datums;

Beispiel: select year(now());
date_format() Konvertiert das Datum in einen String im angegebenen Format;
Beispiel: select date_format(now(), '%Y-%m-%d %H:%i:%s ');
str_to_date(): Wandelt ein Datum in einem bestimmten Format in ein Datum um;
Beispiel: select str_to_date('2017-01-06 10:20:30','%Y-%m-%d %H:%i :%s');

Umfassendes Beispiel: 

1)直接按年份计算学生年龄
    SELECT t.sname, YEAR(NOW()) - YEAR(t.birthday) FROM t_student t

2)按照出生日期来算,当前月日 < 出生年月的月日则(说明月份还没到),年龄减一
SELECT sid,sname,birthday,YEAR(NOW())-YEAR(birthday) '年龄',
       YEAR(NOW())-YEAR(birthday) + IF(CONVERT(DATE_FORMAT(NOW(),'%m%d'),SIGNED)-CONVERT(DATE_FORMAT(birthday,'%m%d'),SIGNED)<0,-1,0) '真实年龄'
FROM t_student;

3)查询本月过生日的学生信息
SELECT * FROM t_student t WHERE MONTH(NOW()) - MONTH(t.birthday) = 0;

2) Die beispielhaften Laufergebnisse lauten wie folgt:

2. String-Funktion

upper() Konvertiert in Großbuchstaben
Beispiel: select upper('faafafa')
lower() Konvertiert in Kleinbuchstaben
Beispiel: Sselect lower('FEFEFF')
replace() Sucht und ersetzt Teilstrings in einem String
Beispiel: select replace( 'www. google.net','w','n')
substring() letzter Teilstring ab einer Position mit einer bestimmten Länge
Beispiel:
        select substring('abcdefghijk', 1, 3)
        select substring(('abcdefghijk', 4);
        select substring(('abcdefghijk', -3);
trim() führende und abschließende Leerzeichen entfernen
Beispiel: select trim(' fdfdfdfd ');
length()
Beispiel zum Ermitteln der Stringlänge: select length('abcdef') ;

3. Digitale Funktionen

floor() rundet ab
Beispiel: select floor(123.8934)
ceil(
) rundet auf Beispiel: select ceil(123.8934)
round() rundet
ab Beispiel: select round(123.8934, 2);

4. Aggregatfunktion

Funktionen: Es wird häufig zusammen mit group by verwendet oder kann allein verwendet werden. Wenn Sie beispielsweise filtern müssen, können Sie die Klausel
SUM verwenden, um
COUNT zu summieren, um die Anzahl der Datensätze
AVG zu zählen und den Durchschnittswert zu ermitteln.
MAX um den Maximalwert zu finden ,
MIN um den Minimalwert zu finden .

 verschmelzen

Schlüsselwort:
    union fasst alle   Abfrageergebnisse zusammen und entfernt dieselben Datensätze
    union all   kombiniert alle Abfrageergebnisse, ohne dieselben Datensätze zu entfernen

Die Prämisse des Zusammenführens: Die Anzahl der Spalten in der Ergebnismenge ist gleich
Szenario: Im Statistikberichtsmodul des Projekts wird es zum Zusammenführen von Daten verwendet

select 'abc', 123 
union
selet 'def',456
		
select 'abc', 123
union 
select 'abc', 123

select sid fromt_score where cid = 1
union
select sid from t_score where cid = 2

# 注意此处去掉了重复的值,可以与下面的语句执行结果比较

select sid fromt_score where cid = 1
union all
select sid from t_score where cid = 2
	
select 'abc', 123
union all
select 'def', 456

select 'abc', 123
union all
select 'abc', 123

Index ansehen

Aussicht

Konzept und Funktionen:

Eine Ansicht ist eine Art virtuelle Tabelle , die aus einer oder mehreren Tabellen in der Datenbank abgeleitet ist . Die
Datenbank speichert die Definition der Ansicht, aber nicht die Daten der Ansicht, und die Daten werden weiterhin in gespeichert ursprünglicher Tisch.
Wenn Sie eine Ansicht zum Abfragen von Daten verwenden, erhält die Datenbank Daten aus der Originaltabelle
    (Hinweis: Materialisierte Ansichten sind hier nicht enthalten, mysql unterstützt derzeit standardmäßig keine materialisierten Ansichten).


Rolle anzeigen:

1) Operationen vereinfachen
2) Datensicherheit erhöhen
3) Die logische Unabhängigkeit von Tabellen verbessern


Grundlegende Syntax:

Ansicht Ansichtsname als Select-Anweisungsbeispiel
erstellen :

create view stu_score_statistics as
select t1.sid, t1.sname, t1.ssex, t2.courses, t3.total total_score from t_student t1 
left join (select sid, count(*) courses from t_score group by sid) t2 on t1.sid=t2.sid
left join (select sid, sum(score) total from t_score group by sid) t3 on t1.sid=t3.sid

Index 

Konzept:

Der Index besteht aus einer oder mehreren Spalten in der Datenbanktabelle und hat die Aufgabe, die Abfragegeschwindigkeit der Daten in der Tabelle zu verbessern.Er
kann als die Rolle des Verzeichnisses des Buches verstanden werden


Vorteile und Nachteile

Vorteile : Bei mittelgroßen oder großen Tabellen kann die richtige Verwendung von Indizes die Abfrageleistung erheblich verbessern .
Nachteile : Erhöht die Arbeit der Indexwartung, wodurch Einfügungs-, Änderungs- und Löschvorgänge langsamer werden


Einstufung:

Gewöhnlicher Index (Basisindex, der Zweck besteht darin, die Abfrageleistung zu verbessern)
Eindeutiger Index (zusätzlich zur Verbesserung der Abfrageleistung kann er auch die Duplizierung von Spaltenwerten vermeiden)
Primärschlüsselindex (spezieller eindeutiger Index, eine Tabelle kann nur einen Primärschlüssel haben, und kein Nullwert)
Kombinierter Index (Index wird durch Kombinieren mehrerer Spalten generiert, Sie müssen auf die Indexreihenfolge achten)
Volltextindex (wird verwendet, um die Volltextsuche zu unterstützen (FULLTEXT))


Indexpflege:


        Syntax erstellen
            CREATE [UNIQUE|FULLTEXT] INDEX Indexname ON Tabellenname (Feldname [(Länge)][ASC|DESC])
        Beispiel CREATE INDEX sname_inx
            ON t_student(sname);         Syntax ändern             ALTER TABLE Tabellenname ADD [UNIQUE|FULLTEXT] INDEX Indexname (Feldname[(Länge)][ASC|DESC])         Beispiel             ALTER TABLE t_Student ADD INDEX Geburtstag_inx(Geburtstag);         Syntax löschen             DROP INDEX Indexname ON Tabellenname         Beispiel             DROP INDEX Geburtstag_inx ON t_Student;









Häufige Fehlercodes

1075
    hat einen Auto-Increment-Schlüssel, aber es ist nicht so, dass er nicht als Primärschlüssel gesetzt ist
1142 Die
    Operation wird abgelehnt, im Allgemeinen, weil keine Berechtigung vorhanden ist
1064
    Im Allgemeinen fehlt ein Syntaxfehler, z Leerzeichen, die nach der SQL-Anweisung im SQL-Skript fehlen, und andere Gründe
1048 
    Spalten können nicht null sein
1055 
    Nicht in GROUP BY
1265
    Das Format der gespeicherten Daten unterscheidet sich von der Definition
1366
    Datencodierung
1451
    Verletzung der Fremdschlüsselbeschränkung

Ich denke du magst

Origin blog.csdn.net/qq_64001795/article/details/126233472
Empfohlen
Rangfolge