明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

mysql數(shù)據(jù)表設(shè)置案例詳細(xì)說(shuō)明

[摘要]本文主要和大家分享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)建表

  • 基本語(yǔ)法形式:

create table 【if not exists】 表名 (字段列表 【,索引或約束列表】) 【表選項(xiàng)列表】;

  • 字段設(shè)定形式:

字段名 類型 【字段屬性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ō)明文字

索引

  • 索引是系統(tǒng)內(nèi)部自動(dòng)維護(hù)的隱藏的“數(shù)據(jù)表”,它的作用是,可以極大地加快數(shù)據(jù)的查找速度!

  • 這個(gè)隱藏的數(shù)據(jù)表,其中的數(shù)據(jù)是自動(dòng)排好序的,其查找速度就是建立在這個(gè)基礎(chǔ)上。

形式為:

索引類型(要建立索引的字段名)
索引類型形式含義
普通索引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ǔ)法:

這里寫(xiě)圖片描述

外鍵索引:

foreign  key (字段名) references  其他表(對(duì)應(yīng)其他表中的字段名);

外鍵:表中的一個(gè)字段不是本表的主鍵或候選鍵,而是另一個(gè)表的主鍵或候選鍵。
候選鍵或候選鍵:如果一個(gè)表中具有能夠唯一標(biāo)識(shí)的一個(gè)行的屬性,則稱為候選鍵,候選鍵中任選一個(gè)為主鍵。

這里寫(xiě)圖片描述

示例:
這里寫(xiě)圖片描述

注意: 插入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)衡”。

大體如下:
這里寫(xiě)圖片描述

演示:
這里寫(xiě)圖片描述


修改表

幾點(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):

  • 創(chuàng)建表tab_int,顯示表創(chuàng)建語(yǔ)句

這里寫(xiě)圖片描述

  • 將tab_int復(fù)制給tab_int_bak,顯示tab_int_bak表創(chuàng)建語(yǔ)句,與tab_int一致
    這里寫(xiě)圖片描述

相關(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í)。