數(shù)據(jù)庫第四天

主鍵:primary key,主要的鍵,一張表只能有一個字段可以使用對應(yīng)的鍵,用來唯一的約束該字段里面的數(shù)據(jù),不能重復(fù),這種稱之為主鍵

增加主鍵:

方案一:在創(chuàng)建表的時候,直接在字段之后,跟primary key關(guān)鍵字(主鍵本身不允許為空)

方案二:在創(chuàng)建表的時候,在所有的字段之后,使用primary key(主鍵字段列表)來創(chuàng)建主鍵,如果有多個字段作為主鍵,可以是復(fù)合主鍵

方案三:當(dāng)表已經(jīng)創(chuàng)建好之后,額外追加主鍵,可以通過修改表字段屬性,也可以直接追加

alter table 表名 add primary key(字段列表);

主鍵約束:主鍵對應(yīng)的字段中的數(shù)據(jù)不允許重復(fù),一旦重復(fù),數(shù)據(jù)操作(增和改)失敗

更新主鍵 & 刪除主鍵

alter table 表名 drop primary key;

主鍵分類:業(yè)務(wù)主鍵、邏輯主鍵

create table my_student(

id int primary key auto_increment comment '邏輯主鍵:自增長',

number char(10) not null comment '學(xué)號',

name varchar(10) not null

)

自動增長:auto_increment,當(dāng)對應(yīng)的字段,不給值,或給默認(rèn)值、或給NULL值,會自動的被系統(tǒng)觸發(fā),系統(tǒng)會從當(dāng)前字段中已有的最大值基礎(chǔ)上,再進(jìn)行+1操作,得到一個新的不同的數(shù)據(jù)

特點(diǎn):

任何一個字段要做自增長,前提必須本身就是一個索引

自增長字段必須是數(shù)字,而且是整型

一張表最多只能有一個自增長

修改自增長:alter table 表名 auto_increment=值;

查看自增長對應(yīng)的變量:show variables like 'auto_increment%';

刪除自增長:alter table 表名 modify 字段 類型;

唯一鍵(unique key)

默認(rèn)允許自動為空,而且可以多個為空

增加唯一鍵

方案一:在創(chuàng)建表的時候,字段之后直接跟unique / unique key

方案二:在所有的字段之后增加unique key(字段列表);

方案三:在創(chuàng)建表之后增加唯一鍵

select 選項(xiàng):select對查出來的結(jié)果的處理方式

all:默認(rèn)的,保留所有的結(jié)果

distinct:去重,查出來的結(jié)果,將重復(fù)給去除

字段別名

字段名 [as] 別名;

數(shù)據(jù)源:單表數(shù)據(jù)源、多表數(shù)據(jù)源、查詢語句

單表數(shù)據(jù)源:select * from 表名;

多表數(shù)據(jù)源:select * from 表名1,表名2, ...;

子查詢:select * from (select 語句) as 別名;

where子句:返回結(jié)果0或1,0代表false,1代表true

判斷條件

比較運(yùn)算符:>、<、>=、<=、!=、<>、=、like、between、and、in/not in

邏輯運(yùn)算符:&&(and)、||(or)、!(not)

group by子句

基本語法:group by 字段名 [asc|desc];

統(tǒng)計函數(shù):

count():統(tǒng)計分組后的記錄數(shù),每一組有多少記錄

max():統(tǒng)計每組中最大的值

min():統(tǒng)計最小值

avg():統(tǒng)計平均值

sum():統(tǒng)計和

limit子句

方案一:只用來限制長度,即數(shù)據(jù)量:limit 數(shù)據(jù)量;

方案二:限制起始位置,限制數(shù)量:limit 起始位置,長度;

limit offset,length;

length:每頁顯示的數(shù)據(jù)量,基本不變

offset = (頁碼-1)*每頁顯示量

連接查詢(join)分類:內(nèi)連接、外連接、自然連接、交叉連接

使用方式:左表 join 右表

交叉連接(cross join)

基本語法:左表 cross join 右表; -- 等價于:from 左表,右表;

內(nèi)連接([inner] join)

基本語法:左表 [inner] join 右表 on 左表.字段=右表.字段;

on表示連接條件

增加外鍵

創(chuàng)建表的時候增加外鍵:在所有的表字段之后,使用foreign key(外鍵字段) references 外部表(主鍵字段)

在新增表之后增加外鍵:修改表結(jié)構(gòu),使用alter table 表名 add [constraint 外鍵名字] foreign key(外鍵字段) references 父表(主鍵字段);

修改外鍵&刪除外鍵

alter table 表名 drop foreign key 外鍵名;

外鍵條件

外鍵要存在,首先必須保證表的存儲引擎是innodb

列類型必須與父表的主鍵類型一致

一張表中的外鍵名字不能重復(fù)

增加外鍵的字段數(shù)據(jù)已經(jīng)存在,必須保證數(shù)據(jù)與父表主鍵要求對應(yīng)

外鍵約束

有三種約束模式

district:嚴(yán)格模式(默認(rèn)的)

cascade:級聯(lián)模式

set null:置空模式

語法:foreign key(外鍵字段) references 父表(主鍵字段) on delete 模式 on update 模式;

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • //計算日期時間差 timestampdiff(顯示形式,第一個日期,第二個日期); //第一個參數(shù)的形式 1. ...
    紅顏心雨閱讀 330評論 0 0
  • ORA-00001: 違反唯一約束條件 (.) 錯誤說明:當(dāng)在唯一索引所對應(yīng)的列上鍵入重復(fù)值時,會觸發(fā)此異常。 O...
    我想起個好名字閱讀 5,983評論 0 9
  • 手動不易,轉(zhuǎn)發(fā)請注明出處 --Trance 數(shù)據(jù)庫系統(tǒng)命令: (1).查看存儲過程狀態(tài):show pro...
    Trance_b54c閱讀 1,830評論 0 8
  • 3. 從認(rèn)識到會用(作業(yè)) 1)翻譯下面的句子: 對平攤賬單來說,微信支付是個不可多得的好工具。 (參考翻譯:Wh...
    江貼心閱讀 239評論 0 0
  • XXXphp給了開發(fā)者極大的靈活性,但是這也為安全問題帶來了潛在的隱患,近期需要總結(jié)一下以往的問題,在這里借翻譯一...
    柏樹_Jeff閱讀 372評論 0 2

友情鏈接更多精彩內(nèi)容