首頁 資料庫 mysql教程 mysql表定義語法詳細介紹

mysql表定義語法詳細介紹

Jan 30, 2020 pm 08:32 PM
mysql 介紹 文法

mysql表定義語法詳細介紹

首先我們都知道只有成功建立資料庫後,才能建立資料表,資料表是欄位的集合,在表中資料以行和列的格式儲存。

建立表格

MySQL 使用 CREATE TABLE 建立表格。其中有多個選擇,主要由表格建立定義(create definition)、表格選項定義(table options) 和區分選項(partition options)等內容構成。

表建立定義

由表格列的名字、列的定義集可能的一個空值宣告、一個完整性約束或表索引項目組成,表索引項主要定義表的索引、主鍵、外鍵等。

(線上學習影片教學推薦:mysql影片教學

#文法結構

CREATE[TEMPORARY]TABLE tbl_name
(
    字段名|数据类型[列级完整性约束条件][默认值]
    [,字段名2 数据类型[列级完整性约束条件][默认值]]
    [,....]
    [,表级完整性约束条件]
)[ENGINE=引擎类型]
登入後複製

Example:
新建一個客戶資訊

mysql> USE mysql_test
Database changed
mysql> CRATE TABLE customers
    ->(
    -> cust_id INT NOT NULL AUTO_INCREMENT,
    -> cust_name CHAR(50) NOT NULL,
    -> cust_sex CHAR(1) NOT NULL DEFAULT 0,
    -> cust_address CHAR(50) NULL
    -> cust_contact CHAR(50) NULL
    -> PRIMARY KEY(CUST_ID)
    ->)
Query OK, 0 rows affected(0.11 sec)
登入後複製

臨時表與持久表

TEMPORARY:表示臨時表,如果不選用則位持久表

TEMPORARY:表示臨時表,如果不選用則位持久表。

持久表一直存在,多個使用者或應用程式可同時使用持久性表,如果只需暫時存放資料可新增TEMPORARY 關鍵字,臨時表只能對建立它的使用者可見,斷開資料庫連接時,表會自動清除。

資料型別

資料型別指系統中所允許的資料的型別。每列都應有適當的資料類型,來限製或允許該列的資料。建表時必須為每列指定正確的資料型別及資料長度(CHAR(50))

#MySQL 主要資料型別:

##數值型別:整數int 、浮點double、布林bool

日期和時間類型:日期型、時間戳timestamp、時間型time

字串型別:定長字元型別char、可變長字元型別varchrar

空間資料類型:單一幾何類型GEOMETRY等

關鍵字AUTO_INCREMENT

AUTO_INCREMENT: 資料型別為整型的資料列設定自增屬性( i),從目前指或1 開始,表中只能有一個AUTO_INCREMENT。

當一個表格列被指定為AUTO_INCREMENT 後,其值可被覆蓋,即可在表格資料插入語句中為該列指定一個值(必須唯一),則該值將取代系統自動產生的值,後續增量基於該插入的值

指定預設值

DEFAULT:用於指定MySQL在未給值的情況下預設的值(DEFAULT 0 )

如果未指定預設值,則自動為其分配一個值,如若該列可取值NULL,則預設NULL,若定義NOT NULL,則預設取決於該列的類型:

一個沒有宣告AUTO_INCREMENT 列為數字類型,預設為0

一個AUTO_INCREMENT 欄位預設為順序中的下一個值

對於除TIMESTAMP 以外的日期和時間類型,預設為類型適當的'零'值

對於表中第一個TIMESTAMP 列,預設值為當前日期和時間

NULL值


##NULL :沒有值或缺值,允許NULL的列,插入行時可以不給該列的值;不允許NULL值的列,則該列必須有資料

NULL 和 ''是不對等的NOT NULL 列中允許'' 不允許NULL

主鍵

PRIMARY KEY :指定主鍵,主鍵必須唯一且不能為NULL, 如果是單列,值必須唯一,如果是組合列,則其組合的值必須唯一

更新表

透過使用ALTER TABLE 來修改資料庫

ADD[COLUMN]:新增表列,可增加列使用逗號分隔即可

Example:

mysql> ALTER TABLE mysqle_test.customers
    -> ADD COLUMN cust_city char(10) NOT NULL DEFAULT'ShenZhen' AFTER cust_sex;
Query OK,0 rows affected(0.61 sec)
Records:0 Duplicates:0 Warning:0
登入後複製

AFTER:將新增的列新增至cut_sexl 列之後

FIRST:將新增的列新增到表的第一列

若使用上述關鍵字則將新增的欄位加入表最後

類似的可以使用ADDPRIMARY KEY 、ADDFOREIGN KEY 、ADD INDEX 新增對應的主鍵、外鍵、索引

CHANGE[COLUMN]: 修改表中列的名稱或資料類型,可修改多列使用逗號分隔即可

mysql> ALTER TABLE mysqle_test.customers
    -> CHANGE COLUMN cust_sex sex char(1) NULL DEFAULT 'M'
Query OK,0 rows affected(0.66 sec)
Records:0 Duplicates:0 Warning:0
登入後複製

如果將資料類型更換,可能會遺失該列原有的數據,如果視圖改變的資料型別於原有的資料型別不相容,則SQL指令不會執行,且拋出錯誤。

再相容的情況下,該列的資料可能會被截斷,如:一列的資料類型為varchart(10),改為char(1),則該列中的資料'ShenZhen'會變為'S '###

ALTER [COLUMN]: 修改或删除指定列的默认值

mysql> ALTER TABLE mysqle_test.customers
    -> ALTER COLUMN cust_city SET  DEFAULT 'ShangHai'
Query OK,0 rows affected(0.36 sec)
Records:0 Duplicates:0 Warning:0
登入後複製

MODIFY [COLUMN]: 修改指定列的数据类型,通过 'FIRST' 或 'AFTER' 修改列的位置

mysql> ALTER TABLE mysqle_test.customers
    -> MODIFY COLUMN cust_name char(30)  FIRST
Query OK,0 rows affected(0.20 sec)
Records:0 Duplicates:0 Warning:0
登入後複製

DROP [COLUMN]: 删除列,该列所有数据一并删除

mysql> ALTER TABLE mysqle_test.customers
    -> DROP COLUMN cust_city
Query OK,0 rows affected(0.42 sec)
Records:0 Duplicates:0 Warning:0
登入後複製

同样 可使用 DROP PRIMARY KEY 、DROP FOREIGN KEY、DROP INDEX 删除对应的主键、外键、索引

RENAME[TO]:表重命名

mysql> ALTER TABLE mysqle_test.customers
    -> RENAME TOQuery OK,0 rows affected(0.42 sec)
登入後複製

重命名表

除了 ALTER TABLE 中的 RENAME TO 修改表名,还可通过 RENAME TABLE 来修改单张和多张表(以逗号分隔)

mysql> RENAME TABLE mysql_test.back.customers TO mysqle_test.customers
登入後複製

删除表

DROP[TEMPORARY]TABLE[IF EXISTS]删除一个已存在的表,可以删除多张表,前提操作人必须有权限,但是操作人在该张表上的权限不会被删除

查看表

SHOW [FULL] TABLES [{FROM|IN}db_name] [LIKE'pattern'|WHERE expr]: 显示指定数据库中所有表名

Example:

mysql> USE mysql_testDatabase changedmysql> SHOW TABLES:
 Tables_in_mysql_test
 customers 1 row in set <0.01 sec>
登入後複製

SHOW [FULL] COLUMNS {FROM|IN}tb_name[{FROM|IN}db_name] 或 {DESCRIBE|DESC} tbl_name[col_name|wild]: 显示指定数据库表结构。

MySQL 支持使用 DESCRIBE 代替 SHOW COLUMNS FROM 来查看表结构

Example:

mysql> DESC mysql_test.custormes
Field         Type       Null key  Default Extra
cust_id       int<11>    NO   PRI  NULL    auto_increment
cust_name     char<50>   NO        Null
cust_sex      int<1>     NO        0

3 row in set <1.56 sec>
登入後複製

相关文章教程推荐:mysql教程

以上是mysql表定義語法詳細介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

mysql:簡單的概念,用於輕鬆學習 mysql:簡單的概念,用於輕鬆學習 Apr 10, 2025 am 09:29 AM

MySQL是一個開源的關係型數據庫管理系統。 1)創建數據庫和表:使用CREATEDATABASE和CREATETABLE命令。 2)基本操作:INSERT、UPDATE、DELETE和SELECT。 3)高級操作:JOIN、子查詢和事務處理。 4)調試技巧:檢查語法、數據類型和權限。 5)優化建議:使用索引、避免SELECT*和使用事務。

