gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区

站長(zhǎng)資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

mysql中主鍵是索引嗎

mysql中主鍵不是索引。主鍵全稱“主鍵約束”,是對(duì)表中數(shù)據(jù)的一種約束,它是表的一個(gè)特殊字段,該字段能唯一標(biāo)識(shí)該表中的每條信息;而索引是一種特殊的數(shù)據(jù)庫結(jié)構(gòu),由數(shù)據(jù)表中的一列或多列組合而成,可以用來快速查詢數(shù)據(jù)表中有某一特定值的記錄。

mysql中主鍵是索引嗎

本教程操作環(huán)境:windows7系統(tǒng)、mysql8版本、Dell G3電腦。

MySQL 主鍵

在 MySQL 中,主鍵(PRIMARY KEY)的完整稱呼是“主鍵約束”,是 MySQL 中使用最為頻繁的約束。一般情況下,為了便于 DBMS 更快的查找到表中的記錄,都會(huì)在表中設(shè)置一個(gè)主鍵。

約束是指對(duì)表中數(shù)據(jù)的一種約束,能夠幫助數(shù)據(jù)庫管理員更好地管理數(shù)據(jù)庫,并且能夠確保數(shù)據(jù)庫中數(shù)據(jù)的正確性和有效性。

主鍵是表的一個(gè)特殊字段,該字段能唯一標(biāo)識(shí)該表中的每條信息。例如,學(xué)生信息表中的學(xué)號(hào)是唯一的。

主鍵分為單字段主鍵和多字段聯(lián)合主鍵,本節(jié)將分別講解這兩種主鍵約束的創(chuàng)建、修改和刪除。

使用主鍵應(yīng)注意以下幾點(diǎn):

  • 每個(gè)表只能定義一個(gè)主鍵。

  • 主鍵值必須唯一標(biāo)識(shí)表中的每一行,且不能為 NULL,即表中不可能存在有相同主鍵值的兩行數(shù)據(jù)。這是唯一性原則。

  • 一個(gè)字段名只能在聯(lián)合主鍵字段表中出現(xiàn)一次。

  • 聯(lián)合主鍵不能包含不必要的多余字段。當(dāng)把聯(lián)合主鍵的某一字段刪除后,如果剩下的字段構(gòu)成的主鍵仍然滿足唯一性原則,那么這個(gè)聯(lián)合主鍵是不正確的。這是最小化原則。

在創(chuàng)建表時(shí)設(shè)置主鍵約束

在創(chuàng)建數(shù)據(jù)表時(shí)設(shè)置主鍵約束,既可以為表中的一個(gè)字段設(shè)置主鍵,也可以為表中多個(gè)字段設(shè)置聯(lián)合主鍵。但是不論使用哪種方法,在一個(gè)表中主鍵只能有一個(gè)。下面分別講解設(shè)置單字段主鍵和多字段聯(lián)合主鍵的方法。

1)設(shè)置單字段主鍵

在 CREATE TABLE 語句中,通過 PRIMARY KEY 關(guān)鍵字來指定主鍵。

在定義字段的同時(shí)指定主鍵,語法格式如下:

<字段名> <數(shù)據(jù)類型> PRIMARY KEY [默認(rèn)值]

例 1

在 test_db 數(shù)據(jù)庫中創(chuàng)建 tb_emp3 數(shù)據(jù)表,其主鍵為 id,SQL 語句和運(yùn)行結(jié)果如下。

mysql> CREATE TABLE tb_emp3     -> (     -> id INT(11) PRIMARY KEY,     -> name VARCHAR(25),     -> deptId INT(11),     -> salary FLOAT     -> ); Query OK, 0 rows affected (0.37 sec)  mysql> DESC tb_emp3; +--------+-------------+------+-----+---------+-------+ | Field  | Type        | Null | Key | Default | Extra | +--------+-------------+------+-----+---------+-------+ | id     | int(11)     | NO   | PRI | NULL    |       | | name   | varchar(25) | YES  |     | NULL    |       | | deptId | int(11)     | YES  |     | NULL    |       | | salary | float       | YES  |     | NULL    |       | +--------+-------------+------+-----+---------+-------+ 4 rows in set (0.14 sec)

或者是在定義完所有字段之后指定主鍵,語法格式如下:

[CONSTRAINT <約束名>] PRIMARY KEY [字段名]

例 2

在 test_db 數(shù)據(jù)庫中創(chuàng)建 tb_emp4 數(shù)據(jù)表,其主鍵為 id,SQL 語句和運(yùn)行結(jié)果如下。

