MySQL建表語句基礎(chǔ)及示例詳解
基本建表語句
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ù)類型的長度或大小(對于某些數(shù)據(jù)類型適用)。[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
等。
數(shù)據(jù)類型
MySQL 支持多種數(shù)據(jù)類型,以下是一些常見的數(shù)據(jù)類型:
INT
: 整數(shù)類型。VARCHAR(size)
: 可變長度的字符串,size
表示最大字符數(shù)。CHAR(size)
: 固定長度的字符串。TEXT
: 長文本數(shù)據(jù)。DATE
: 日期,格式為YYYY-MM-DD
。DATETIME
: 日期和時間,格式為YYYY-MM-DD HH:MM:SS
。TIMESTAMP
: 時間戳,記錄數(shù)據(jù)變更的日期和時間。FLOAT
: 浮點數(shù)。DOUBLE
: 雙精度浮點數(shù)。DECIMAL(M, D)
: 定點數(shù),M
是總位數(shù),D
是小數(shù)點后的位數(shù)。
列級約束
NOT NULL
: 該列不能有 NULL 值。AUTO_INCREMENT
: 用于整數(shù)類型,自動遞增。DEFAULT value
: 為列指定默認值。PRIMARY KEY
: 將列設(shè)置為表的主鍵。UNIQUE
: 保證列中的每個值都是唯一的。COMMENT 'string'
: 為列添加注釋。
表級約束
PRIMARY KEY (column1, column2, ...)
: 指定一個或多個列作為主鍵。UNIQUE KEY (column1, column2, ...)
: 指定一個或多個列作為唯一鍵。FOREIGN KEY (column) REFERENCES parent_table(column)
: 指定一個外鍵,創(chuàng)建與另一個表的引用關(guān)系。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
,并且有一個表級注釋。
附:常用函數(shù)
/*count函數(shù):統(tǒng)計符合條件的記錄數(shù),count(* )統(tǒng)計表中的記錄總數(shù), count(列名)統(tǒng)計指定字段不為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ù)返回所選字段的合計值,用法是sum(字段名) select sum(deptno) from dapt;
總結(jié)
到此這篇關(guān)于MySQL建表語句基礎(chǔ)及示例的文章就介紹到這了,更多相關(guān)MySQL建表語句內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Navicat導(dǎo)入導(dǎo)出Mysql?結(jié)構(gòu)、數(shù)據(jù)、結(jié)構(gòu)+數(shù)據(jù)完整步驟
導(dǎo)出表結(jié)構(gòu)是指將數(shù)據(jù)庫中的表的結(jié)構(gòu)信息導(dǎo)出為SQL腳本或其他格式的文件,這個功能非常實用,特別是在數(shù)據(jù)庫遷移或備份時,這篇文章主要給大家介紹了關(guān)于Navicat導(dǎo)入導(dǎo)出Mysql?結(jié)構(gòu)、數(shù)據(jù)、結(jié)構(gòu)+數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下2024-08-08MySQL8.0.28數(shù)據(jù)庫安裝和主從配置說明
這篇文章主要介紹了MySQL8.0.28數(shù)據(jù)庫安裝和主從配置說明,具有很好的參考價值,希望杜大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12MYSQL數(shù)據(jù)庫如何設(shè)置主從同步
大家好,本篇文章主要講的是MYSQL數(shù)據(jù)庫如何設(shè)置主從同步,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下2022-01-01