MySQL數(shù)據(jù)庫(kù)(二)

#######################################

葉集ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)建站的ssl證書(shū)銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書(shū)合作)期待與您的合作!

MySQL-索引類型

  索引類似于“書(shū)的目錄”
  索引的優(yōu)點(diǎn)   加快查詢的速度
  索引的缺點(diǎn)   減慢寫(xiě)的速度(占用物理存儲(chǔ)空間)
  (1)普通索引
  a.創(chuàng)建表時(shí)直接設(shè)置普通索引
  create table stu(
  >age int,
  >name char(8),
  >index(age));   給age字段創(chuàng)建普通索引,索引名為age
  show index from stu   查看索引
  desc stu     /age 字段的key 為MUL

  b.創(chuàng)建表之后給字段設(shè)置普通索引
  create index name(索引名) on stu(age(字段名));  

  c.刪除普通索引
  drop index name on stu;

  (2)主鍵
  主鍵特點(diǎn):字段內(nèi)不能有重復(fù)值,而且不能賦空值 如果表里已經(jīng)有主鍵,不能在創(chuàng)建主鍵。

  a.創(chuàng)建表時(shí)直接設(shè)置主鍵
  create table stu(
  >age int,
  >name char(8),
  >primary key(name));   給name字段創(chuàng)建主鍵
  desc stu;     /name字段的key為PRI

  b.創(chuàng)建表之后給字段創(chuàng)建主鍵
  alter table stu add primary key(name);

  c.刪除主鍵
  alter table stu drop primaru key;  /刪除主鍵后,值可以重復(fù),但不能賦空值
  alter table stu modify name char(8);   /如果想賦控制,繼續(xù)修改字段

  d.復(fù)合主鍵:多個(gè)字段一起做主鍵,字段的值不允許同時(shí)重復(fù)
  create table stu(
  >port int,
  >cip char(15),
  >status enum("up","down") default "up"
  >primary key(port,cip));     同時(shí)設(shè)置兩個(gè)主鍵,不能一個(gè)一個(gè)設(shè)置   
  desc stu;     
 insert into stu(port,cip) values(23,"1.1.1.1");
 ok
 insert into stu(port,cip) values(24,"1.1.1.1");
 ok
 insert into stu(port,cip) values(24,"1.1.1.2");
 ok
 insert into stu(port,cip) values(24,"1.1.1.1");   復(fù)合主鍵時(shí),一個(gè)字段內(nèi)的值可以重復(fù),但不能多字段內(nèi)的值同時(shí)重復(fù)
 error

  e.主鍵與 auto_increment(自加1)連用   一般用于id序號(hào)  使用auto_increment 前提是必須要是主鍵且是數(shù)值類型
   create table stu(
  >id int(2) zerofill primary key auto_increment,   /int()里面表示顯示寬度,不能夠限制給字段賦值的大小,大小由類型決定。
                                zerofill  用0 補(bǔ)位
  >port int);
  insert into stu(port) values(24);
  desc stu;   
  select * from stu;
  +++++++++++
  id   port
    01     24
  +++++++++++

  (3)唯一索引 unique
  特點(diǎn):字段可以賦空值,但不能出現(xiàn)重復(fù)
  a.創(chuàng)建表時(shí)直接設(shè)置普通索引
  create table stu(
  >age int,
  >name char(8),
  >unique index(name));   給name字段創(chuàng)建唯一索引
  desc stu;     /name 字段的key 為 UNI

  b.創(chuàng)建表之后給字段設(shè)置唯一索引
  create unique index name(索引名) on stu(name(字段名));  

  c.刪除唯一索引
  drop index name on stu;

(4)外鍵
作用:限制給字段賦值。值必須在指定字段值的范圍里選擇
存儲(chǔ)引擎必須為 innodb
a.創(chuàng)建表時(shí)直接設(shè)置主鍵

  指定參考表
  create table t1(
  >age int,
  >primary key(age)   參考表的參考字段要是索引的一種
  >)engine=innodb;   /設(shè)置表t1存儲(chǔ)引擎為engine=innodb

