Tabellen maken

SQL & Hibernate
Niveau 6 , Les 1
Beschikbaar

Zinvolle creatie van tabellen

In de vorige colleges hebben we al een beetje kennis gemaakt met query's voor het maken van tabellen, nu is het tijd om hier dieper op in te gaan.

Het maken van een tabel lijkt sterk op het declareren van een klasse in Java en heeft dit patroon:

CREATE TABLE table_name (
	column1 datatype,
	column2 datatype,
	column3 datatype,
   ....
);

Laten we bijvoorbeeld een query schrijven die een tabel met gebruikers maakt:

CREATE TABLE user (
	id INT,
	name VARCHAR(100),
	level INT,
	created_date DATE,
);

Het ziet er heel eenvoudig uit, omdat veel nuances hier niet worden aangegeven.

Ten eerste kan de tabel aanvullende instellingen hebben.

En ten tweede kan elke kolom aanvullende instellingen hebben.

En we beginnen met de instellingen voor het maken van kolommen.

Sleutels in de tabel

Naast de naam en het gegevenstype kan een tabelkolom ook de volgende instellingen hebben:

HOOFDSLEUTEL De kolom is de sleutel van de tabel
UNIEKE SLEUTEL Alle kolomwaarden moeten uniek zijn.
Standaardwaarde Standaardwaarde
NIET NUL Het verbod om de waarde NULL te accepteren
AUTO_INCREMENT SQL Server verhoogt de waarde automatisch wanneer een nieuw record aan de tabel wordt toegevoegd
GEGENEREERD Berekend veld
OPSLAG Waar gegevens op te slaan: op schijf of in het geheugen
OPMERKING Kolomcommentaar, bijvoorbeeld titel in lokale taal

Hieronder zullen we er enkele bekijken.

Ten eerste is het PRIMAIRE SLEUTEL .

Meestal is dit een aparte kolom met de name id en het type INT. Dit is de zogenaamde "hoofdsleutel" van de tabel en alle rijen hebben unieke waarden voor deze sleutel. Het wordt voornamelijk gebruikt zodat andere tabellen kunnen verwijzen naar de records van onze tabel en naar het specifieke record kunnen verwijzen.

Tweede is UNIEKE SLEUTEL .

In sommige opzichten lijkt het op PRIMARY KEY, hoewel de semantische lading totaal anders is. Als een kolom het UNIQUE attribuut heeft, dan moeten alle waarden in die kolom uniek zijn. Een goed voorbeeld van het verschil tussen UNIEKE SLEUTEL en PRIMAIRE SLEUTEL is de lijst met mensen in het paspoortkantoor.

Het belastingnummer is een PRIMAIRE SLEUTEL, het wordt gebruikt om het gemakkelijk te maken om vanuit andere tabellen naar de juiste persoon te verwijzen.

Het paspoortnummer is een UNIEKE SLEUTEL. Geen twee personen kunnen hetzelfde paspoortnummer hebben. Het paspoortnummer kan echter worden gewijzigd. Bijvoorbeeld bij het wijzigen van de achternaam. En het belastingnummer blijft voor altijd bij je. Dit is de hoofdtaak van PRIMARY KEY. Een voorbeeld van een query die de PRIMAIRE SLEUTEL specificeert:

CREATE TABLE user (
	id INT PRIMARY KEY,
	name VARCHAR(100),
	level INT,
	created_date DATE,
);

Instellingen voor gegevenstype

Er zijn minder belangrijke maar nuttige attributen.

STANDAARD waarde

Bij het invoegen van gegevens (een nieuwe rij toevoegen) in een tabel kunt u de waarden van sommige kolommen weglaten als deze een standaardwaarde hebben. In dit geval stelt de SQL-server eenvoudig zelf de waarde van de kolom in.

Vanaf versie 8 van MySQL kunt u een uitdrukking als waarde opgeven.

NIET NUL

Als u bij het maken van een tabel het kenmerk NOT NULL voor een kolom opgeeft, zorgt SQL Server ervoor dat het onmogelijk is om een ​​NULL-waarde in deze kolom op te slaan. Standaard kan elke kolom een ​​NULL-waarde hebben, zelfs een INT-kolom. Wat niet vanzelfsprekend is voor een Java-programmeur.

AUTO_INCREMENT

Het wordt meestal gebruikt voor kolom-id's. Wanneer u een nieuwe rij aan een tabel toevoegt, wilt u echt dat de SQL-server een id voor dit item toekent. Wie beter dan de server weet hoeveel rijen hij in de tabel heeft. Vooral als aanvragen van verschillende clients naar dezelfde SQL-server gaan.

Dit is precies wat het kenmerk AUTO_INCREMENT doet. Bij het toevoegen van een nieuwe rij geven we gewoon niets door als een id, en de SQL-server zal de juiste ID voor dit record specificeren: het neemt gewoon de ID van het laatst bestaande record en verhoogt het met 1. Dit attribuut kan alleen gebruikt met gehele en reële getaltypen. En laten we natuurlijk een voorbeeld maken van het maken van zo'n tabel:

CREATE TABLE user (
	id INT PRIMARY KEY AUTO_INCREMENT,
	name VARCHAR(100) NOT NULL,
	level INT DEFAULT 1,
	created_date DATE NOT NULL,
);
Opmerkingen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION