From ac8b227305b3b58ab21782c83c56d2fb30236b3e Mon Sep 17 00:00:00 2001 From: theluyuan <1162963624@qq.com> Date: Sat, 8 May 2021 13:50:13 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=BB=E9=94=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/mysql/primaryKey.md | 56 ++++++++++++++++++ ...ef90e06edb0489b704a481ae9cb2588251df16.png | Bin 0 -> 2806 bytes ...462f32f6b599bb651b0a635313d9ed789f4ce9.png | Bin 0 -> 6028 bytes ...6c807da14e67a928ebd858ec3f0164e8266bce.png | Bin 0 -> 3995 bytes 4 files changed, 56 insertions(+) create mode 100644 images/4fbfe8a92c8540c4c01c4c9c26ef90e06edb0489b704a481ae9cb2588251df16.png create mode 100644 images/843b7985265bdaaba9b61d061a462f32f6b599bb651b0a635313d9ed789f4ce9.png create mode 100644 images/f69e4725abae353880556f34846c807da14e67a928ebd858ec3f0164e8266bce.png diff --git a/docs/mysql/primaryKey.md b/docs/mysql/primaryKey.md index faecae5..e4aed2e 100644 --- a/docs/mysql/primaryKey.md +++ b/docs/mysql/primaryKey.md @@ -15,3 +15,59 @@ ```sql insert into class(name,sex,age) value("李四","男",21); ``` + +![图 1](../../images/843b7985265bdaaba9b61d061a462f32f6b599bb651b0a635313d9ed789f4ce9.png) + +现在添加进去了,但是如果我想让10岁的李四的年龄改成11,那么我们应该怎么改呢?现在只有他的年龄是10,我们可以直接使用年龄来修改 + +```sql +updaet class set age = 11 where age = 10; +``` + +但是如果又来了一个同学年龄又是10,是不是更难确定到一行的数据了。 + +再极端一点 名字性别年龄都是一样的,那么是不是就无法区分这两行数据了。 + +所以有个很重要的约束,就是任意两条记录不能重复。不能重复不是指两条记录不完全相同,而是指能够通过某个字段唯一区分出不同的记录,这个字段被称为主键。 + +例如,假设我们把name字段作为主键,那么通过名字小明或小红就能唯一确定一条记录。但是,这么设定,就没法存储同名的同学了,因为插入相同主键的两条记录是不被允许的。 + +对主键的要求,最关键的一点是:记录一旦插入到表中,主键最好不要再修改,因为主键是用来唯一定位记录的,修改了主键,会造成一系列的影响。 + +所以,选取主键的一个基本原则是:不使用任何业务相关的字段作为主键。 + +因此,身份证号、手机号、邮箱地址这些看上去可以唯一的字段,均不可用作主键。 + +作为主键最好是完全业务无关的字段,我们一般把这个字段命名为id。 + +而且主键一般都是自增整数类型:数据库会在插入数据时自动为每一条记录分配一个自增整数,这样我们就完全不用担心主键重复,也不用自己预先生成主键 + +所以下面将看一下如何定一一个带有主键的表,和什么叫自增。 + +## 定义一个含有主键的表 + +前面我们创建的class表并没有主键,那么我们如何创建一个带有主键的表呢? + +比如要创建一个名字叫 `articles` 的表,表的结构像下面一样 + +| id | name | author | +|----|-----|-----| + +- id 作为主键 +- name 放文章的名字 +- author 放作者的名字 + +```sql +create table articles( + id int auto_increment, + name varchar(100), + author varchar(10), + primary key(id) +); +``` + +![图 2](../../images/f69e4725abae353880556f34846c807da14e67a928ebd858ec3f0164e8266bce.png) + +创建成功了,查看一下 + +![图 3](../../images/4fbfe8a92c8540c4c01c4c9c26ef90e06edb0489b704a481ae9cb2588251df16.png) diff --git a/images/4fbfe8a92c8540c4c01c4c9c26ef90e06edb0489b704a481ae9cb2588251df16.png b/images/4fbfe8a92c8540c4c01c4c9c26ef90e06edb0489b704a481ae9cb2588251df16.png new file mode 100644 index 0000000000000000000000000000000000000000..52b188a61024596269cea24cfba3f482c8277c6c GIT binary patch literal 2806 zcmbVOc{mj879TOTY-3GANV4}yA$yUXF-&92lCgf)EM=L9V#=0fY%wy1Y*Uu(ChMTF zO~_{m*+xQH8a|r1)A#kD>a zy~#HiHPv;5_)s9O?ue@DHu=xT4!1;wg$43Z2bzUSIp4pHcN}e7I<<9#-iwNfK_H?K z2)vWh=xEOT(a~tkkD2+R&J<;rH%RKYP@N)z!>NGK21+Z(<38un z#_0hW1*ub@R;vGvyKVM`wt*O2#Vxyi2P$491_Pe0-3(i=y3h-M8SndLd%{oeJFYWcH0y!9#+*R7Ut z_569#DR0YeKT9ng!iyXsI#&f~UcFGFm|T z+-o`i0M(_dYYB#XL@n(n_hj@;94J0>;V-<-Hp`3~_C=fuR=haU=2@8)rdmSAU{r#$ z#+L<}4LxtSG07B{WU+Lwrs~XgNAPctAnChI{vhZe+{=)ZXAL&r?&Axa=wSj!p z@Lr&fs^_Z-vR;$ohr?gG&!j>o1KDh1Eq&*emlkD*8L52&y|~C8jRd zLJR8otFtO6Tpr6b3&@^{6-FnEXv2*})=?VMTb9$VB-a!%<*U|d0CSd6c}5w9om%c# z>VvEYd}lpAG8qf2yX9sD_jIu+t%9mlf=h}CuhEMw^f5=?~KPKq}d7**4efBN^~i{?bKNT%!Ee`ULAkTSJb{1qaE z-tl$wuXB_Q{BcO_KxH(SUCA{=b5!LIl_kUBTq47+na2BoTf?a7FJYv8)7$}e3xlDl z4~K;@@ERDirJW;@hBh`PgLk|ZTyHor1kdsWGO!Un!11mzqHK7Hx!C3mtwlv9zD0JV z{8^=-(Mm{}&&PcO$$Va%Z=T$hg`9eQx%?ENoFM6<#m^GaO$3yqIx*;8#<334?4F!{tr!2bv0%|lP z1?JV5TRIn@?N(ttrDfj{#(U)rSK*XcyU^C9_fjWhzusZRl$r@gN`$OLFrD=Ph~@a} z>@i%_{PoHJSw`YI6(oNkt#!SUx7LOD+D-kd>I_ z&9NuG5owLyXTmo-po~6=H7`8C7C;v?=zL`cGJ3hb;wY$@$P8}n^=+pbG`x!}(0;^e zR*_BfY4`7*%+BAl2uJRXNLHz&@s~I(U~nF~#fF!2%e~)TvF>K(J1u@dW(y}uLT=i_ z4a*uz-uLikbwAVsg{&|NiA_gBL$(%V*4zZmQmQ+V6C)+Yse=@6<~1*!8YalzS)ZFvA;Ib$VAbLFvOhVbQD7 zsCPw6sjUm(difXc86eD-Q+mXA2u6UX8&ozES?pfJQ)PN^=IIGQeH>mTs5=fq*<_Mf zk>ky0O4?7jH+VnDE;~czZBi4T!K(?=u1PCo(*}!?CrGw_0!!NRi)XeIeUY`JHynE} z3$OB6J(7XP7OpEbS0{cZFY&3$+w=(&V{+&HzRH_U4CTT+NyZu(u(k=zz}RDwlCk}k zgq1)6n%9I>wkU_-41&tO$zXY{$M`9bwAH=?3f4$V``NgUIWkqU;s4Qdzt|9ZU1)

