sql >> Database >  >> RDS >> Mysql

Een tabel maken in MySQL

Vaak moet u mogelijk een tabel maken in MySQL. Hier leest u hoe u een tabel maakt met de opdracht MySQL CREATE TABLE.

Hoe maak je een tabel in MySQL

Hier zijn de stappen om een ​​tabel te maken in MySQL.

Met MySQL CREATE TABLE kunt u een nieuwe tabel in de database maken. Hier is de syntaxis.

CREATE TABLE [IF NOT EXISTS] table_name(
   column_1_definition,
   column_2_definition,
   ...,
   table_constraints
) ENGINE=storage_engine;

In de bovenstaande tabel-query maken, table_name is de naam van uw nieuwe tabel. IF NOT EXISTS is een optioneel argument dat controleert of de tabel al bestaat en alleen een tabel maakt als deze niet bestaat.

column_1_definition , column_2_definition , ... zijn verschillende kolomdefinities die elk bestaan ​​uit kolomnaam en gegevenstype.

table_contraints zijn verschillende soorten optionele beperkingen zoals externe sleutelbeperking, primaire sleutelbeperking, enz.

U kunt desgewenst de opslagengine opgeven als ENGINE-variabele. MySQL ondersteunt InnoDB- en MyISAM-opslagengines. Als u deze variabele niet opgeeft, gebruikt MySQL standaard InnoDB.

Bonus lezen:MySQL Wijzig tabelkolom

MySQL CREATE TABLE-voorbeelden

Hier is de SQL-query om een ​​tabel in MySQL te maken. We maken een bestellingen tabel om de lijst met bestellingen op te slaan

CREATE TABLE IF NOT EXISTS orders (
    id INT AUTO_INCREMENT PRIMARY KEY,
    product_name VARCHAR(255) NOT NULL,
    order_date DATE,
    price INT NOT NULL,
    description TEXT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)  ENGINE=INNODB;


mysql> describe orders;
+--------------+--------------+------+-----+-------------------+----------------+
| Field        | Type         | Null | Key | Default           | Extra          |
+--------------+--------------+------+-----+-------------------+----------------+
| id           | int(11)      | NO   | PRI | NULL              | auto_increment |
| product_name | varchar(255) | NO   |     | NULL              |                |
| order_date   | date         | YES  |     | NULL              |                |
| price        | int(11)      | NO   |     | NULL              |                |
| description  | text         | YES  |     | NULL              |                |
| created_at   | timestamp    | NO   |     | CURRENT_TIMESTAMP |                |
+--------------+--------------+------+-----+-------------------+----------------+

In de bovenstaande zoekopdracht,

id is de primaire sleutel van onze tabel met de beperking AUTO INCREMENT. Dus wanneer u een nieuwe rij aan deze tabel toevoegt, zal MySQL deze kolom automatisch verhogen en automatisch vullen voor de nieuwe rij.

productnaam is een VARCHAR (tekenreeks) kolom om de productnaam op te slaan

order_date is een datumkolom. Omdat het geen beperkingen heeft, kan het zelfs NULL-waarden hebben.

prijs is een integer-kolom met een NOT NULL-beperking. Het kan dus geen null-waarden hebben.

created_at is een tijdstempelkolom met CURRENT_TIMESTAMP als standaardwaarde.

We hebben ervoor gekozen om de INNODB-opslagengine voor deze tabel te gebruiken.

Bonus lezen:MySQL KOLOM TOEVOEGEN

MySQL MAAK TAFEL MET BUITENLANDSE SLEUTEL

Laten we een nieuwe tabel maken in MySQL met FOREIGN KEY-beperking. We zullen een nieuwe tabel maken order_status met een externe sleutel order_id die verwijst naar de primaire sleutel van orders tafel.

mysql> CREATE TABLE IF NOT EXISTS order_status (
         status_id INT AUTO_INCREMENT,
         order_id INT,
         status VARCHAR(255) NOT NULL,
         is_completed BOOLEAN NOT NULL DEFAULT FALSE,
         PRIMARY KEY (status_id),
         FOREIGN KEY (order_id)
             REFERENCES orders (id)
             ON UPDATE RESTRICT ON DELETE CASCADE
     );

mysql> describe order_status;
+--------------+--------------+------+-----+---------+----------------+
| Field        | Type         | Null | Key | Default | Extra          |
+--------------+--------------+------+-----+---------+----------------+
| status_id    | int(11)      | NO   | PRI | NULL    | auto_increment |
| order_id     | int(11)      | YES  | MUL | NULL    |                |
| status       | varchar(255) | NO   |     | NULL    |                |
| is_completed | tinyint(1)   | NO   |     | 0       |                |
+--------------+--------------+------+-----+---------+----------------+

In de bovenstaande query voegen we een externe sleutelbeperking toe met MySQL ADD FOREIGN KEY

Hopelijk kun je nu gemakkelijk een tabel maken in MySQL.

Ubiq maakt het gemakkelijk om gegevens binnen enkele minuten te visualiseren en in realtime dashboards te controleren. Probeer het vandaag nog!

  1. Een standaardwaarde instellen voor een bestaande kolom

  2. MySQL:grote VARCHAR versus TEKST?

  3. Een kolom wijzigen van Null naar Niet Null in SQL Server

  4. Verwijder of trim de eerste of laatste paar tekens in MySQL-database met SQL