Heim  >  Artikel  >  Datenbank  >  Wie versteht man das Konzept der Datentypen in MySQL?

Wie versteht man das Konzept der Datentypen in MySQL?

坏嘻嘻
坏嘻嘻Original
2018-09-15 11:15:011755Durchsuche

Der Inhalt dieses Artikels befasst sich mit dem Verständnis des Konzepts der Datentypen in MySQL. Ich hoffe, dass er für Freunde hilfreich ist.

1. Was sind Daten?

Daten sind eine Sammlung von Informationen, die in einer Datenbank in einem bestimmten Datentyp gespeichert werden. Zu den Daten gehören Namen, Zahlen, Währungen, Text, Bilder, Dezimalzahlen, Berechnungen, Statistiken und mehr – fast alles, was man sich vorstellen kann. Daten-Clients speichern in Groß-, Klein- oder Mischbuchstaben. Daten können manipuliert oder geändert werden, und die meisten Daten bleiben während ihrer Lebensdauer nicht unverändert.

Der Datentyp wird verwendet, um die Regeln für die in der Spalte enthaltenen Daten anzugeben. Er bestimmt, wie die Daten in der Spalte gespeichert werden, einschließlich der der Spalte zugewiesenen Breite und ob der Wert Buchstaben sein kann. Zahlen, Datum und Uhrzeit usw. Alle Daten oder Datenkombinationen haben einen entsprechenden Datentyp. Diese Datentypen werden zum Speichern von Buchstaben, Zahlen, Datums- und Uhrzeitangaben, Bildern, Binärdaten usw. verwendet. Im Detail können Daten Namen, Beschreibungen, Zahlen, Berechnungen, Bilder, Bildbeschreibungen, Dokumente usw. umfassen.

Daten sind der Zweck einer Datenbank und müssen geschützt werden. Die Person, die die Daten schützt, ist der Datenbankadministrator (DBA), aber jeder Datenbankbenutzer ist auch dafür verantwortlich, die erforderlichen Maßnahmen zum Schutz der Daten zu ergreifen.

2. Grundlegende Datentypen

Der Datentyp ist das Merkmal der Daten selbst, und seine Eigenschaften werden auf die Felder in der Tabelle festgelegt. Beispielsweise können wir festlegen, dass ein Feld einen numerischen Wert enthalten muss und die Eingabe von Zahlen- oder Buchstabenfolgen nicht zulassen soll. Außerdem möchten wir nicht, dass Buchstaben in ein Feld eingegeben werden, in dem Währungswerte gespeichert werden. Das Definieren von Datentypen für jedes Feld in der Datenbank kann fehlerhafte Daten aufgrund von Fehlern in der Datenbank erheblich reduzieren. Die Felddefinition (Datentypdefinition) ist eine Datenüberprüfungsmethode, die die Daten informiert, die in jedes Feld eingegeben werden können.

1. Zeichenfolge mit fester Länge.

Strings fester Länge haben normalerweise die gleiche Länge und werden unter Verwendung von Datentypen fester Länge gespeichert. Das Folgende ist der Standard für SQL-Zeichenfolgen fester Länge:

CHARACTER(n)

n ist eine Zahl, die die maximale Anzahl von Zeichen definiert, die im Feld gespeichert werden können.

Einige SQL-Implementierungen verwenden den CHAR-Datentyp, um Daten fester Länge zu speichern. In diesem Datentyp können Briefe gespeichert werden.

In Datentypen fester Länge werden Leerzeichen normalerweise verwendet, um die unzureichende Anzahl von Zeichen zu ergänzen. Wenn die Zeichenlänge 10 beträgt und die Eingabedaten nur 5 Ziffern umfassen, werden die restlichen 5 Ziffern als Leerzeichen aufgezeichnet. Durch das Auffüllen wird sichergestellt, dass jeder Wert im Feld die gleiche Länge hat.

PS: Verwenden Sie keine Datentypen fester Länge, um Daten variabler Länge, wie z. B. Namen, zu speichern. Die unsachgemäße Verwendung von Datentypen fester Länge kann zu einer Verschwendung von verfügbarem Speicherplatz führen und den genauen Vergleich verschiedener Datentypen beeinträchtigen Daten. Datentypen variabler Länge sollten verwendet werden, um Zeichenfolgen variabler Länge zu speichern und so Speicherplatz in der Datenbank zu sparen.

2. Zeichenfolge variabler Länge.

SQL unterstützt Zeichenfolgen variabler Länge, also Zeichenfolgen mit variabler Länge. Das Folgende ist der Standard für SQL-Zeichenfolgen variabler Länge:

CHARACTER VARYING(n)

n ist eine Zahl, die die maximale Anzahl von Zeichen angibt, die im Feld gespeichert werden können.

Zu den gängigen String-Datentypen variabler Länge gehören VARCHAR, VARINARY und VARCHAR2. VARCHAR ist ein ANSI-Standard und wird auch von Microsoft Sql Server verwendet, und VARINARY und VARCHAR2 werden beide von Oracle verwendet. Als Zeichen definierte Felder können Zahlen und Buchstaben enthalten, was bedeutet, dass die Daten numerische Zeichen enthalten können. VARBINARY ähnelt VARCHAR und VARCHAR2, enthält jedoch Bytes variabler Länge. Dieser Datentyp wird häufig zum Speichern digitaler Daten wie Bilddateien verwendet.

Datentypen fester Länge verwenden Leerzeichen, um Lücken in Feldern zu füllen, Zeichenfolgen variabler Länge tun dies jedoch nicht. Wenn beispielsweise die Länge eines Felds mit variabler Länge als 10 definiert ist und die Länge der Eingabezeichenfolge 5 beträgt, beträgt die Gesamtlänge des Werts 5 und es werden keine Leerzeichen verwendet, um die Lücken im Feld zu füllen .

3. Großer Objekttyp.

Einige Datentypen variabler Länge müssen längere Daten speichern und überschreiten die Länge, die im Allgemeinen für VARCHAR-Felder reserviert ist, wie z. B. die mittlerweile gängigen Datentypen BLOB und TEXT. Diese Datentypen sind speziell für die Aufnahme großer Datensätze konzipiert. BLOB ist ein binäres großes Objekt und seine Daten sind eine sehr lange Binärzeichenfolge. BLOB eignet sich zum Speichern binärer Mediendateien wie Bilder und MP3. Der Datentyp TEXT ist ein langer Zeichenfolgentyp, der als großes VARCHAR-Feld betrachtet werden kann und normalerweise zum Speichern großer Zeichen verwendet wird im Datenbanksatz, z. B. HTML-Eingabe für eine Blog-Site. Das Speichern dieser Art von Daten in der Datenbank ermöglicht dynamische Aktualisierungen der Site.

4. Numerischer Typ.

Zahlen werden in Feldern gespeichert, die als ein bestimmter numerischer Typ definiert sind, im Allgemeinen einschließlich ZAHL, INTERGER, REAL/DEZIMAL usw.

Xiaomi ist der Standard für SQL-Werte:

(1).BIT(n);

(2).BIT VARYING(n);

(3).DECIMAL(p,s);

(4).INTEGER;

(5).SMALLINT;

(6).SIGINT;

(7).FLOAT(p,s);

(8).DOUBLE PRECISION(P,S);

(9).REAL(S);

P stellt die maximale Länge des Feldes dar. s stellt die Anzahl der Nachkommastellen dar.

Ein gängiger numerischer Typ in der SQL-Implementierung ist NUMERIC, der dem ANSI-Standard entspricht. Werte können 0, positive Zahlen, Festkommazahlen und Gleitkommazahlen sein. Das Folgende ist ein Beispiel für die Verwendung von NUMERIC:

NUMERIC(s), dieser Befehl begrenzt den maximalen Wert, den ein Feld akzeptieren kann, auf 99.999. In den Datenbankimplementierungen, die in den Beispielen in diesem Buch verwendet werden, ist NUMERIC im Typ DECIMAL implementiert.

5. Dezimaltyp.

Der Dezimaltyp ist die Gesamtlänge des numerischen Werts. Beispielsweise ist in der numerischen Definition ZDECIMZAL(4,2) die signifikante Anzahl der Ziffern 4, was bedeutet, dass die Gesamtzahl der Ziffern 4 beträgt. Die Skalierung ist die Anzahl der Ziffern nach dem Dezimalpunkt, die in der Ziffer 2 beträgt vorheriges Beispiel. Wenn die Anzahl der Dezimalstellen im tatsächlichen Wert die definierte Anzahl von Stellen überschreitet, wird der Wert gerundet. Wenn beispielsweise 34,33 in ein als DECIMAL(3,1) definiertes Feld geschrieben wird, wird er auf 34,3 gerundet .

Wenn der Wert wie folgt definiert ist, beträgt sein Maximalwert 99,99:

DECIMAL(4,2)

Die effektiven Ziffern sind 4, was die Gesamtlänge von angibt der Wert ist 4 ;Die Skalierung ist 2, was bedeutet, dass 2 Ziffern nach dem Dezimalpunkt beibehalten werden. Der Dezimalpunkt selbst zählt nicht als Zeichen.

Die als DECIMAL(4,2) definierten Felder ermöglichen Eingabearrays einschließlich:

(1).12

(2).12.4

( 3).12.44

(4).12.449

Der letzte Wert 12.449 wird beim Speichern im Feld auf 12.45 gerundet. In dieser Definition wird jeder Wert zwischen 12,45 und 12,499 auf 12,45 gerundet.

6.

Eine ganze Zahl ist ein numerischer Wert (einschließlich positiver und negativer Zahlen) ohne Dezimalpunkt.

Im Folgenden sind einige gültige ganze Zahlen aufgeführt:

(1).1;

(2).0;

(3).-1;

(4).99;

(5).-99;

(6).199;

7.

Gleitkommazahlen sind Dezimalwerte mit variablen signifikanten Ziffern und variabler Skalierung und keine Begrenzung. Alle signifikanten Ziffern und Skalierungen sind akzeptabel. Der Datentyp REAL stellt einen Gleitkommawert mit einfacher Genauigkeit dar, während DOUBLE PRECISION einen Gleitkommawert mit doppelter Genauigkeit darstellt. Die Anzahl der signifikanten Ziffern für einen Gleitkommawert mit einfacher Genauigkeit beträgt 1 bis 21 (einschließlich), und die Anzahl der gültigen Ziffern für einen Gleitkommawert mit doppelter Genauigkeit beträgt 22 bis 53 (einschließlich). Im Folgenden finden Sie einige Beispiele für FLOAT-Datentypen:

(1).FLOAT;

(2).FLOAT(15);

(3).FLOAT(50 ) ;

8. Datums- und Uhrzeittypen.

Datums- und Uhrzeitdatentypen werden offensichtlich zum Speichern von Datums- und Uhrzeitinformationen verwendet. Standard-SQL unterstützt den Datentyp DATETIME, der die folgenden Typen umfasst:

(1).DATE;

(2).TIME;

(3).DATETIME;

(4).TIMESTAMP;

DATETIME-Datentypelemente umfassen:

(1).YEAR;

(2).MONTH;

(3).DAY;

(4).HOUR;

(5).SECOND;

ps: Das ZWEITE Element kann in mehrere zerlegt werden Punkte Eine Sekunde, der Bereich liegt zwischen 00,000 und 61,999, aber nicht alle SQL-Implementierungen unterstützen diesen Bereich. Die zusätzlichen 1,999 Sekunden werden verwendet, um Schaltsekunden zu erreichen.
Jede SQL-Implementierung kann über einen benutzerdefinierten Datentyp verfügen, um Datum und Uhrzeit zu speichern. Die zuvor eingeführten Datentypen und Elemente sind Standards, an die sich jeder SQL-Anbieter halten sollte, aber die meisten Implementierungen verfügen über eigene Datentypen, um Datumswerte in einer Form zu speichern, die sich von der tatsächlichen Speicherung unterscheidet.

Datumsdaten geben im Allgemeinen keine Länge an. Später werden wir den Datumstyp detaillierter vorstellen, einschließlich der Art und Weise, wie Datumsinformationen in einigen Implementierungen gespeichert werden, wie Konvertierungsfunktionen zum Bearbeiten von Datums- und Uhrzeitangaben verwendet werden und anhand von Beispielen gezeigt werden, wie Datums- und Uhrzeitangaben in der praktischen Arbeit verwendet werden.

9. Literale Zeichenfolge.

Eine Literalzeichenfolge ist eine Reihe von Zeichen, beispielsweise ein Name oder eine Telefonnummer, die vom Benutzer oder Programm explizit angegeben wird. Literale Zeichenfolgen enthalten Daten mit denselben Eigenschaften wie die zuvor eingeführten Datentypen, der Wert der Zeichenfolge ist jedoch bekannt. Die Werte der Spalten selbst sind normalerweise nicht deterministisch, da jede Spalte normalerweise in allen Datensätzen unterschiedliche Werte für das Feld enthält.

Es ist eigentlich nicht notwendig, das Feld als Literal-String-Datentyp anzugeben, sondern als String. Beispiele für Literalzeichenfolgen sind:

(1).'Hello';

(2).45000;

(3).'45000'

(4).3.14;

(5).'November 1 ,1997';

Die Zeichenfolge ist in einfache Anführungszeichen eingeschlossen, und der Wert 45000 hat keine einfachen Anführungszeichen umgeben, und die zweite 45000 ist von doppelten Anführungszeichen umgeben. Im Allgemeinen sind für Zeichenfolgen einfache Anführungszeichen erforderlich, für numerische Zeichenfolgen jedoch nicht.

Ein prozeduraler Begriff, der einen Datentyp implizit in einen numerischen Typ konvertiert. Dabei ermittelt die Datenbank automatisch, welcher Datentyp verwendet werden soll. Wenn Daten daher nicht in einfache Anführungszeichen gesetzt sind, erkennt das SQL-Programm sie als numerischen Typ. Daher muss besonderes Augenmerk auf das Format der Daten gelegt werden. Andernfalls können die Speicherergebnisse verzerrt sein oder Fehler gemeldet werden. Später erklären wir, wie man Literalzeichenfolgen in Datenbankabfragen verwendet.

10.NULL-Datentyp.

NULL-Wert bedeutet keinen Wert. NULL-Werte werden in SQL häufig verwendet, einschließlich der Tabellenerstellung, Abfragesuchbedingungen und sogar Literalzeichenfolgen.

Bei Verwendung des NULL-Datentyps muss klar angegeben werden, dass das entsprechende Feld keine Dateneingabe erfordert. Wenn ein Feld Daten enthalten muss, setzen Sie es auf NOT NULL. Solange das Feld keine Daten enthalten darf, ist es am besten, es auf NULL zu setzen.

11. Boolescher Wert.

Der Wertebereich der booleschen Werte ist TRUE, FlASE und NULL, die für den Datenvergleich verwendet werden. Wenn Sie beispielsweise Bedingungen in einer Abfrage festlegen, wird jede Bedingung als TRUE, FLASE oder NULL ausgewertet. Wenn der Wert aller Bedingungen in der Abfrage TRUE ist, werden die Daten zurückgegeben. Wenn der Wert einer bestimmten Bedingung FLASE oder NULL ist, werden die Daten nicht zurückgegeben. Zum Beispiel das folgende Beispiel:

WHERE NAME = ‘SMITH’

Dies kann eine Bedingung in der Abfrage sein. Jede Datenzeile in der Zieltabelle wird basierend auf dieser Bedingung ausgewertet. Wenn der NAME-Feldwert einer Zeile in der Tabelle SMITH ist, ist der Wert der Bedingung TRUE und der entsprechende Datensatz wird zurückgegeben.

Die meisten Datenbankimplementierungen haben keinen strikten BOOLEAN-Typ, sondern verwenden stattdessen unterschiedliche Implementierungsmethoden. MySql verwendet den Typ BOOLEAN, ist aber im Wesentlichen derselbe wie sein vorhandener Typ TINYINT. Oracle bevorzugt es, Benutzern die Verwendung eines CHAR(1)-Werts anstelle eines booleschen Werts zu ermöglichen, während SQL Server stattdessen BIT verwendet.

12. Benutzerdefinierter Typ.

