下面一起來了解下操作MySQL數(shù)據(jù)表的詳細方法,相信大家看完肯定會受益匪淺,文字在精不在多,希望操作mysql數(shù)據(jù)表的詳細方法這篇短內容是你想要的。
為市中等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及市中網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為成都網(wǎng)站設計、網(wǎng)站建設、市中網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
基本語法形式:
create table 【if not exists】 表名 (字段列表 【,索引或約束列表】) 【表選項列表】;
字段設定形式:
字段名 類型 【字段屬性1 字段屬性2 …..】
說明:
1. 字段名可以自己取;
2. 類型就是前面所學的數(shù)據(jù)類型:int, tinyint, float, double, char(6), varchar(25), text, datetime。
3. 字段屬性可以有多個(根據(jù)具體的需要),相互之間直接空格隔開;主要如下幾個:
屬性名稱 | 含義 |
---|---|
auto_increment: | 只用于整數(shù)類型,讓該字段的值自動獲得一個增長值。通常用于做一個表的第一個字段的設定,并且通常還當做主鍵(primary key) |
primary key: | 用于設定該字段為主鍵,此時該字段的值就可以“唯一確定”一行數(shù)據(jù) |
unique key: | 設定該字段是“唯一的”,也就是不重復的。 |
not null: | 用于設定該字段不能為空(null),如果沒有設定,則默認是可為空的。 |
comment : | 字段說明文字 |
索引是系統(tǒng)內部自動維護的隱藏的“數(shù)據(jù)表”,它的作用是,可以極大地加快數(shù)據(jù)的查找速度!
這個隱藏的數(shù)據(jù)表,其中的數(shù)據(jù)是自動排好序的,其查找速度就是建立在這個基礎上。
形式為:
索引類型(要建立索引的字段名)
索引類型 | 形式 | 含義 |
---|---|---|
普通索引 | key(字段名) | 就是一個索引而已,沒有其他作用,只能加快查找速度 |
唯一索引 | unique key(字段名) | 是一個索引,而且還可以設定其字段的值不能重復(唯一性) |
主鍵索引 | primary key (字段名) | 是一個索引,而且,還具有區(qū)分該表中的任何一行數(shù)據(jù)的作用(其實也是唯一性),它其實比唯一性索引多一點功能:唯一性可以為空null,而主鍵不能為空 |
全文索引 | fulltext (字段名) | |
外鍵索引 | foreign key (字段名) | references 其他表(對應其他表中的字段名) |
索引創(chuàng)建語法:
外鍵索引:
foreign key (字段名) references 其他表(對應其他表中的字段名);
外鍵:表中的一個字段不是本表的主鍵或候選鍵,而是另一個表的主鍵或候選鍵。
候選鍵或候選鍵:如果一個表中具有能夠唯一標識的一個行的屬性,則稱為候選鍵,候選鍵中任選一個為主鍵。
示例:
注意: 插入xuesheng表中的數(shù)據(jù)時,banji_id字段的值,就不可以隨便插入了,而是必須是banji表中的id字段所已經有的數(shù)據(jù)值,才可以插入。
全文索引:僅做了解,因為對中文還不夠友好
一、概述
MySQL中的全文檢索是利用查詢關鍵字和查詢列內容之間的相關度進行檢索,可以利用全文索引來提高匹配的速度。
二、語法
MATCH (col1,col2,...) AGAINST (expr [search_modifier])
search_modifier: { IN BOOLEAN MODE | WITH QUERY EXPANSION }
例如:SELECT * FROM tab_name WHERE MATCH (col1,col2) AGAINST (search_word);
這里的table需要是MyISAM類型的表,col1、col2需要是char、varchar或text類型,在查詢之前需要在col1和col2上建立一個全文索引。
約束,就是要求數(shù)據(jù)需要滿足什么條件的一種“規(guī)定”。
約束類型 | 形式 | 含義 |
---|---|---|
主鍵約束 | primary key ( 字段名) | 使該設定字段的值可以用于“唯一確定一行數(shù)據(jù)”,其實就是“主鍵”的意思。 |
唯一約束 | unique key ( 字段名) | 使該設定字段的值具有“唯一性”,自然也是可區(qū)分的。 |
外鍵約束 | foreign key ( 字段名) references 其他表名(對應其他表中的字段名) | 使該設定字段的值,必須在其誰定的對應表中的對應字段中已經有該值了。 |
非空約束 | not null | 其實就是設定一個字段時寫的那個“not null”屬性。這個約束只能寫在字段屬性上 |
默認約束 | default XX值 | 其實就是設定一個字段時寫的那個“default 默認值”屬性,這個約束只能寫在字段屬性上。 |
檢查約束 | check(某種判斷語句) |
比如:
create table tab1 ( age tinyint,check (age>=0 and age <100) /*這就是檢查約束*/ )#目前相關版本還不支持,就是說只分析,但會被忽略。
其實,主鍵約束,唯一約束,外鍵約束,只是“同一件事情的2個不同角度的說法”,他們同時也稱為“主鍵索引”,“唯一索引”,“外鍵索引”。
表選項就是,創(chuàng)建一個表的時候,對該表的整體設定,主要有如下幾個:
1、 charset = 要使用的字符編碼,
2、 engine = 要使用的存儲引擎(也叫表類型),
3、auto_increment = 設定當前表的自增長字段的初始值,默認是1
4、comment =‘該表的一些說明文字’
說明:
1,設定的字符編碼是為了跟數(shù)據(jù)庫設定的不一樣。如果一樣,就不需要設定了:因為其會自動使用數(shù)據(jù)庫級別的設定;
2,engine(存儲引擎)在代碼層面,就是一個名詞:InnoDB, MyIsam, BDB, archive, Memory。默認是InnoDB。
存儲引擎是將數(shù)據(jù)存儲到硬盤的“機制”。
不同的存儲引擎,其實主要是從2個大的層面來設計存儲機制:
盡可能快的速度;
盡可能多的功能;
選擇不同的存儲引擎,就是上述性能和功能的“權衡”。
大體如下:
演示:
幾點說明:
修改表,是指修改表的結構——正如創(chuàng)建表也是設定表的結構。
創(chuàng)建表能做的事,修改表幾乎都能做——但很不推薦去修改表,而是應該在創(chuàng)建表的時候就基本確定表的結構。
大體來說:
1:可以對字段進行:添加,刪除,修改;
2:可以對索引進行:添加,刪除
表的選項,通常“都是修改”,即使不寫任何表選項,他們都有其默認值。
常見幾個:
操作類型 | 表達式 |
---|---|
添加字段 | alter table 表名 add [column] 新字段名 字段類型 [字段屬性列表] |
修改字段(并可改名) | alter table 表名 change [column] 舊字段名 新字段名 新字段類型 [新字段屬性列表] |
刪除字段 | alter table 表名 drop [column] 字段名 |
添加普通索引 | alter table 表名 add key [索引名] (字段名1[,字段名2,…]) |
添加唯一索引(約束) | alter table 表名 add unique key (字段名1[,字段名2,…]) |
添加主鍵索引(約束) | alter table 表名 add primary key (字段名1[,字段名2,…]) |
修改表名 | alter table 舊表名 rename [to] 新表名 |
刪除表 | drop table 【if exists】 表名 |
其他表的相關語句:
操作類型 | 表達式 |
---|---|
顯示當前數(shù)據(jù)庫中的所有表 | show tables |
顯示某表的結構 | desc 表名; 或:describe 表名 |
顯示某表的創(chuàng)建語句 | show create table 表名 |
重命名表 | rename table 舊表名 to 新表名 |
從已有表復制表結構 | create table [if not exists] 新表名 like 原表名 |
演示復制表結構:
創(chuàng)建表tab_int,顯示表創(chuàng)建語句
將tab_int復制給tab_int_bak,顯示tab_int_bak表創(chuàng)建語句,與tab_int一致
看完操作mysql數(shù)據(jù)表的詳細方法這篇文章后,很多讀者朋友肯定會想要了解更多的相關內容,如需獲取更多的行業(yè)信息,可以關注我們的行業(yè)資訊欄目。