phpmyadmin怎麼打開 phpmyadmin怎麼打開 Apr 10, 2025 pm 10:51 PM

可以通過以下步驟打開 phpMyAdmin:1. 登錄網站控制面板;2. 找到並點擊 phpMyAdmin 圖標;3. 輸入 MySQL 憑據;4. 點擊 "登錄"。

MySQL:世界上最受歡迎的數據庫的簡介 MySQL:世界上最受歡迎的數據庫的簡介 Apr 12, 2025 am 12:18 AM

MySQL是一種開源的關係型數據庫管理系統,主要用於快速、可靠地存儲和檢索數據。其工作原理包括客戶端請求、查詢解析、執行查詢和返回結果。使用示例包括創建表、插入和查詢數據,以及高級功能如JOIN操作。常見錯誤涉及SQL語法、數據類型和權限問題,優化建議包括使用索引、優化查詢和分錶分區。

navicat premium怎麼創建 navicat premium怎麼創建 Apr 09, 2025 am 07:09 AM

使用 Navicat Premium 創建數據庫:連接到數據庫服務器並輸入連接參數。右鍵單擊服務器並選擇“創建數據庫”。輸入新數據庫的名稱和指定字符集和排序規則。連接到新數據庫並在“對象瀏覽器”中創建表。右鍵單擊表並選擇“插入數據”來插入數據。