Benutzerdefinierte Typen sind benutzerdefinierte Typen, die es Benutzern ermöglichen, ihre eigenen Datentypen basierend auf vorhandenen Datentypen anzupassen, um den Datenspeicheranforderungen gerecht zu werden. Benutzerdefinierte Typen erweitern die Möglichkeiten der Datenspeicherung erheblich und geben Entwicklern eine größere Flexibilität im Entwicklungsprozess von Datenbankprogrammen. Mit der Anweisung CREATE TYPE wird ein benutzerdefinierter Typ erstellt.

Zum Beispiel können Sie in MySql und Oracle einen Typ wie diesen erstellen:

CREATE TYPE PERSON ASOBJECT

(NAME VARCHER (30),

SSN VARCHAR(9);

)

Der benutzerdefinierte Typ kann dann wie folgt referenziert werden:

CREATE TABLE EMP_PAY

(EMPLOYEE PERSON,

GEHALT DEZIMAL(10,2),

HIRE_DATE DATE);

Der Typ des MITARBEITERS in der ersten Spalte der Tabelle EMP_PAY ist PERSON, was genau das ist wird vorne angezeigt. Benutzerdefinierter Typ erstellt.

13. Domäne.

Ein Feld ist eine Sammlung gültiger Datentypen, die verwendet werden können. Domänen sind mit Daten verknüpft, sodass nur bestimmte Daten akzeptiert werden. Nachdem die Domäne erstellt wurde, können wir der Domäne Einschränkungen hinzufügen. Einschränkungen arbeiten mit Datentypen, um die Daten, die ein Feld akzeptieren kann, weiter einzuschränken. Felder werden ähnlich wie benutzerdefinierte Typen verwendet.

Erstellen Sie eine Domain wie folgt:

CREATE DOMAIN MONEY_D AS NUMBER(0,2);

Fügen Sie Einschränkungen zur Domain wie folgt hinzu:

ALTER DOMAIN MONEy_D

ADD CONSTRAINT MONEY_CON

CHECK(VALUE>5);

Referenzieren Sie dann die Domain wie folgt:

CREATE TABLE EMP_PAY

(EMP_ID NUMBER(9),

EMP_NAME VARCHER2(30),

PAY_RATE MONEY_D);

3. Zusammenfassung

SQL hat eine Vielfalt Da es sich um Datentypen handelt, sind diese für niemanden unbekannt, der andere Programmiersprachen verwendet hat. Datentypen ermöglichen das Speichern verschiedener Datentypen in der Datenbank, z. B. einzelne Zeichen, Dezimalzahlen, Datumsangaben und Uhrzeiten. Unabhängig davon, ob Sie eine Programmiersprache der dritten Generation wie C oder eine relationale Datenbank zur Implementierung der SQL-Codierung verwenden, ist das Konzept der Datentypen dasselbe. Natürlich variieren die Namen der Datentypen von Implementierung zu Implementierung, aber die Funktionsweise ist grundsätzlich dieselbe. Darüber hinaus muss ein relationales Datenbankverwaltungssystem nicht für alle im ANSI-Standard spezifizierten Datentypen implementiert werden, um als mit ANSI kompatibel zu gelten. Daher ist es am besten, die spezifische Dokumentation zu prüfen, um die verwendeten Datentypen zu verstehen.

Planen Sie sowohl kurz- als auch langfristig sorgfältig, wenn Sie Datentyp, Länge, Umfang und Präzision berücksichtigen. Darüber hinaus sind auch Unternehmensrichtlinien und die Art und Weise, wie Benutzer auf Daten zugreifen sollen, zu berücksichtigen. Entwickler sollten die Art der Daten verstehen. und wie Daten in der Datenbank miteinander verknüpft sind, sodass geeignete Datentypen verwendet werden.


Dieser Artikel beschreibt nur die Datentypen von SQL! Reine Textbeschreibung! Dieser Artikel ist ein Auszug aus „Sql Beginner's Classic“. Der nächste Artikel erklärt den Einstieg in SQL (3) Datenbankobjekte verwalten !


Das obige ist der detaillierte Inhalt vonWie versteht man das Konzept der Datentypen in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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