創(chuàng)建表t2
 create table t1(
  >age int,
  >name char(8),
  >foerign key(age) references t1(age)  創(chuàng)建外鍵
  >on update cascade   同步更新
  >on delete cascade   同步刪除
  >)engine=innodb;   /設(shè)置表t1存儲(chǔ)引擎為engine=innodb     
創(chuàng)建成功后 t2表的age字段的值必須在t1age字段的范圍內(nèi),t1 age字段的值更新或者刪除 t2表相應(yīng)發(fā)生變化(更新或刪除)
 b.創(chuàng)建表之后給字段創(chuàng)建主鍵
  alter table stu add foreign key(age) references t1(age) on update cascade on delete cascade;

  c.刪除主鍵
  show create table t2;  /查看建表過(guò)程
  CONSTRAINT `t5_ibfk_1` FOREIGN KEY  找出t5_ibfk_1
  alter table stu drop froeign key t5_ibfk_1;  /刪除外鍵。刪除后t2表不再受約束。

#############################################

Mysql存儲(chǔ)引擎

show engines;  /查看存儲(chǔ)引擎  默認(rèn)為innodb

mysql服務(wù)體系結(jié)構(gòu):(8個(gè)功能模塊)
連接池
sql接口  
分析器
優(yōu)化器
查詢緩存
存儲(chǔ)引擎
文件系統(tǒng)
管理工具

存儲(chǔ)引擎介紹:mysql數(shù)據(jù)庫(kù)服務(wù)軟件自帶的程序。
                   不同的存儲(chǔ)引擎有不同的功能和數(shù)據(jù)存儲(chǔ)方式
                   是表的處理器

    設(shè)置表的存儲(chǔ)引擎:
create  table  表名(。。。。)engine=innodb;

修改表的存儲(chǔ)引擎
alter  table  表名  engine=存儲(chǔ)引擎名;

修改表的默認(rèn)存儲(chǔ)引擎
/etc/my.cnf
default-storage-engine=myisam    

myisam特點(diǎn):
表.MYI   索引信息
表.MYD  數(shù)據(jù)
表.frm   表結(jié)構(gòu)
支持表級(jí)鎖 (鎖一張表)
不支持事務(wù)  事務(wù)回滾

innodb特點(diǎn):
表.frm   表結(jié)構(gòu)
表.ibd   索引信息+數(shù)據(jù)
支持行級(jí)鎖 (只給當(dāng)前被訪問(wèn)的行加鎖) 
支持事務(wù)  事務(wù)回滾

鎖的作用:解決并發(fā)訪問(wèn)沖突問(wèn)題。

鎖類型 :讀鎖       和   寫(xiě)鎖
       select       update delete insert

事務(wù): 一次數(shù)據(jù)訪問(wèn)從開(kāi)始到結(jié)束的過(guò)程 稱為事務(wù)
事務(wù)回滾:  一次數(shù)據(jù)訪問(wèn) 任意一步執(zhí)行失敗,恢復(fù)所有操作。
事務(wù)的特性:  一致性  原子性  隔離性

事務(wù)日志文件:記錄對(duì)innodb存儲(chǔ)引擎的表執(zhí)行過(guò)的操作。

工作如何如何決定表使用的存儲(chǔ)引擎:
接收寫(xiě)操作多的表適合使用innodb存儲(chǔ)引擎。
接收讀操作多的表適合使用myisam存儲(chǔ)引擎

當(dāng)前標(biāo)題:MySQL數(shù)據(jù)庫(kù)(二)
當(dāng)前路徑:http://muchs.cn/article12/pdgsdc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)網(wǎng)站維護(hù)、網(wǎng)站排名ChatGPT、用戶體驗(yàn)軟件開(kāi)發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)