MySQL建表語句基礎及示例詳解
基本建表語句
CREATE TABLE table_name (
column_name1 data_type(size) [column_constraints],
column_name2 data_type(size) [column_constraints],
...
[table_constraints]
) [table_options];table_name: 新建表的名稱。column_name1,column_name2, ...: 表中各列的名稱。data_type: 列的數據類型,如INT,VARCHAR,TEXT,DATE,TIMESTAMP等。size: 數據類型的長度或大?。▽τ谀承祿愋瓦m用)。[column_constraints]: 列級約束,例如NOT NULL,AUTO_INCREMENT,DEFAULT,PRIMARY KEY,UNIQUE,COMMENT等。[table_constraints]: 表級約束,如PRIMARY KEY,FOREIGN KEY,UNIQUE等。[table_options]: 表的其他選項,如ENGINE,AUTO_INCREMENT,CHARSET,COMMENT等。
數據類型
MySQL 支持多種數據類型,以下是一些常見的數據類型:
INT: 整數類型。VARCHAR(size): 可變長度的字符串,size表示最大字符數。CHAR(size): 固定長度的字符串。TEXT: 長文本數據。DATE: 日期,格式為YYYY-MM-DD。DATETIME: 日期和時間,格式為YYYY-MM-DD HH:MM:SS。TIMESTAMP: 時間戳,記錄數據變更的日期和時間。FLOAT: 浮點數。DOUBLE: 雙精度浮點數。DECIMAL(M, D): 定點數,M是總位數,D是小數點后的位數。
列級約束
NOT NULL: 該列不能有 NULL 值。AUTO_INCREMENT: 用于整數類型,自動遞增。DEFAULT value: 為列指定默認值。PRIMARY KEY: 將列設置為表的主鍵。UNIQUE: 保證列中的每個值都是唯一的。COMMENT 'string': 為列添加注釋。
表級約束
PRIMARY KEY (column1, column2, ...): 指定一個或多個列作為主鍵。UNIQUE KEY (column1, column2, ...): 指定一個或多個列作為唯一鍵。FOREIGN KEY (column) REFERENCES parent_table(column): 指定一個外鍵,創(chuàng)建與另一個表的引用關系。INDEX (column1, column2, ...): 創(chuàng)建一個或多個列的索引。
表選項
ENGINE=storage_engine: 指定存儲引擎,如InnoDB(默認)、MyISAM等。AUTO_INCREMENT=value: 為AUTO_INCREMENT的列指定初始值。CHARSET=character_set: 指定表的默認字符集。COMMENT 'string': 為表添加注釋。
示例
以下是一個包含各種語句的創(chuàng)建表示例:
CREATE TABLE student (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
age INT DEFAULT 18,
admission_date DATE,
bio TEXT,
PRIMARY KEY (id),
UNIQUE KEY (name),
INDEX (admission_date),
COMMENT 'Student records table'
) ENGINE=InnoDB AUTO_INCREMENT=1001 CHARSET=utf8mb4; 在這個示例中,創(chuàng)建了一個名為 student 的表,包含 id, name, age, admission_date, 和 bio 列。id 列是主鍵并自動遞增,起始值為 1001。name 列是唯一的,admission_date 列被索引。整個表的存儲引擎是 InnoDB,字符集是 utf8mb4,并且有一個表級注釋。
附:常用函數
/*count函數:統(tǒng)計符合條件的記錄數,count(* )統(tǒng)計表中的記錄總數, count(列名)統(tǒng)計指定字段不為null的記錄數。*/ select count(*) from dapt; select count(dname) from dapt ; select * from dapt where dname is null; --max函數返回所選字段的最大值,用法是max(字段名) --select max (列名) from 表名; select max(deptno) from dapt; --min函數返回所選字段的最小值,用法是min(字段名) --select min (列名) from 表名; select min(deptno) from dapt; --avg函數返回所選字段的平均值,用法是avg(字段名) select avg(deptno) from dapt; --sum函數返回所選字段的合計值,用法是sum(字段名) select sum(deptno) from dapt;
總結
到此這篇關于MySQL建表語句基礎及示例的文章就介紹到這了,更多相關MySQL建表語句內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
mysql optimizer_switch查詢優(yōu)化器優(yōu)化策略
查詢優(yōu)化器是一個至關重要的組件,它負責確定執(zhí)行 SQL 查詢的最有效方法,本文主要介紹了mysql optimizer_switch查詢優(yōu)化器優(yōu)化策略,感興趣的可以了解一下2024-06-06
MYSQL Left Join優(yōu)化(10秒優(yōu)化到20毫秒內)
在實際開發(fā)中,相信大多數人都會用到join進行連表查詢,但是有些人發(fā)現,用join好像效率很低,而且驅動表不同,執(zhí)行時間也不同。那么join到底是如何執(zhí)行的呢,本文就詳細的介紹一下2021-12-12

