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