首頁  >  文章  >  資料庫  >  mysql表如何創建

mysql表如何創建

PHPz
PHPz原創
2023-04-21 11:20:2115257瀏覽

MySQL是一種流行的關聯式資料庫管理系統,它是許多應用程式的資料儲存和處理的主要選擇。在使用MySQL時,表格的建立是一個非常重要且必須掌握的技能。本文將介紹如何在MySQL中建立表格。

  1. 前提條件
    在建立MySQL表之前,必須安裝並設定MySQL伺服器,並且熟悉使用MySQL客戶端工具(如命令列或MySQL Workbench)。另外,需要有足夠的權限來建立表格。如果是在本機進行操作,可以使用root使用者登入;如果是在遠端伺服器上進行操作,則需要有相應的權限。
  2. 選擇資料庫
    在建立表格之前,需要選擇要建立表格的目標資料庫。如果已經存在資料庫,則可以使用下列命令切換到該資料庫:
use database_name;

其中,database_name是目標資料庫的名稱。

如果尚不存在目標資料庫,則需要使用以下命令建立資料庫並將其設定為目前資料庫:

CREATE DATABASE database_name;
USE database_name;
  1. 建立表格
    我們可以使用CREATE TABLE語句來建立新的MySQL表。通常,CREATE TABLE語句包含以下組成部分:
  • 表名:新表的名稱。
  • 列名和資料類型:表中要建立的每個列以及每個列的資料類型。
  • 主鍵:每個表都應該有一個主鍵來唯一標識每行資料。
  • 約束:用於定義特定列的限制和要求。
  • 其他選項:如分割區和索引等。

下面是一個基本的MySQL表建立語句的範例:

CREATE TABLE table_name (
    column_1 datatype constraint,
    column_2 datatype constraint,
    PRIMARY KEY (column_1)
);

#其中,table_name是新表的名稱,column_1和column_2是要建立的列名稱,datatype是列的資料類型,而constraint則是列的限製或要求。 PRIMARY KEY用於指定表的主鍵,它應該是唯一標識每行資料的欄位。

例如,以下是一個名為students的MySQL表的建立語句範例:

CREATE TABLE students (
    id INT UNSIGNED NOT NULL AUTO_INCREMENT,
    name VARCHAR(255) NOT NULL,
    age INT,
    gender ENUM('male','female') NOT NULL,
    PRIMARY KEY (id)
);

在這個範例中,students是表的名稱,id是一個自動增量整數列,並指定為主鍵。 name是一個255個字元的文字列,age是整數列,gender是枚舉列,只能包含'male'或'female'兩個值。

  1. 新增列約束
    當建立列時,可以使用多種約束來限製或要求列的值,包括以下內容:
  • NOT NULL:列不能為空。
  • UNIQUE:列的所有值必須是唯一的。
  • DEFAULT:為列設定預設值。
  • CHECK:指定某些限制,例如在特定條件下限制值的範圍。
  • PRIMARY KEY:指定該列為表格的主鍵。
  • FOREIGN KEY:指定該列與另一個表的外鍵關聯。

下面是一些範例,示範如何使用這些限制:

  • 禁止空值和唯一性:
CREATE TABLE employees (
    id INT UNSIGNED NOT NULL AUTO_INCREMENT,
    name VARCHAR(255) NOT NULL,
    email VARCHAR(255) NOT NULL UNIQUE,
    age INT NOT NULL,
    PRIMARY KEY (id)
);

在這個例子中,email列必須唯一,因此使用UNIQUE約束。

  • 新增預設值:
CREATE TABLE customers (
    id INT UNSIGNED NOT NULL AUTO_INCREMENT,
    name VARCHAR(255) NOT NULL,
    address TEXT,
    created_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (id)
);

在這個範例中,created_date列設定了預設值為目前時間戳,因此不需要每次新記錄時都手動指定該列的值。

  • 檢查值的範圍:
CREATE TABLE orders (
    id INT UNSIGNED NOT NULL AUTO_INCREMENT,
    product_name VARCHAR(255) NOT NULL,
    quantity INT NOT NULL,
    price DECIMAL(10,2) NOT NULL,
    status ENUM('pending','processing','shipped') DEFAULT 'pending',
    CONSTRAINT ck_price CHECK (price > 0),
    PRIMARY KEY (id)
);

在這個範例中,price列透過CHECK約束限制值的範圍,要求列的值大於0。 status列的預設值為'pending',因此在新記錄時無需手動指定該列的值。

  • 新增外鍵:
CREATE TABLE orders (
    id INT UNSIGNED NOT NULL AUTO_INCREMENT,
    customer_id INT UNSIGNED NOT NULL,
    product_name VARCHAR(255) NOT NULL,
    quantity INT NOT NULL,
    price DECIMAL(10,2) NOT NULL,
    PRIMARY KEY (id),
    FOREIGN KEY (customer_id) REFERENCES customers(id)
);

在這個範例中,customer_id列與顧客表的id列關聯,因此使用FOREIGN KEY限制建立外鍵。這表示customer_id列的值必須與顧客表中的id列的值一致。

  1. 總結
    在MySQL中建立表格是一項必要的技能,本文介紹如何使用CREATE TABLE語句和各種欄位約束來建立MySQL表。還有許多其他的選項和約束,因此需要在實踐中繼續學習和探索。

以上是mysql表如何創建的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn