久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

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

mysql中主鍵是索引嗎

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

mysql中主鍵是索引嗎

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

MySQL 主鍵

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

約束是指對(duì)表中數(shù)據(jù)的一種約束,能夠幫助數(shù)據(jù)庫(kù)管理員更好地管理數(shù)據(jù)庫(kù),并且能夠確保數(shù)據(jù)庫(kù)中數(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 語(yǔ)句中,通過(guò) PRIMARY KEY 關(guān)鍵字來(lái)指定主鍵。

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

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

例 1

在 test_db 數(shù)據(jù)庫(kù)中創(chuàng)建 tb_emp3 數(shù)據(jù)表,其主鍵為 id,SQL 語(yǔ)句和運(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)

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

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

例 2

在 test_db 數(shù)據(jù)庫(kù)中創(chuàng)建 tb_emp4 數(shù)據(jù)表,其主鍵為 id,SQL 語(yǔ)句和運(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é)生就只能選擇一門(mén)課程。如果用課程編號(hào)做主鍵,那么一門(mén)課程只能有一個(gè)學(xué)生來(lái)選。顯然,這兩種情況都是不符合實(shí)際情況的。

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

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

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

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

例 3

創(chuàng)建數(shù)據(jù)表 tb_emp5,假設(shè)表中沒(méi)有主鍵 id,為了唯一確定一個(gè)員工,可以把 name、deptId 聯(lián)合起來(lái)作為主鍵,SQL 語(yǔ)句和運(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í)添加主鍵約束的語(yǔ)法格式如下:

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

查看 tb_emp2 數(shù)據(jù)表的表結(jié)構(gòu),SQL 語(yǔ)句和運(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ǔ)句和運(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ù)的,并且要保證是非空的。否則,無(wú)法設(shè)置主鍵約束。

MySQL 索引(Index)

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

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

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

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

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

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

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

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

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

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

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

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

缺點(diǎn)

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

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

  • 索引需要占磁盤(pán)空間,除了數(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)。

索引可以提高查詢(xún)速度,但是會(huì)影響插入記錄的速度。因?yàn)?,向有索引的表中插入記錄時(shí),數(shù)據(jù)庫(kù)系統(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)
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
免费亚洲一区| 久久国产精品99国产| 久久人人97超碰国产公开结果| 综合视频一区| 亚洲一区二区小说| 亚洲深深色噜噜狠狠爱网站| 99在线精品免费视频九九视| 免费人成在线不卡| 国产伦精品一区二区三区千人斩| 伊人久久高清| 伊人精品一区| 国产日韩专区| 日韩国产在线观看一区| 欧美日韩亚洲一区三区| 国产精品久久久久毛片大屁完整版| 欧美永久精品| 久久久免费人体| 国产伦理久久久久久妇女| 国产亚洲一卡2卡3卡4卡新区| 国产精品一区免费在线| 久久伊人国产| 夜夜嗨一区二区| 国产精品久久久久久久久久妞妞 | 日本aⅴ亚洲精品中文乱码 | 亚洲精品美女91| 日韩一区精品视频| 国产欧美一区二区色老头| 久久久久久久欧美精品| 日韩高清电影免费| 国产精品jk白丝蜜臀av小说| 久久精品亚洲| 一区免费在线| 97久久超碰| 久久这里只有精品一区二区| 97人人精品| 蜜桃久久精品一区二区| 国产九一精品| 欧美jjzz| 久久尤物视频| 亚洲精品护士| 国产美女高潮在线| 蜜桃久久精品一区二区| 精品一区二区三区亚洲| 蜜桃av一区二区| 成人精品天堂一区二区三区| 欧美亚洲免费| 蜜桃久久久久久久| 九色porny丨国产首页在线| 青青伊人久久| 久久亚洲国产| 精品国产成人| 久久国产日韩欧美精品| 午夜国产欧美理论在线播放| 久久精品三级| 国产黄色精品| 国产欧美啪啪| 日本免费在线视频不卡一不卡二| 欧美 日韩 国产精品免费观看| 成人一二三区| 美日韩一区二区三区| 日韩精品水蜜桃| 国产麻豆久久| 国产精品人人爽人人做我的可爱| 伊人网在线播放| 国产欧美在线观看免费| 天堂精品久久久久| 亚洲精品国模| 日韩一区二区三免费高清在线观看| 亚洲自啪免费| 鲁大师影院一区二区三区| 男人的天堂久久精品| 在线看片日韩| 日韩高清成人在线| 国产欧美在线| 国产精品宾馆| 精品国内亚洲2022精品成人| 久久精品国产亚洲一区二区三区| 欧美精品99| 国产成人调教视频在线观看| 国产精品久久777777毛茸茸| 91麻豆精品| 久久精品亚洲| 婷婷综合亚洲| 老牛国产精品一区的观看方式| 夜夜精品视频| 亚洲精品极品| 国产精品久久| 日韩欧美二区| 午夜精品免费| 久久国产乱子精品免费女| 国产精品久久久一区二区| 亚洲国产欧美日本视频| 黄色成人在线网址| 国产精品永久| 99久久婷婷这里只有精品| 免费视频国产一区| 亚洲一级大片| 福利视频一区| 天堂av一区| 日本少妇一区| 日韩高清成人在线| 成人日韩av| 婷婷精品在线| 私拍精品福利视频在线一区| 日韩精品三区四区| 99成人超碰| 久久99影视| 亚洲色图综合| av资源亚洲| 国产毛片一区二区三区| 中文字幕在线免费观看视频| 亚洲日本在线观看视频| 欧美日韩免费观看视频| 欧美日韩中出| 国产精品日韩| 蜜桃tv一区二区三区| 日韩成人精品一区| 青青草伊人久久| 久久夜色精品| 在线看片不卡| 91精品推荐| 日韩免费久久| 精品国产鲁一鲁****| 国产欧美日韩| 国产精品午夜av| 伊人久久亚洲热| 136国产福利精品导航网址| 精品国产aⅴ| 国产精品久久久久久久久久久久久久久 | 美女国产精品久久久| 国产亚洲毛片在线| 国产精选在线| 日韩伦理福利| 日本一区二区三区中文字幕| 先锋影音国产一区| 老鸭窝毛片一区二区三区| 一区在线免费观看| 蜜臀av性久久久久蜜臀aⅴ流畅 | 亚洲精品高潮| 亚洲精品裸体| 亚洲精品福利| 日本视频一区二区| 99精品视频精品精品视频| 久久一级电影| 性色一区二区| 鲁大师成人一区二区三区 | 91成人在线网站| 美女精品久久| 日韩欧美三级| 国产精品7m凸凹视频分类| 日韩一级不卡| 久久激五月天综合精品| 日韩一区电影| 夜久久久久久| 久久大逼视频| 婷婷综合社区| 国产欧美激情| 成人美女视频| 丝袜脚交一区二区| 国产色噜噜噜91在线精品| a国产在线视频| 蜜臀国产一区二区三区在线播放| 日韩动漫一区| 日韩福利一区| 日本视频一区二区| 1024精品一区二区三区| 日韩福利在线观看| 尤物tv在线精品| 日韩av不卡在线观看| 日韩精品dvd| 在线精品一区| 精品捆绑调教一区二区三区| 日韩一区二区三区精品| 亚洲成人精品| 国产精品一站二站| 亚洲三级观看| 亚洲精华国产欧美| 成人在线黄色| 天堂va欧美ⅴa亚洲va一国产| 蜜桃精品在线| 久久亚州av| 日本一区二区三区中文字幕| 九九在线精品| 国产一区二区三区探花| 一区二区三区四区日本视频| 亚洲综合二区| 99久久久久国产精品| 精品美女视频| 欧美日韩午夜| 亚洲精品进入| 亚洲网址在线观看| 亚洲在线观看| 五月天久久777| 欧美日韩一二| 亚洲女同中文字幕| 国产精品a级| 在线精品国产亚洲| 日韩影院在线观看| 999视频精品| 欧美成人精品三级网站|