Inhaltsverzeichnis
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 entfernenDie 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 NachteileVorteile : 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