pE}56bN{zbJ{PJAL;K8{?GV*Dp7j=Czh1 z*CiroVh-h16{(5N*QD=*(e_i|VGBsvh_w(3cNobOS}wxU!f!6}~LxYO7)lJ4IkB<-CtonWn|IPRv42uZ!jedQHl&*c+j}r$~wG!lP zbhCD7B$tDI|2V9-#7OJvdl{yu%Wxt;rFn<#lu$SoFR%V zLFZ;l7OnnO2 zRj;u~;9@0zZpvCr%&_Kl`V!Yr zDz_-#j58};%l}66pX&U7h4erD`;zl{DgcZ*zp_r1o9uoHudmdeKaM#Gu)Sa!p(uR! zDcnqV@=?CN)LqDzC{AvBPu?ZaNc%8z_uZMqP!f8 zyJwVsp5^Q#Z1fA5Ga9(fS%$qOzkUO8z5jW7090^+`Klrd%chp4c&o#tlbn7P!Peil zYRche$TB?b@~OIFchbPxYRqwFAOY{v_AJ<-S$sdTrQJy>$K{w}g+K1t@$S;EaJ>P4 z^#Rv2d*h(brb#YFeRdOT(<&Vrmr7;r3~hyKDD=aQu5VS+4iEQsc6J6`epsLAx)DwL z(^>(%@@E^pV$F^{FqX~#@RkUMG7K-ne`cIXa&ScaBn%9slo9NIs^rNS)+iWWLP zj_Fj1rXJMWJtwYp=#Etmg<{}c%<+apiLQxKKH0+}G^7r;o&V__J}awZ#%%d61W&Z` R7=2a+m>60byu9Wb_YXq-M!*07 literal 0 HcmV?d00001 diff --git a/images/843b7985265bdaaba9b61d061a462f32f6b599bb651b0a635313d9ed789f4ce9.png b/images/843b7985265bdaaba9b61d061a462f32f6b599bb651b0a635313d9ed789f4ce9.png new file mode 100644 index 0000000000000000000000000000000000000000..ee4da220b018c914c00c91822842fdf245553c20 GIT binary patch literal 6028 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 literal 0 HcmV?d00001 diff --git a/images/f69e4725abae353880556f34846c807da14e67a928ebd858ec3f0164e8266bce.png b/images/f69e4725abae353880556f34846c807da14e67a928ebd858ec3f0164e8266bce.png new file mode 100644 index 0000000000000000000000000000000000000000..d1ad55e7f45c3a72d64dab79e94bda1dc745aa49 GIT binary patch literal 3995 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