MySQL建表語(yǔ)句基礎(chǔ)及示例詳解
基本建表語(yǔ)句
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: 列的數(shù)據(jù)類型,如INT,VARCHAR,TEXT,DATE,TIMESTAMP等。size: 數(shù)據(jù)類型的長(zhǎng)度或大小(對(duì)于某些數(shù)據(jù)類型適用)。[column_constraints]: 列級(jí)約束,例如NOT NULL,AUTO_INCREMENT,DEFAULT,PRIMARY KEY,UNIQUE,COMMENT等。[table_constraints]: 表級(jí)約束,如PRIMARY KEY,FOREIGN KEY,UNIQUE等。[table_options]: 表的其他選項(xiàng),如ENGINE,AUTO_INCREMENT,CHARSET,COMMENT等。
數(shù)據(jù)類型
MySQL 支持多種數(shù)據(jù)類型,以下是一些常見的數(shù)據(jù)類型:
INT: 整數(shù)類型。VARCHAR(size): 可變長(zhǎng)度的字符串,size表示最大字符數(shù)。CHAR(size): 固定長(zhǎng)度的字符串。TEXT: 長(zhǎng)文本數(shù)據(jù)。DATE: 日期,格式為YYYY-MM-DD。DATETIME: 日期和時(shí)間,格式為YYYY-MM-DD HH:MM:SS。TIMESTAMP: 時(shí)間戳,記錄數(shù)據(jù)變更的日期和時(shí)間。FLOAT: 浮點(diǎn)數(shù)。DOUBLE: 雙精度浮點(diǎn)數(shù)。DECIMAL(M, D): 定點(diǎn)數(shù),M是總位數(shù),D是小數(shù)點(diǎn)后的位數(shù)。
列級(jí)約束
NOT NULL: 該列不能有 NULL 值。AUTO_INCREMENT: 用于整數(shù)類型,自動(dòng)遞增。DEFAULT value: 為列指定默認(rèn)值。PRIMARY KEY: 將列設(shè)置為表的主鍵。UNIQUE: 保證列中的每個(gè)值都是唯一的。COMMENT 'string': 為列添加注釋。
表級(jí)約束
PRIMARY KEY (column1, column2, ...): 指定一個(gè)或多個(gè)列作為主鍵。UNIQUE KEY (column1, column2, ...): 指定一個(gè)或多個(gè)列作為唯一鍵。FOREIGN KEY (column) REFERENCES parent_table(column): 指定一個(gè)外鍵,創(chuàng)建與另一個(gè)表的引用關(guān)系。INDEX (column1, column2, ...): 創(chuàng)建一個(gè)或多個(gè)列的索引。
表選項(xiàng)
ENGINE=storage_engine: 指定存儲(chǔ)引擎,如InnoDB(默認(rèn))、MyISAM等。AUTO_INCREMENT=value: 為AUTO_INCREMENT的列指定初始值。CHARSET=character_set: 指定表的默認(rèn)字符集。COMMENT 'string': 為表添加注釋。
示例
以下是一個(gè)包含各種語(yǔ)句的創(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; 在這個(gè)示例中,創(chuàng)建了一個(gè)名為 student 的表,包含 id, name, age, admission_date, 和 bio 列。id 列是主鍵并自動(dòng)遞增,起始值為 1001。name 列是唯一的,admission_date 列被索引。整個(gè)表的存儲(chǔ)引擎是 InnoDB,字符集是 utf8mb4,并且有一個(gè)表級(jí)注釋。
附:常用函數(shù)
/*count函數(shù):統(tǒng)計(jì)符合條件的記錄數(shù),count(* )統(tǒng)計(jì)表中的記錄總數(shù), count(列名)統(tǒng)計(jì)指定字段不為null的記錄數(shù)。*/ select count(*) from dapt; select count(dname) from dapt ; select * from dapt where dname is null; --max函數(shù)返回所選字段的最大值,用法是max(字段名) --select max (列名) from 表名; select max(deptno) from dapt; --min函數(shù)返回所選字段的最小值,用法是min(字段名) --select min (列名) from 表名; select min(deptno) from dapt; --avg函數(shù)返回所選字段的平均值,用法是avg(字段名) select avg(deptno) from dapt; --sum函數(shù)返回所選字段的合計(jì)值,用法是sum(字段名) select sum(deptno) from dapt;
總結(jié)
到此這篇關(guān)于MySQL建表語(yǔ)句基礎(chǔ)及示例的文章就介紹到這了,更多相關(guān)MySQL建表語(yǔ)句內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
mysql optimizer_switch查詢優(yōu)化器優(yōu)化策略
查詢優(yōu)化器是一個(gè)至關(guān)重要的組件,它負(fù)責(zé)確定執(zhí)行 SQL 查詢的最有效方法,本文主要介紹了mysql optimizer_switch查詢優(yōu)化器優(yōu)化策略,感興趣的可以了解一下2024-06-06
MYSQL Left Join優(yōu)化(10秒優(yōu)化到20毫秒內(nèi))
在實(shí)際開發(fā)中,相信大多數(shù)人都會(huì)用到j(luò)oin進(jìn)行連表查詢,但是有些人發(fā)現(xiàn),用join好像效率很低,而且驅(qū)動(dòng)表不同,執(zhí)行時(shí)間也不同。那么join到底是如何執(zhí)行的呢,本文就詳細(xì)的介紹一下2021-12-12
MySQL gh-ost DDL 變更工具的實(shí)現(xiàn)
本文主要介紹了MySQL gh-ost DDL變更工具的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-02-02