mysql> CREATE TABLE tb_emp4     -> (     -> id INT(11),     -> name VARCHAR(25),     -> deptId INT(11),     -> salary FLOAT,     -> PRIMARY KEY(id)     -> ); Query OK, 0 rows affected (0.37 sec) mysql> DESC tb_emp4; +--------+-------------+------+-----+---------+-------+ | Field  | Type        | Null | Key | Default | Extra | +--------+-------------+------+-----+---------+-------+ | id     | int(11)     | NO   | PRI | NULL    |       | | name   | varchar(25) | YES  |     | NULL    |       | | deptId | int(11)     | YES  |     | NULL    |       | | salary | float       | YES  |     | NULL    |       | +--------+-------------+------+-----+---------+-------+ 4 rows in set (0.14 sec)

2)在創(chuàng)建表時(shí)設(shè)置聯(lián)合主鍵

所謂的聯(lián)合主鍵,就是這個(gè)主鍵是由一張表中多個(gè)字段組成的。

比如,設(shè)置學(xué)生選課數(shù)據(jù)表時(shí),使用學(xué)生編號(hào)做主鍵還是用課程編號(hào)做主鍵呢?如果用學(xué)生編號(hào)做主鍵,那么一個(gè)學(xué)生就只能選擇一門課程。如果用課程編號(hào)做主鍵,那么一門課程只能有一個(gè)學(xué)生來選。顯然,這兩種情況都是不符合實(shí)際情況的。

實(shí)際上設(shè)計(jì)學(xué)生選課表,要限定的是一個(gè)學(xué)生只能選擇同一課程一次。因此,學(xué)生編號(hào)和課程編號(hào)可以放在一起共同作為主鍵,這也就是聯(lián)合主鍵了。

主鍵由多個(gè)字段聯(lián)合組成,語法格式如下:

PRIMARY KEY [字段1,字段2,…,字段n]

注意:當(dāng)主鍵是由多個(gè)字段組成時(shí),不能直接在字段名后面聲明主鍵約束。

例 3

創(chuàng)建數(shù)據(jù)表 tb_emp5,假設(shè)表中沒有主鍵 id,為了唯一確定一個(gè)員工,可以把 name、deptId 聯(lián)合起來作為主鍵,SQL 語句和運(yùn)行結(jié)果如下。

mysql> CREATE TABLE tb_emp5     -> (     -> name VARCHAR(25),     -> deptId INT(11),     -> salary FLOAT,     -> PRIMARY KEY(name,deptId)     -> ); Query OK, 0 rows affected (0.37 sec) mysql> DESC tb_emp5; +--------+-------------+------+-----+---------+-------+ | Field  | Type        | Null | Key | Default | Extra | +--------+-------------+------+-----+---------+-------+ | name   | varchar(25) | NO   | PRI | NULL    |       | | deptId | int(11)     | NO   | PRI | NULL    |       | | salary | float       | YES  |     | NULL    |       | +--------+-------------+------+-----+---------+-------+ 3 rows in set (0.14 sec)

在修改表時(shí)添加主鍵約束

主鍵約束不僅可以在創(chuàng)建表的同時(shí)創(chuàng)建,也可以在修改表時(shí)添加。但是需要注意的是,設(shè)置成主鍵約束的字段中不允許有空值。

在修改數(shù)據(jù)表時(shí)添加主鍵約束的語法格式如下:

ALTER TABLE <數(shù)據(jù)表名> ADD PRIMARY KEY(<字段名>);

查看 tb_emp2 數(shù)據(jù)表的表結(jié)構(gòu),SQL 語句和運(yùn)行結(jié)果如下所示。

mysql> DESC tb_emp2; +--------+-------------+------+-----+---------+-------+ | Field  | Type        | Null | Key | Default | Extra | +--------+-------------+------+-----+---------+-------+ | id     | int(11)     | NO   |     | NULL    |       | | name   | varchar(30) | YES  |     | NULL    |       | | deptId | int(11)     | YES  |     | NULL    |       | | salary | float       | YES  |     | NULL    |       | +--------+-------------+------+-----+---------+-------+ 4 rows in set (0.14 sec)

例 4

修改數(shù)據(jù)表 tb_emp2,將字段 id 設(shè)置為主鍵,SQL 語句和運(yùn)行結(jié)果如下。

mysql> ALTER TABLE tb_emp2     -> ADD PRIMARY KEY(id); Query OK, 0 rows affected (0.94 sec) Records: 0  Duplicates: 0  Warnings: 0 mysql> DESC tb_emp2; +--------+-------------+------+-----+---------+-------+ | Field  | Type        | Null | Key | Default | Extra | +--------+-------------+------+-----+---------+-------+ | id     | int(11)     | NO   | PRI | NULL    |       | | name   | varchar(30) | YES  |     | NULL    |       | | deptId | int(11)     | YES  |     | NULL    |       | | salary | float       | YES  |     | NULL    |       | +--------+-------------+------+-----+---------+-------+ 4 rows in set (0.12 sec)

