sql >> Databasteknik >  >> RDS >> Mysql

Hur man skapar en tabell i MySQL

Många gånger kan du behöva skapa tabeller i MySQL. Så här skapar du en tabell med kommandot MySQL CREATE TABLE.

Hur man skapar en tabell i MySQL

Här är stegen för att skapa tabeller i MySQL.

MySQL CREATE TABLE låter dig skapa en ny tabell i databasen. Här är syntaxen.

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

I ovanstående skapa tabell-fråga, tabellnamn är namnet på ditt nya bord. IF NOT EXISTS är ett valfritt argument som kontrollerar om tabellen redan finns och skapar en tabell endast om den inte finns.

column_1_definition , kolumn_2_definition , … är olika kolumndefinitioner som var och en består av kolumnnamn och datatyp.

table_contraints finns olika typer av valfria begränsningar som begränsningar för främmande nyckel, begränsningar för primärnyckel osv.

Du kan valfritt ange lagringsmotor som ENGINE-variabel. MySQL stöder InnoDB och MyISAM lagringsmotorer. Om du inte anger denna variabel kommer MySQL att använda InnoDB som standard.

Bonus Läs:MySQL Alter Table Column

Exempel på MySQL SKAPA TABELL

Här är SQL-frågan för att skapa tabeller i MySQL. Vi kommer att skapa en order tabell för att lagra listan över beställningar

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 |                |
+--------------+--------------+------+-----+-------------------+----------------+

I ovanstående fråga,

id är vår tabells primärnyckel med begränsningen AUTO ÖKNING. Så när du lägger till en ny rad i den här tabellen kommer MySQL automatiskt att öka och automatiskt fylla i den här kolumnen för den nya raden.

produktnamn är en VARCHAR (sträng) kolumn för att lagra produktnamn

order_datum är en datumkolumn. Eftersom den inte har några begränsningar kan den till och med ha NULL-värden.

pris är en heltalskolumn med en NOT NULL-begränsning. Så det kan inte ha nollvärden.

skapad_på är en tidsstämpelskolumn med CURRENT_TIMESTAMP som standardvärde.

Vi har valt att använda INNODB lagringsmotor för denna tabell.

Bonus Läs:MySQL ADD COLUMN

MySQL SKAPA TABELL med FOREIGN KEY

Låt oss skapa en ny tabell i MySQL med FOREIGN KEY-begränsning. Vi kommer att skapa en ny tabell order_status med en främmande nyckel order_id som refererar till den primära nyckeln för order bord.

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       |                |
+--------------+--------------+------+-----+---------+----------------+

I ovanstående fråga lägger vi till en främmande nyckel-begränsning med MySQL ADD FOREIGN KEY

Förhoppningsvis kan du nu enkelt skapa tabeller i MySQL.

Ubiq gör det enkelt att visualisera data på några minuter och övervaka i realtidsinstrumentpaneler. Prova det idag!

  1. Skapa en lagrad procedur i SQL Server 2017

  2. Hur ställer du in autocommit i en SQL Server-session?

  3. Isoleringsnivån Läs engagerad

  4. Utelämna dubbla citattecken för att göra en fråga på PostgreSQL