MySQL數(shù)據(jù)庫(kù)表的合并與分區(qū)實(shí)現(xiàn)介紹
創(chuàng)建數(shù)據(jù)表
創(chuàng)建數(shù)據(jù)表的,使用字符串應(yīng)該遵循的原則
- 從速度方面考慮,要選擇固定的列,可以使用CHAR類(lèi)型
- 要節(jié)省空間,使用動(dòng)態(tài)的列,可以使用VARCHAR類(lèi)型
- 要將列中的內(nèi)容限制為一種選擇,可以使用ENUM類(lèi)型
- 允許在一列中有多個(gè)條目,可以使用SET類(lèi)型
- 如果要搜索的內(nèi)容不區(qū)分大小寫(xiě),可以使用TEXT類(lèi)型
- 如果要搜索的內(nèi)容區(qū)分大小寫(xiě),可以使用BLOB類(lèi)型
創(chuàng)建數(shù)據(jù)表其實(shí)就是在已經(jīng)創(chuàng)建好的數(shù)據(jù)庫(kù)中建立新表。
數(shù)據(jù)表屬于數(shù)據(jù)庫(kù),在創(chuàng)建數(shù)據(jù)表之前,應(yīng)該使用語(yǔ)句
"use <數(shù)據(jù)庫(kù)名>" ; //表明使用哪個(gè)數(shù)據(jù)庫(kù)。
如果你沒(méi)有選擇數(shù)據(jù)庫(kù)的話(huà),MySQL會(huì)拋出No database selected 的錯(cuò)誤提示
創(chuàng)建數(shù)據(jù)表的語(yǔ)句為:
create table 數(shù)據(jù)表名稱(chēng)(
字段名1 數(shù)據(jù)類(lèi)型 [完整約束條件] [默認(rèn)值],
字段名2 數(shù)據(jù)類(lèi)型 [完整約束條件] [默認(rèn)值],
字段名3 數(shù)據(jù)類(lèi)型 [完整約束條件] [默認(rèn)值],
)
"數(shù)據(jù)表名稱(chēng)"是創(chuàng)建數(shù)據(jù)表的名字。"字段名"是數(shù)據(jù)表的列名,"完整性約束條件"是字段的特殊約束條件
使用create table 創(chuàng)建表時(shí),必須指定以下信息:
數(shù)據(jù)表名不區(qū)分大小寫(xiě),且不能使用SQL中的關(guān)鍵字,如DROP,INSERT等。
如果數(shù)據(jù)表中有多個(gè)字段(列),字段(列)的名稱(chēng)和數(shù)據(jù)類(lèi)型要用英文逗號(hào)隔開(kāi)。
數(shù)據(jù)庫(kù)表合并
合并表:把多個(gè)結(jié)果相同的的表合并為一個(gè)容器。
容器的類(lèi)型:Myisam,存儲(chǔ)引擎:merge
存在的問(wèn)題:有重復(fù)的行
create table packtable( id .... )engine=merge unique=(table1,table2);
數(shù)據(jù)庫(kù)表分區(qū)
表的分區(qū):
- 水平分區(qū):根據(jù)某個(gè)字段進(jìn)行分區(qū)(RANGE分區(qū))
create table test1( id int(10) primary key auto_increment, score int(3) )engine=innodb default charset=utf8 partition by range(score)( //根據(jù)score字段分區(qū),score小于60的在p1分區(qū) partition p1 values less than(60), //根據(jù)score字段分區(qū),score小于70的在p2 分區(qū) partition p2 values less than(70), //根據(jù)score字段分區(qū),score大于70的在p3 分區(qū) partition p3 values lessthan maxvalue );
- list分區(qū):第一選擇基于某 列的值是否屬于某個(gè) 集合
create table test1( id int(10) primary key auto_increment, branch_id int(3) )engine=innodb default charset=utf8 partition by list(branch_id )( //根據(jù)branch_id 字段分區(qū),branch_id 在1,2,3之中的為p1分區(qū) partition p1 values less in(1,2,3), //根據(jù)branch_id 字段分區(qū),branch_id 在7,8,9 之中的為p2分區(qū) partition p2 values less in(7,8,9) );
- hash分區(qū):支持?jǐn)?shù)值類(lèi)型
-- -- 根據(jù)birthda字段獲取月份,再根據(jù)月份進(jìn)行分區(qū)儲(chǔ)存,一共分12個(gè)區(qū); -- create table test1( id int(10) primary key auto_increment, birthday date )engine=innodb default charset=utf8 partition by hash(month(birthday)) partitions 12;
- 線(xiàn)性分區(qū)(linear hash):大數(shù)據(jù)是增加,合并,拆分速度更快
-- -- 根據(jù)branch_id字段進(jìn)行分區(qū)儲(chǔ)存,一共分5個(gè)區(qū); -- create table test1( id int(10) primary key auto_increment, branch_id int(3) )engine=innodb default charset=utf8 partition by linear hash (branch_id ) partitions 5;
- key分區(qū):可以計(jì)算一列或者多列進(jìn)行分區(qū)
-- -- 根據(jù)branch_id字段進(jìn)行分區(qū)儲(chǔ)存,一共分5個(gè)區(qū); -- create table test1( id int(10) primary key auto_increment, branch_id int(3) )engine=innodb default charset=utf8 partition by key (branch_id ) partitions 5;
到此這篇關(guān)于MySQL數(shù)據(jù)庫(kù)表的合并與分區(qū)實(shí)現(xiàn)介紹的文章就介紹到這了,更多相關(guān)MySQL數(shù)據(jù)庫(kù)表內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決MySQL Workbench gnome-keyring-daemon錯(cuò)誤的方法分享
這篇文章主要介紹了解決MySQL Workbench gnome-keyring-daemon錯(cuò)誤的方法,需要的朋友可以參考下2014-08-08Dbeaver連接MySQL數(shù)據(jù)庫(kù)及錯(cuò)誤Connection?refusedconnect處理方法
這篇文章主要介紹了dbeaver連接MySQL數(shù)據(jù)庫(kù)及錯(cuò)誤Connection?refusedconnect處理方法,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08mysql regexp匹配多個(gè)字符串實(shí)現(xiàn)
本文主要介紹了mysql regexp匹配多個(gè)字符串實(shí)現(xiàn),可以利用REGEXP正則表達(dá)式匹配多個(gè)字符串,從而實(shí)現(xiàn)高效查詢(xún),具有一定的參考價(jià)值,感興趣的可以了解一下2024-09-09