通常情況下,當(dāng)在修改表時(shí)要設(shè)置表中某個(gè)字段的主鍵約束時(shí),要確保設(shè)置成主鍵約束的字段中值不能夠有重復(fù)的,并且要保證是非空的。否則,無法設(shè)置主鍵約束。

MySQL 索引(Index)

索引是一種特殊的數(shù)據(jù)庫結(jié)構(gòu),由數(shù)據(jù)表中的一列或多列組合而成,可以用來快速查詢數(shù)據(jù)表中有某一特定值的記錄。

通過索引,查詢數(shù)據(jù)時(shí)不用讀完記錄的所有信息,而只是查詢索引列。否則,數(shù)據(jù)庫系統(tǒng)將讀取每條記錄的所有信息進(jìn)行匹配。

可以把索引比作新華字典的音序表。例如,要查“庫”字,如果不使用音序,就需要從字典的 400 頁中逐頁來找。但是,如果提取拼音出來,構(gòu)成音序表,就只需要從 10 多頁的音序表中直接查找。這樣就可以大大節(jié)省時(shí)間。

索引的優(yōu)缺點(diǎn)

索引有其明顯的優(yōu)勢(shì),也有其不可避免的缺點(diǎn)。

優(yōu)點(diǎn)

索引的優(yōu)點(diǎn)如下:

  • 通過創(chuàng)建唯一索引可以保證數(shù)據(jù)庫表中每一行數(shù)據(jù)的唯一性。

  • 可以給所有的 MySQL 列類型設(shè)置索引。

  • 可以大大加快數(shù)據(jù)的查詢速度,這是使用索引最主要的原因。

  • 在實(shí)現(xiàn)數(shù)據(jù)的參考完整性方面可以加速表與表之間的連接。

  • 在使用分組和排序子句進(jìn)行數(shù)據(jù)查詢時(shí)也可以顯著減少查詢中分組和排序的時(shí)間

缺點(diǎn)

增加索引也有許多不利的方面,主要如下:

  • 創(chuàng)建和維護(hù)索引組要耗費(fèi)時(shí)間,并且隨著數(shù)據(jù)量的增加所耗費(fèi)的時(shí)間也會(huì)增加。

  • 索引需要占磁盤空間,除了數(shù)據(jù)表占數(shù)據(jù)空間以外,每一個(gè)索引還要占一定的物理空間。如果有大量的索引,索引文件可能比數(shù)據(jù)文件更快達(dá)到最大文件尺寸。

  • 當(dāng)對(duì)表中的數(shù)據(jù)進(jìn)行增加、刪除和修改的時(shí)候,索引也要?jiǎng)討B(tài)維護(hù),這樣就降低了數(shù)據(jù)的維護(hù)速度。

使用索引時(shí),需要綜合考慮索引的優(yōu)點(diǎn)和缺點(diǎn)。

索引可以提高查詢速度,但是會(huì)影響插入記錄的速度。因?yàn)椋蛴兴饕谋碇胁迦胗涗洉r(shí),數(shù)據(jù)庫系統(tǒng)會(huì)按照索引進(jìn)行排序,這樣就降低了插入記錄的速度,插入大量記錄時(shí)的速度影響會(huì)更加明顯。這種情況下,最好的辦法是先刪除表中的索引,然后插入數(shù)據(jù),插入完成后,再創(chuàng)建索引。