為什麼要使用mysql?利益和優勢 為什麼要使用mysql?利益和優勢 Apr 12, 2025 am 12:17 AM

選擇MySQL的原因是其性能、可靠性、易用性和社區支持。 1.MySQL提供高效的數據存儲和檢索功能,支持多種數據類型和高級查詢操作。 2.採用客戶端-服務器架構和多種存儲引擎,支持事務和查詢優化。 3.易於使用,支持多種操作系統和編程語言。 4.擁有強大的社區支持,提供豐富的資源和解決方案。

navicat怎麼新建連接mysql navicat怎麼新建連接mysql Apr 09, 2025 am 07:21 AM

可在 Navicat 中通過以下步驟新建 MySQL 連接:打開應用程序並選擇“新建連接”(Ctrl N)。選擇“MySQL”作為連接類型。輸入主機名/IP 地址、端口、用戶名和密碼。 (可選)配置高級選項。保存連接並輸入連接名稱。

redis怎麼使用單線程 redis怎麼使用單線程 Apr 10, 2025 pm 07:12 PM

Redis 使用單線程架構,以提供高性能、簡單性和一致性。它利用 I/O 多路復用、事件循環、非阻塞 I/O 和共享內存來提高並發性,但同時存在並發性受限、單點故障和不適合寫密集型工作負載的局限性。

MySQL和SQL:開發人員的基本技能 MySQL和SQL:開發人員的基本技能 Apr 10, 2025 am 09:30 AM

MySQL和SQL是開發者必備技能。 1.MySQL是開源的關係型數據庫管理系統,SQL是用於管理和操作數據庫的標準語言。 2.MySQL通過高效的數據存儲和檢索功能支持多種存儲引擎,SQL通過簡單語句完成複雜數據操作。 3.使用示例包括基本查詢和高級查詢,如按條件過濾和排序。 4.常見錯誤包括語法錯誤和性能問題,可通過檢查SQL語句和使用EXPLAIN命令優化。 5.性能優化技巧包括使用索引、避免全表掃描、優化JOIN操作和提升代碼可讀性。

See all articles