MySQL數(shù)據(jù)類型和表的操作方法
一、常用數(shù)據(jù)類型分類
與其他編程語(yǔ)言類似,SQL中也規(guī)定了用于描述屬性的數(shù)據(jù)類型。常用的數(shù)據(jù)類型有以下幾類:
- 數(shù)據(jù)值類型
- 字符串類型
- 二進(jìn)制類型
- 日期類型
二、數(shù)據(jù)值類型
| 類型 | 大小 | 說(shuō)明 |
| BIT[(M)] | 默認(rèn)bit | M表示每個(gè)值的位數(shù),取值范圍為1~64。如果省略M,則默認(rèn)為1 |
| TINYINT[(M)] | 1byte | 取值范圍-2^7~2^7-1,無(wú)符號(hào)取值范圍2^8-1 |
| BOOL | 1byte | TINYINT(1)的同義詞。值為零被認(rèn)為是假,非零值被認(rèn)為是true |
| SMALLINT[(M)] | 2byte | 取值范圍 -2^15 ~ 2^15-1 ,?符號(hào)取值范圍 2^16-1 |
| MEDIUMINT[(M)] | 3byte | 取值范圍 -2^23 ~ 2^23-1 ,?符號(hào)取值范圍 2^24-1 |
| INT[(M)] | 4byte | 取值范圍 -2^31 ~ 2^31-1 ,?符號(hào)取值范圍 2^32-1 |
| INTEGER[(M)] | 4byte | INT[(M)]的同義詞 |
| BIGINT[(M)] | 8byte | 取值范圍 -2^63 ~ 2^63-1 ,?符號(hào)取值范圍 2^64-1 |
| FLOAT[(M,D)] | 4byte | 單精度浮點(diǎn)型,M是總位數(shù),D是?數(shù)點(diǎn)后?的位數(shù),?約可以精確到?數(shù)點(diǎn)后7位 |
| DOUBLE[(M,D)] | 8byte | 雙精度浮點(diǎn)型,M是總位數(shù),D是?數(shù)點(diǎn)后?的位數(shù),?約可以精確到?數(shù)點(diǎn)后15位。 |
| DECIMAL[(M[,D])] | 動(dòng)態(tài) | 不存在精度損失,M是總位數(shù),D是?數(shù)點(diǎn)后的位數(shù)。DECIMAL的最?位數(shù)(M)為65,最??數(shù)位數(shù)(D)為30。如果省略M,則默認(rèn)為10,如果省略D,則默認(rèn)為0。M中不計(jì)算?數(shù)點(diǎn)和負(fù)數(shù)的-號(hào),如果D為0,則值沒有?數(shù)點(diǎn)和?數(shù)部分。 |
三、字符串類型
| 類型 | 說(shuō)明 |
| CHAR[(M)] | 固定?度字符串, M 表??度,以字符為單位,取值范圍 0 ~ 255 , M 省略則?度為 1 |
| VARCHAR(M) | 可變?度字符串, M 表?字符最??度,的范圍 0 ~ 65535 ,有效字符個(gè)數(shù)取決于實(shí)際字符數(shù)和使?的字符集 |
| TINYTEXT | ??本類型,最??度為 255 (2^8-1)個(gè)字符,有效字符個(gè)數(shù)取決于使?的字符 集 |
| TEXT[(M)] | ?本類型,最??度為 65535 (2^16-1)個(gè)字符,有效字符個(gè)數(shù)取決于使?的字符集 |
| MEDIUMTEXT | 中?本類型,最??度為 16,777,215 (2^24-1)個(gè)字符,有效字符個(gè)數(shù)取決于使 ?的字符集 |
| LONGTEXT | ??本類型,最??度為 4,294,967,295 即 4GB (2^32-1)個(gè)字符,有效字符 個(gè)數(shù)取決于使?的字符集 |
| BINARY[(M)] | 固定?度?進(jìn)制字節(jié),于CHAR類似,但存儲(chǔ)的是?進(jìn)制字節(jié)?不是字符串。 M 表 ??度,以字節(jié)為單位,取值范圍 0 ~ 255 ,M 省略則?度為 1 |
| VARBINARY(M) | 可變?度?進(jìn)制字節(jié),于VARCHAR類似,但存儲(chǔ)的是?進(jìn)制字節(jié)?不是字符串。 M 表??度,以字節(jié)為單位 |
| TINYBLOB | ??進(jìn)制字節(jié)類型,最??度為 255 (2^8-1)個(gè)字節(jié) |
| BLOB[(M)] | ?進(jìn)制字節(jié)類型,最??度為 65535 (2^16-1)個(gè)字節(jié) |
| MEDIUMBLOB | 中?進(jìn)制字節(jié)類型,最??度為 16,777,215 (2^24-1)個(gè)字節(jié) |
| LONGBLOB | ??進(jìn)制字節(jié)類型,最??度為 4,294,967,295 即 4GB (2^8-1)個(gè)字節(jié) |
| ENUM('value1','valu e2',...) | • 枚舉 • 從值列表 中選?個(gè)值 • 最多可以有 65,535 個(gè)不同的元素 • 單個(gè)元素的最??度是 M <= 255 或 (M x w) <= 1020 ,其中 M 是元素字符?度, w 是字符集中字符所需的最?字節(jié)數(shù) • ENUM的值在內(nèi)部表?為整數(shù)'value1','value2' 或 ''(空字符串) 和 NULL |
| SET('value1','value 2',...) | • 集合 |
四、日期類型
| 類型 | 大小 | 說(shuō)明 | 0值 |
| TIMESTAMP[(fsp)] | 4bytes | • 時(shí)間戳類型 • ?持范圍 1970-01-01 00:00:01.000000 ~ 20388-01-19 03:14:07.499999 • 0值為 0000-00-00 00:00:00 | 0000-00- 0000:00:00 |
| DATETIME[(fsp)] | 8bytes | • ?期類型和時(shí)間類型的組合 •?持范圍 1000-01-01 00:00:00.000000 ~ 9999-12-3123:59:59.499999 • 顯?格式為 YYYY-MM-DD hh:mm:ss[.fraction] • 0值為 0000-00-00 00:00:00 | 0000-00- 00 00:00:00 |
| DATE | 3bytes | • ?期類型 • ?持范圍 1000-01-01 ~ 9999-12-31 • 顯?格式為 YYYY-MM-DD • 0值為 0000-00-00 | |
| TIME[(fsp)] | 3bytes | • 時(shí)間類型 • ?持范圍 -838:59:59.000000 ~ 838:59:59.000000 • 顯?格式為 hh:mm:ss[.fraction] • 0值為 00:00:00 | 00:00:00 |
| YEAR[(4)] | 1byte | • 4位格式的年份 • ?持范圍 1901 ~ 2155 • 顯?格式為 YYYY • 0值為 0 | 0 |
• fsp 為可選設(shè)置,?來(lái)指定?數(shù)秒精度,范圍從0到6,值為0表?沒有?數(shù)部分,如果省略,默認(rèn)
精度為0
• CURRENT_DATE和 CURRENT_DATE() 是 CURDATE() 的同義詞?于獲取當(dāng)前?期
• CURRENT_TIME和CURRENT_TIME([fsp]) 是CURTIME() 的同義詞?于獲取當(dāng)前時(shí)間
• CURRENT_TIMESTAMP和CURRENT_TIMESTAMP([fsp]) 是 NOW() 的同義詞?于獲取當(dāng)前?期和時(shí)間


五、表的操作
5.1 查看所有表
show tables;

5.2 創(chuàng)建表
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
field datatype [約束] [comment '注解內(nèi)容']
[, field datatype [約束] [comment '注解內(nèi)容']] ...
) [engine 存儲(chǔ)引擎] [character set 字符集] [collate 排序規(guī)則];
- TEMPORARY:表?創(chuàng)建的是?個(gè)臨時(shí)表
- field:列名
- datatype:數(shù)據(jù)類型
- comment:對(duì)列的描述或說(shuō)明
- engine:存儲(chǔ)引擎,不指定則使?默認(rèn)存儲(chǔ)引擎
- character set:字符集,不指定則使?默認(rèn)字符集
- collate:排序規(guī)則,不指定則使?默認(rèn)排序規(guī)則

創(chuàng)建了一個(gè)user表,含四個(gè)列,id,name,password,birthday
5.3 查看表結(jié)構(gòu)
desc 表名

- Field:表中的列名
- Type:列的數(shù)據(jù)類型
- Null:該列的值是否允許為Null
- Key:該列的索引類型
- Default:該列的默認(rèn)值
- Extra:擴(kuò)展信息
5.4 修改表
ALTER TABLE tbl_name [alter_option [, alter_option] ...];
alter_option: {
table_options
| ADD [COLUMN] col_name column_definition [FIRST | AFTER col_name]
| MODIFY [COLUMN] col_name column_definition [FIRST | AFTER col_name]
| DROP [COLUMN] col_name
| RENAME COLUMN old_col_name TO new_col_name
| RENAME [TO | AS] new_tbl_name
- tbl_name:要修改的表名
- ADD:向表中添加列
- MODIFY:修改表中現(xiàn)有的列
- DROP:刪除表中現(xiàn)有的列
- RENAME COLUMN:重命名表中現(xiàn)有的列
- RENAME [TO | AS] new_tbl_name:重命名當(dāng)前的表
向users表中添加一列assets

修改asses列的長(zhǎng)度

重命名assets列為avatar列

刪除avatar列

重命名users表為employee

5.5 刪除表
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...
- TEMPORARY:表?臨時(shí)表
- tbl_name:將要?jiǎng)h除的表名
刪除employee表

- 刪除表是?個(gè)危險(xiǎn)操作,執(zhí)?刪除語(yǔ)句時(shí)?定要謹(jǐn)慎
- 刪除表成功后,磁盤上對(duì)應(yīng)的數(shù)據(jù)?件也會(huì)被刪除
- ?次可以刪除多個(gè)表,表與表之間?逗號(hào)隔開
到此這篇關(guān)于MySQL數(shù)據(jù)類型和表的操作方法的文章就介紹到這了,更多相關(guān)mysql數(shù)據(jù)類型和表操作內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- MyBatis的JdbcType與Oracle、MySql數(shù)據(jù)類型一覽表
- 詳解MySQL數(shù)據(jù)類型DECIMAL(N,M)中N和M分別表示的含義
- MySQL與Oracle數(shù)據(jù)類型對(duì)應(yīng)關(guān)系(表格形式)
- Java數(shù)據(jù)類型與MySql數(shù)據(jù)類型對(duì)照表
- MySQL所支持的數(shù)據(jù)類型與表字段約束類型的學(xué)習(xí)教程
- MySQL優(yōu)化之表結(jié)構(gòu)優(yōu)化的5大建議(數(shù)據(jù)類型選擇講的很好)
- Mysql中返回一個(gè)數(shù)據(jù)庫(kù)的所有表名,列名數(shù)據(jù)類型備注
相關(guān)文章
php后臺(tái)經(jīng)常提示無(wú)法連接mysql 刷新后又可以訪問的解決方法
這幾天有一臺(tái)MySQL數(shù)據(jù)庫(kù)服務(wù)器出現(xiàn)了頻繁的掉線情況,通過排查,并沒有排查出哪個(gè)網(wǎng)站被攻擊,百思不得其解中的時(shí)候,群里有個(gè)朋友說(shuō)是因?yàn)槲④汯B967723造成的,網(wǎng)上搜索了一下,果然很多人都是這樣的問題,都是windows系統(tǒng)下安裝的MySQL造成的2011-05-05
mysql error:#1062 Duplicate entry ‘***′ for key 1問題解決方法
今天公司的一個(gè)網(wǎng)站突然提示MySQL Error Duplicate entry '96624' for key 1錯(cuò)誤,經(jīng)過分析這個(gè)問題是由于mysql表中的一個(gè)id自增長(zhǎng)字段導(dǎo)致。2011-09-09
MySQL實(shí)戰(zhàn)文章(非常全的基礎(chǔ)入門類教程)
半個(gè)月時(shí)間把MySQL重新鞏固了一遍,梳理了一篇幾萬(wàn)字超硬核文章,想學(xué)習(xí)mysql的朋友可以看看2023-05-05
oracle/mysql數(shù)據(jù)庫(kù)多條重復(fù)數(shù)據(jù)如何取最新的
最近開發(fā)的時(shí)候遇到一個(gè)任務(wù),需要對(duì)重復(fù)的數(shù)據(jù)進(jìn)行篩選,只取插入時(shí)間最早的一條數(shù)據(jù),這篇文章主要給大家介紹了關(guān)于oracle/mysql數(shù)據(jù)庫(kù)多條重復(fù)數(shù)據(jù)如何取最新的相關(guān)資料,需要的朋友可以參考下2024-08-08
MySQL刪除表時(shí)I/O錯(cuò)誤的原因分析與解決
兩大步驟教您開啟MySQL 數(shù)據(jù)庫(kù)遠(yuǎn)程登陸帳號(hào)的方法
詳解Mysql多表聯(lián)合查詢效率分析及優(yōu)化

