新聞中心
MySQL如何創(chuàng)建數(shù)據(jù)庫(kù)并查詢數(shù)據(jù)類型
1、 //看當(dāng)前使用的是哪個(gè)數(shù)據(jù)庫(kù)?,如果你還沒(méi)選擇任何數(shù)據(jù)庫(kù),結(jié)果是NULL。
成都創(chuàng)新互聯(lián)是一家專業(yè)提供泉港企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站制作、成都網(wǎng)站建設(shè)、html5、小程序制作等業(yè)務(wù)。10年已為泉港眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進(jìn)行中。
mysqlselect database();?
+------------+?
| DATABASE() |?
+------------+?
| menagerie? |?
+------------+?
2、//查看有哪些數(shù)據(jù)庫(kù)
mysql?show databases;??
+--------------------+
| Database?????????? |?
+--------------------+?
| information_schema |?
| mysql????????????? |?
| test?????????????? |?
+--------------------+?
3、//選擇數(shù)據(jù)庫(kù)??
mysqluse?test;??//;號(hào)可有可無(wú),必須單行使用.
4、為了找出當(dāng)前的數(shù)據(jù)庫(kù)包含什么表(例如,當(dāng)你不能確定一個(gè)表的名字),使用這個(gè)命令:?
5、//看數(shù)據(jù)庫(kù)里有哪些表
mysqlshow tables;??
+---------------------+
| Tables in menagerie |?
+---------------------+?
| event?????????????? |?
| pet???????????????? |?
+---------------------+?
如果你想要知道一個(gè)表的結(jié)構(gòu),可以使用DESCRIBE命令;它顯示表中每個(gè)列的信息:?
6、//看表里有哪些列
mysql describe pet;??
+---------+-------------+------+-----+---------+-------+
| Field?? | Type??????? | Null | Key | Default | Extra |?
+---------+-------------+------+-----+---------+-------+?
| name??? | varchar(20) | YES? |???? | NULL??? |?????? |?
| owner?? | varchar(20) | YES? |???? | NULL??? |?????? |?
| species | varchar(20) | YES? |???? | NULL??? |?????? |?
| ***???? | char(1)???? | YES? |???? | NULL??? |?????? |?
| birth?? | date??????? | YES? |???? | NULL??? |?????? |?
| death?? | date??????? | YES? |???? | NULL??? |?????? |?
+---------+-------------+------+-----+---------+-------+?
Field顯示列名字,Type是列的數(shù)據(jù)類型,Null表示列是否能包含NULL值,Key顯示列是否被索引而Default指定列的默認(rèn)值。?
如果表有索引,SHOW INDEX FROM tbl_name生成有關(guān)索引的信息。?
刪除數(shù)據(jù)庫(kù).?
mysqldrop database test;
MySQL的數(shù)據(jù)類型和建庫(kù)策略詳解
無(wú)論是在小得可憐的免費(fèi)數(shù)據(jù)庫(kù)空間或是大型電子商務(wù)網(wǎng)站 合理的設(shè)計(jì)表結(jié)構(gòu) 充分利用空間是十分必要的 這就要求我們對(duì)數(shù)據(jù)庫(kù)系統(tǒng)的常用數(shù)據(jù)類型有充分的認(rèn)識(shí) 下面我就將我的一點(diǎn)心得寫出來(lái)跟大家分享
一 數(shù)字類型
數(shù)字類型按照我的分類方法分為三類 整數(shù)類 小數(shù)類和數(shù)字類
我所謂的 數(shù)字類 就是指DECIMAL和NUMERIC 它們是同一種類型 它嚴(yán)格的說(shuō)不是一種數(shù)字類型 因?yàn)樗麄儗?shí)際上是將數(shù)字以字符串形式保存的 他的值的每一位(包括小數(shù)點(diǎn))占一個(gè)字節(jié)的存儲(chǔ)空間 因此這種類型耗費(fèi)空間比較大 但是它的一個(gè)突出的優(yōu)點(diǎn)是小數(shù)的位數(shù)固定 在運(yùn)算中不會(huì) 失真 所以比較適合用于 價(jià)格 金額 這樣對(duì)精度要求不高但準(zhǔn)確度要求非常高的字段
小數(shù)類 即浮點(diǎn)數(shù)類型 根據(jù)精度的不同 有FLOAT(單精度)和DOUBLE(雙精度)兩種 它們的優(yōu)勢(shì)是精確度 FLOAT可以表示絕對(duì)值非常小 小到約 E ( 小數(shù)點(diǎn)后面有 個(gè)零)的小數(shù) 而DOUBLE更是可以表示絕對(duì)值小到約 E ( 小數(shù)點(diǎn)后面有 個(gè)零)的小數(shù) FLOAT類型和DOUBLE類型占用存儲(chǔ)空間分別是 字節(jié)和 字節(jié) 如果需要用到小數(shù)的字段 精度要求不高的 當(dāng)然用FLOAT了!可是說(shuō)句實(shí)在話 我們 民用 的數(shù)據(jù) 哪有要求精度那么高的呢?這兩種類型至今我沒(méi)有用過(guò)——我還沒(méi)有遇到適合于使用它們的事例
用的最多的 最值得精打細(xì)算的 是整數(shù)類型 從只占一個(gè)字節(jié)存儲(chǔ)空間的TINYINT到占 個(gè)字節(jié)的BIGINT 挑選一個(gè) 夠用 并且占用存儲(chǔ)空間最小的類型是設(shè)計(jì)數(shù)據(jù)庫(kù)時(shí)應(yīng)該考慮的 TINYINT SMALLINT MEDIUMINT INT和BIGINT占用存儲(chǔ)空間分別為 字節(jié) 字節(jié) 字節(jié) 字節(jié)和 字節(jié) 就無(wú)符號(hào)的整數(shù)而言 這些類型能表示的最大整數(shù)分別為 和 如果用來(lái)保存用戶的年齡(舉例來(lái)說(shuō) 數(shù)據(jù)庫(kù)中保存年齡是不可取的) 用TINYINT就夠了 九城的《縱橫》里 各項(xiàng)技能值 用SMALLINT也夠了 如果要用作一個(gè)肯定不會(huì)超過(guò) 行的表的AUTO_INCREMENT的IDENTIFY字段 當(dāng)然用 MEDIUMINT 不用 INT 試想 每行節(jié)約一個(gè)字節(jié) 行可以節(jié)約 兆多呢!
二 日期時(shí)間類型
日期和時(shí)間類型比較簡(jiǎn)單 無(wú)非是 DATE TIME DATETIME TIMESTAMP和YEAR等幾個(gè)類型 只對(duì)日期敏感 而對(duì)時(shí)間沒(méi)有要求的字段 就用DATE而不用DATETIME是不用說(shuō)的了 單獨(dú)使用時(shí)間的情況也時(shí)有發(fā)生——使用TIME 但最多用到的還是用DATETIME 在日期時(shí)間類型上沒(méi)有什么文章可做 這里就不再詳述
三 字符(串)類型
不要以為字符類型就是 CHAR !CHAR和VARCHAR的區(qū)別在于CHAR是固定長(zhǎng)度 只要你定義一個(gè)字段是CHAR( ) 那么不論你存儲(chǔ)的數(shù)據(jù)是否達(dá)到了 個(gè)字節(jié) 它都要占去 個(gè)字節(jié)的空間 而VARVHAR則是可變長(zhǎng)度的 如果一個(gè)字段可能的值是不固定長(zhǎng)度的 我們只知道它不可能超過(guò) 個(gè)字符 把它定義為 VARCHAR( )是最合算的 VARCHAR 類型的實(shí)際長(zhǎng)度是它的值的(實(shí)際長(zhǎng)度+ ) 為什么 + 呢?這一個(gè)字節(jié)用于保存實(shí)際使用了多大的長(zhǎng)度呀!從這個(gè) + 中也應(yīng)該看到 如果一個(gè)字段 它的可能值最長(zhǎng)是 個(gè)字符 而多數(shù)情況下也就是用到了 個(gè)字符時(shí) 用VARCHAR就不合算了 因?yàn)樵诙鄶?shù)情況下 實(shí)際占用空間是 個(gè)字節(jié) 比用CHAR( )還多占用一個(gè)字節(jié)!
舉個(gè)例子 就是一個(gè)存儲(chǔ)股票名稱和代碼的表 股票名稱絕大部分是四個(gè)字的 即 個(gè)字節(jié) 股票代碼 上海的是六位數(shù)字 深圳的是四位數(shù)字 這些都是固定長(zhǎng)度的 股票名稱當(dāng)然要用 CHAR( ) 股票代碼雖然是不固定長(zhǎng)度 但如果使用VARVHAR( ) 一個(gè)深圳的股票代碼實(shí)際占用空間是 個(gè)字節(jié) 而一個(gè)上海的股票代碼要占用 個(gè)字節(jié)!考慮到上海的股票數(shù)目比深圳的多 那么用VARCHAR( )就不如CHAR( )合算了
雖然一個(gè)CHAR或VARVHAR的最大長(zhǎng)度可以到 我認(rèn)為大于 的CHAR是幾乎用不到的——很少有大于 個(gè)字節(jié)長(zhǎng)度的固定長(zhǎng)度的東東吧?不是固定長(zhǎng)度的就用VARCHAR!大于 的VARCHAR也是幾乎用不到的——比這更大的用TEXT就好了 TINYTEXT 最大長(zhǎng)度為 占用空間也是(實(shí)際長(zhǎng)度+ ) TEXT 最大長(zhǎng)度 占用空間是(實(shí)際長(zhǎng)度+ ) MEDIUMTEXT 最大長(zhǎng)度 占用空間是(實(shí)際長(zhǎng)度+ ) LONGTEXT 最大長(zhǎng)度 占用空間是(實(shí)際長(zhǎng)度+ ) 為什么 + ? + ? + ? + ?你要是還不知道就該打PP了 這些可以用在論壇啊 新聞啊 什么的 用來(lái)保存文章的正文 根據(jù)實(shí)際情況的不同 選擇從小到大的不同類型
四 枚舉和集合類型
枚舉(ENUM)類型 最多可以定義 種不同的字符串從中做出選擇 只能并且必須選擇其中一種 占用存儲(chǔ)空間是一個(gè)或兩個(gè)字節(jié) 由枚舉值的數(shù)目決定 集合(SET)類型 最多可以有 個(gè)成員 可以選擇其中的零個(gè)到不限定的多個(gè) 占用存儲(chǔ)空間是一個(gè)到八個(gè)字節(jié) 由集合可能的成員數(shù)目決定
舉個(gè)例子來(lái)說(shuō) 在SQLServer中 你可以節(jié)約到用一個(gè)Bit類型來(lái)表示性別(男/女) 但MySQL沒(méi)有Bit 用TINTINT?不 可以用ENUM( 帥哥 美眉 )!只有兩種選擇 所以只需一個(gè)字節(jié)——跟TINYINT一樣大 但卻可以直接用字符串 帥哥 和 美眉 來(lái)存取 真是太方便啦!
lishixinzhi/Article/program/MySQL/201311/29648
mysql中常見的數(shù)據(jù)類型
一:MySQL數(shù)據(jù)類型
MySQL中定義數(shù)據(jù)字段的類型對(duì)你數(shù)據(jù)庫(kù)的優(yōu)化是非常重要的
MySQL支持多種數(shù)據(jù)類型,大致可以分為三類:數(shù)值 日期/時(shí)間和字符串
二、數(shù)值類型
1.整數(shù)類型
2.浮點(diǎn)數(shù)
如果希望保證值比較準(zhǔn)確,推薦使用定點(diǎn)數(shù)數(shù)據(jù)類型。MySql中的浮點(diǎn)類型有float,double和real。他們定義方式為:FLOAT(M,D) 、 REAL(M,D) 、 DOUBLE PRECISION(M,D)。
FLOAT和DOUBLE中的M和D的取值默認(rèn)都為0,即除了最大最小值,不限制位數(shù)。允許的值理論上是-1.7976931348623157E+308~-2.2250738585072014E-308、0和2.2250738585072014E-308~1.7976931348623157E+308。M、D范圍如下:
(MySql5.7實(shí)測(cè),與IEEE標(biāo)準(zhǔn)計(jì)算的實(shí)際是不同的,下面介紹):M取值范圍為0~255。FLOAT只保證6位有效數(shù)字的準(zhǔn)確性,所以FLOAT(M,D)中,M=6時(shí),數(shù)字通常是準(zhǔn)確的。如果M和D都有明確定義,其超出范圍后的處理同decimal。
D取值范圍為0~30,同時(shí)必須=M。double只保證16位有效數(shù)字的準(zhǔn)確性,所以DOUBLE(M,D)中,M=16時(shí),數(shù)字通常是準(zhǔn)確的。如果M和D都有明確定義,其超出范圍后的處理同decimal。
CHAR值時(shí),在它們的右邊填充空格以達(dá)到指定的長(zhǎng)度。當(dāng)檢索到CHAR值時(shí),尾部的空格被刪除掉,所以,我們?cè)诖鎯?chǔ)時(shí)字符串右邊不能有空格,即使有,查詢出來(lái)后也會(huì)被刪除。在存儲(chǔ)或檢索過(guò)程中不進(jìn)行大小寫轉(zhuǎn)換。
三、時(shí)間日期類型(5)
該“0”值如下:
請(qǐng)點(diǎn)擊輸入圖片描述
四、各種類型占用的存儲(chǔ)
1.數(shù)值類型
請(qǐng)點(diǎn)擊輸入圖片描述
定點(diǎn)數(shù)的比較特殊,而且與具體版本也有關(guān)系,此處單獨(dú)解釋:
使用二進(jìn)制格式將9個(gè)十進(jìn)制(基于10)數(shù)壓縮為4個(gè)字節(jié)來(lái)表示DECIMAL列值。每個(gè)值的整數(shù)和分?jǐn)?shù)部分的存儲(chǔ)分別確定。每個(gè)9位數(shù)的倍數(shù)需要4個(gè)字節(jié),并且“剩余的”位需要4個(gè)字節(jié)的一部分。下表給出了超出位數(shù)的存儲(chǔ)需求:
請(qǐng)點(diǎn)擊輸入圖片描述
2.時(shí)間日期
請(qǐng)點(diǎn)擊輸入圖片描述
從版本5.6.4開始,存儲(chǔ)需求就有所改變,根據(jù)精度而定。不確定部分需要的存儲(chǔ)如下:
請(qǐng)點(diǎn)擊輸入圖片描述
比如,TIME(0), TIME(2), TIME(4), 和TIME(6) 分別使用3, 4, 5, 6 bytes?!?/p>
3.字符串
請(qǐng)點(diǎn)擊輸入圖片描述
4.類型的選擇
為了優(yōu)化存儲(chǔ),在任何情況下均應(yīng)使用最精確的類型。
例如,如果列的值的范圍為從1到99999,若使用整數(shù),則MEDIUMINT UNSIGNED是好的類型。在所有可以表示該列值的類型中,該類型使用的存儲(chǔ)最少。
用精度為65位十進(jìn)制數(shù)(基于10)對(duì)DECIMAL 列進(jìn)行所有基本計(jì)算(+、-、*、/)。
使用雙精度操作對(duì)DECIMAL值進(jìn)行計(jì)算。如果準(zhǔn)確度不是太重要或如果速度為最高優(yōu)先級(jí),DOUBLE類型即足夠了。為了達(dá)到高精度,可以轉(zhuǎn)換到保存在BIGINT中的定點(diǎn)類型。這樣可以用64位整數(shù)進(jìn)行所有計(jì)算,根據(jù)需要將結(jié)果轉(zhuǎn)換回浮點(diǎn)值。
5.使用其他數(shù)據(jù)庫(kù)的SQL語(yǔ)句
為了使用為其它數(shù)據(jù)庫(kù)編寫的SQL執(zhí)行代碼,MySQL按照下表所示對(duì)列類型進(jìn)行映射。通過(guò)這些映射,可以很容易地從其它數(shù)據(jù)庫(kù)引擎將表定義導(dǎo)入到MySQL中:
請(qǐng)點(diǎn)擊輸入圖片描述
如何在navicat for mysql里打開的表里查看數(shù)據(jù)類型
第一步:點(diǎn)擊打開表左上角的“文件”;
第二步:選擇“設(shè)計(jì)表”;
第三步:此時(shí)就會(huì)彈出“數(shù)據(jù)類型”頁(yè)面。之后點(diǎn)擊“文件”的“打開表”就可以返回到數(shù)據(jù)列表頁(yè)面。
文章題目:mysql數(shù)據(jù)類型怎么看 mysql查看表類型
鏈接URL:http://fisionsoft.com.cn/article/hphdsi.html