贊(0)
分享到: 更多 (0)
?
網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
日韩欧美国产综合在线| 爱情岛论坛亚洲首页入口章节| 免费看污污视频| 欧美另类videosbestsex日本| 99久久久精品视频| 无码少妇一区二区三区芒果| 91在线第一页| 六月婷婷在线视频| 自拍偷拍一区二区三区四区 | 成人在线免费高清视频| 韩日视频在线观看| 日韩爱爱小视频| 久久人妻无码一区二区| 亚洲一区二区蜜桃| 久久香蕉视频网站| www.99在线| 丁香六月激情网| 日韩av片专区| 97视频在线免费播放| 视频一区二区视频| 中文字幕第21页| 自拍日韩亚洲一区在线| 欧美激情国内自拍| 大肉大捧一进一出好爽动态图| 麻豆md0077饥渴少妇| 亚洲少妇第一页| www.浪潮av.com| 亚洲欧美日韩不卡| 亚洲色图久久久| 欧美日韩黄色一级片| 国产又粗又大又爽的视频| 999精品视频在线| 丰满少妇被猛烈进入高清播放| 免费观看亚洲视频| 6080国产精品| 一区二区三区入口| 92看片淫黄大片一级| 免费国产黄色网址| 国产精品国产三级国产专区51| 拔插拔插华人永久免费| 色综合天天色综合| 午夜欧美福利视频| 国产天堂在线播放| 国产又黄又猛视频| www黄色av| 久久久久免费精品| 日韩毛片在线免费看| 日本丰满少妇xxxx| av日韩一区二区三区| 无码人妻少妇伦在线电影| wwwwww欧美| 免费不卡av在线| www黄色日本| aaaaaa亚洲| 69久久久久久| 欧美精品 - 色网| 艳母动漫在线观看| 久久av综合网| 国产综合免费视频| 国产又猛又黄的视频| 57pao国产成永久免费视频| 色哟哟精品视频| www.成人黄色| 美女av免费观看| 日本在线xxx| 五月婷婷狠狠操| 免费黄频在线观看| 久久亚洲国产成人精品无码区| 99久久国产综合精品五月天喷水| 日韩欧美一区三区| 欧美大尺度做爰床戏| 天堂av手机在线| 粉嫩av一区二区三区天美传媒| 欧美在线一区视频| 杨幂毛片午夜性生毛片| 999热精品视频| 尤物av无码色av无码| 熟女少妇精品一区二区| 久久成年人网站| 人人妻人人添人人爽欧美一区| 亚洲视频在线a| 在线观看18视频网站| 国产一区二区网| 伊人成人222| 国产a级片网站| 男生操女生视频在线观看| 国产1区2区3区中文字幕| aⅴ在线免费观看| 91麻豆天美传媒在线| 亚洲视频在线a| 欧美人与动牲交xxxxbbbb| 久久久久久三级| 日本欧美视频在线观看| 五月婷婷之婷婷| 国产精品无码人妻一区二区在线| 嫩草影院国产精品| 国产伦精品一区二区三区四区视频_ | 丁香花在线影院观看在线播放| 日韩免费高清在线| 日韩精品一区二区免费| 午夜啪啪小视频| 久久无码高潮喷水| 国产欧美日韩小视频| 午夜视频在线观| www.色就是色| 干日本少妇首页| 老子影院午夜伦不卡大全| 91丨九色丨蝌蚪| 日韩一级片播放| 日韩精品久久一区二区| 欧美视频亚洲图片| 天天干天天干天天干天天干天天干| 免费人成自慰网站| 亚洲视频在线不卡| 亚洲va在线va天堂va偷拍| 亚洲一区二区蜜桃| 亚洲五月天综合| 日韩欧美在线播放视频| 男人操女人逼免费视频| 欧美深夜福利视频| 国精产品一区一区三区视频| 欧美日韩中文字幕在线播放| 中文字幕日韩综合| www午夜视频| 日韩av片专区| 激情成人在线观看| 99久久久无码国产精品性色戒| 最新免费av网址| 国产精欧美一区二区三区白种人| 久久这里只精品| 污污网站免费看| 老司机久久精品| 网站在线你懂的| www.色.com| 二级片在线观看| 米仓穗香在线观看| 91免费国产精品| av之家在线观看| 中文字幕无码不卡免费视频| 91色国产在线| 亚洲综合伊人久久| 色乱码一区二区三区熟女| 久久av高潮av| av免费播放网址| www.com操| 公共露出暴露狂另类av| 久久人人爽人人爽人人av| 波多野结衣之无限发射| 国产97色在线 | 日韩| 国产精品久久久久久久av福利| 好吊色视频988gao在线观看| 男的插女的下面视频| 人妻有码中文字幕| 亚洲天堂伊人网| 激情五月婷婷六月| 爱情岛论坛vip永久入口| 色偷偷中文字幕| 国产精品无码一区二区在线| 婷婷丁香激情网| 国产91沈先生在线播放| 99蜜桃臀久久久欧美精品网站| 红桃视频 国产| 美女日批免费视频| 日本网站在线看| 日韩视频第二页| 国产又粗又长又爽视频| 黑鬼大战白妞高潮喷白浆| 亚洲成人手机在线观看| 欧美色图另类小说| 99亚洲精品视频| 免费黄色一级网站| 农民人伦一区二区三区| 女人高潮一级片| 精品人妻一区二区三区四区在线| 亚洲色图欧美自拍| 精品欧美一区免费观看α√| 色网站在线视频| 亚洲中文字幕久久精品无码喷水| 蜜桃视频一区二区在线观看| 中文字幕 91| 免费观看成人在线视频| 国产 日韩 欧美在线| 欧美日韩亚洲国产成人| 无需播放器的av| 国产成人精品无码播放| 国产在线精品91| www.欧美黄色| 亚洲中文字幕无码一区二区三区| 一本色道久久亚洲综合精品蜜桃| 国产女大学生av| 97超碰国产精品| 中国老女人av| 日日噜噜噜夜夜爽爽| 日本超碰在线观看| 一本色道久久亚洲综合精品蜜桃| 欧美日韩在线中文| 成年人视频网站免费观看| 99视频在线免费播放| 日本www在线视频| 免费毛片网站在线观看|