mysql數(shù)據(jù)表設(shè)置案例詳細(xì)說(shuō)明
發(fā)表時(shí)間:2023-07-13 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]本文主要和大家分享mysql數(shù)據(jù)表操作實(shí)例詳解,希望能幫助到大家,首先我們先來(lái)看一下如何創(chuàng)建數(shù)據(jù)表。創(chuàng)建表基本語(yǔ)法形式:create table 【if not exists】 表名 (字段列表 【...
本文主要和大家分享mysql數(shù)據(jù)表操作實(shí)例詳解,希望能幫助到大家,首先我們先來(lái)看一下如何創(chuàng)建數(shù)據(jù)表。
創(chuàng)建表
create table 【if not exists】 表名 (字段列表 【,索引或約束列表】) 【表選項(xiàng)列表】;
字段名 類型 【字段屬性1 字段屬性2 …..】
說(shuō)明:
1. 字段名可以自己;
2. 類型就是前面所學(xué)的數(shù)據(jù)類型:int, tinyint, float, double, char(6), varchar(25), text, datetime。
3. 字段屬性可以有多個(gè)(根據(jù)具體的需要),相互之間直接空格隔開(kāi);主要如下幾個(gè):
屬性名稱 | 含義 |
---|
auto_increment: | 只用于整數(shù)類型,讓該字段的值自動(dòng)獲得一個(gè)增長(zhǎng)值。通常用于做一個(gè)表的第一個(gè)字段的設(shè)定,并且通常還當(dāng)做主鍵(primary key) |
primary key: | 用于設(shè)定該字段為主鍵,此時(shí)該字段的值就可以“唯一確定”一行數(shù)據(jù) |
unique key: | 設(shè)定該字段是“唯一的”,也就是不重復(fù)的。 |
not null: | 用于設(shè)定該字段不能為空(null),如果沒(méi)有設(shè)定,則默認(rèn)是可為空的。 |
comment : | 字段說(shuō)明文字 |
索引
形式為:
索引類型(要建立索引的字段名)
索引類型 | 形式 | 含義 |
---|
普通索引 | key(字段名) | 就是一個(gè)索引而已,沒(méi)有其他作用,只能加快查找速度 |
唯一索引 | unique key(字段名) | 是一個(gè)索引,而且還可以設(shè)定其字段的值不能重復(fù)(唯一性) |
主鍵索引 | primary key (字段名) | 是一個(gè)索引,而且,還具有區(qū)分該表中的任何一行數(shù)據(jù)的作用(其實(shí)也是唯一性),它其實(shí)比唯一性索引多一點(diǎn)功能:唯一性可以為空null,而主鍵不能為空 |
全文索引 | fulltext (字段名) |
|
外鍵索引 | foreign key (字段名) | references 其他表(對(duì)應(yīng)其他表中的字段名) |
索引創(chuàng)建語(yǔ)法:
外鍵索引:
foreign key (字段名) references 其他表(對(duì)應(yīng)其他表中的字段名);
外鍵:表中的一個(gè)字段不是本表的主鍵或候選鍵,而是另一個(gè)表的主鍵或候選鍵。
候選鍵或候選鍵:如果一個(gè)表中具有能夠唯一標(biāo)識(shí)的一個(gè)行的屬性,則稱為候選鍵,候選鍵中任選一個(gè)為主鍵。
示例:
注意: 插入xuesheng表中的數(shù)據(jù)時(shí),banji_id字段的值,就不可以隨便插入了,而是必須是banji表中的id字段所已經(jīng)有的數(shù)據(jù)值,才可以插入。
全文索引:僅做了解,因?yàn)閷?duì)中文還不夠友好
一、概述
MySQL中的全文檢索是利用查詢關(guān)鍵字和查詢列內(nèi)容之間的相關(guān)度進(jìn)行檢索,可以利用全文索引來(lái)提高匹配的速度。
二、語(yǔ)法
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上建立一個(gè)全文索引。
約束
約束,就是要求數(shù)據(jù)需要滿足什么條件的一種“規(guī)定”。
約束類型 | 形式 | 含義 |
---|
主鍵約束 | primary key ( 字段名) | 使該設(shè)定字段的值可以用于“唯一確定一行數(shù)據(jù)”,其實(shí)就是“主鍵”的意思。 |
唯一約束 | unique key ( 字段名) | 使該設(shè)定字段的值具有“唯一性”,自然也是可區(qū)分的。 |
外鍵約束 | foreign key ( 字段名) references 其他表名(對(duì)應(yīng)其他表中的字段名) | 使該設(shè)定字段的值,必須在其誰(shuí)定的對(duì)應(yīng)表中的對(duì)應(yīng)字段中已經(jīng)有該值了。 |
非空約束 | not null | 其實(shí)就是設(shè)定一個(gè)字段時(shí)寫(xiě)的那個(gè)“not null”屬性。這個(gè)約束只能寫(xiě)在字段屬性上 |
默認(rèn)約束 | default XX值 | 其實(shí)就是設(shè)定一個(gè)字段時(shí)寫(xiě)的那個(gè)“default 默認(rèn)值”屬性,這個(gè)約束只能寫(xiě)在字段屬性上。 |
檢查約束 | check(某種判斷語(yǔ)句) |
|
比如:
create table tab1 (
age tinyint,check (age>=0 and age <100) /*這就是檢查約束*/
)#目前相關(guān)版本還不支持,就是說(shuō)只分析,但會(huì)被忽略。
其實(shí),主鍵約束,唯一約束,外鍵約束,只是“同一件事情的2個(gè)不同角度的說(shuō)法”,他們同時(shí)也稱為“主鍵索引”,“唯一索引”,“外鍵索引”。
表選項(xiàng)列表
表選項(xiàng)就是,創(chuàng)建一個(gè)表的時(shí)候,對(duì)該表的整體設(shè)定,主要有如下幾個(gè):
1、 charset = 要使用的字符編碼,
2、 engine = 要使用的存儲(chǔ)引擎(也叫表類型),
3、auto_increment = 設(shè)定當(dāng)前表的自增長(zhǎng)字段的初始值,默認(rèn)是1
4、comment =‘該表的一些說(shuō)明文字’
說(shuō)明:
1,設(shè)定的字符編碼是為了跟數(shù)據(jù)庫(kù)設(shè)定的不一樣。如果一樣,就不需要設(shè)定了:因?yàn)槠鋾?huì)自動(dòng)使用數(shù)據(jù)庫(kù)級(jí)別的設(shè)定;
2,engine(存儲(chǔ)引擎)在代碼層面,就是一個(gè)名詞:InnoDB, MyIsam, BDB, archive, Memory。默認(rèn)是InnoDB。
存儲(chǔ)引擎
存儲(chǔ)引擎是將數(shù)據(jù)存儲(chǔ)到硬盤(pán)的“機(jī)制”。
不同的存儲(chǔ)引擎,其實(shí)主要是從2個(gè)大的層面來(lái)設(shè)計(jì)存儲(chǔ)機(jī)制:
選擇不同的存儲(chǔ)引擎,就是上述性能和功能的“權(quán)衡”。
大體如下:
演示:
修改表
幾點(diǎn)說(shuō)明:
修改表,是指修改表的結(jié)構(gòu)——正如創(chuàng)建表也是設(shè)定表的結(jié)構(gòu)。
創(chuàng)建表能做的事,修改表幾乎都能做——但很不推薦去修改表,而是應(yīng)該在創(chuàng)建表的時(shí)候就基本確定表的結(jié)構(gòu)。
大體來(lái)說(shuō):
1:可以對(duì)字段進(jìn)行:添加,刪除,修改;
2:可以對(duì)索引進(jìn)行:添加,刪除
表的選項(xiàng),通!岸际切薷摹保词共粚(xiě)任何表選項(xiàng),他們都有其默認(rèn)值。
常見(jiàn)幾個(gè):
操作類型 | 表達(dá)式 |
---|
添加字段 | 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】 表名 |
其他表的相關(guān)語(yǔ)句:
操作類型 | 表達(dá)式 |
---|
顯示當(dāng)前數(shù)據(jù)庫(kù)中的所有表 | show tables |
顯示某表的結(jié)構(gòu) | desc 表名; 或:describe 表名 |
顯示某表的創(chuàng)建語(yǔ)句 | show create table 表名 |
重命名表 | rename table 舊表名 to 新表名 |
從已有表復(fù)制表結(jié)構(gòu) | create table [if not exists] 新表名 like 原表名 |
演示復(fù)制表結(jié)構(gòu):
相關(guān)推薦:
查看MySQL數(shù)據(jù)表的索引方法
MySQL數(shù)據(jù)表的創(chuàng)建、查看、插入實(shí)例詳解
關(guān)于MySQL數(shù)據(jù)表操作的詳解
以上就是mysql數(shù)據(jù)表操作實(shí)例詳解的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!
學(xué)習(xí)教程快速掌握從入門(mén)到精通的SQL知識(shí)。