![快速念咒:MySQL入门指南与进阶实战](https://wfqqreader-1252317822.image.myqcloud.com/cover/83/50244083/b_50244083.jpg)
2.1.4 理解表中的“列”与“行”
通过以上内容,想必大家都很清楚:所谓的检索整张表,其实就是检索一张表中含有的所有列。当我们对表中信息有了大致了解以后,就可以将注意力集中在某些特定列上。不过话说回来,究竟要怎样理解表中的“列”才最贴切呢?
一张表中往往含有多个列,它们代表一组数据的分类和归属,所以我们可以将“列”视为比表更小一级的存储单位。也正因如此,大家不妨这样理解:当我们从表中检索信息的时候,其实是在检索列中含有的信息。
不错!但是大家还要知道:由于各个列记录的信息种类不尽相同,所以它们对应的数据类型可能也会存在差异。例如,“name”“age”“join_date”这3列对应的数据类型就各不相同,这是因为它们预备接收的信息种类存在区别,分别为字符串、数值和时间。
其实当我们创建联络清单表时,就会对各个列指定数据类型,这将保证只有数据类型相符的信息才会被允许录入,否则就会录入失败,例如将人名“Jenny”录入“join_date”列就会报错。
事实上,字符串、数值和时间就是3种主要的数据类型,不过它们都还有各自的分支。关于数据类型,大家现阶段稍做了解就可以了。
好了,当同学们对表中的列有了更进一步的理解之后,接下来,我们将要一起讨论如何理解表中的行,举个例子来看。
我是Jenny(珍妮),今年28岁,现居爱丁堡。希望你活泼风趣,能给我带来数不尽的快乐!
![](https://epubservercos.yuewen.com/976C00/29564660007673706/epubprivate/OEBPS/Images/47633_36_2.jpg?sign=1739241440-yFVjmEtAUBpRMerM9yLXnhCxoPC8XZZO-0-5b442f50f6378dfcf25b926871d01827)
瞧,行就是各个列值的组合,它们会在横向体现一组数据的对应关系。例如该行信息就表示:这位女孩名叫Jenny,今年28岁,她于2020年5月17日鼓起勇气加入姻缘介绍所,现居地是爱丁堡。然而同学们都知道,列值的组合方式并非一成不变的,它们会在数量、种类和顺序上发生变化。
1.检索不同的列,将得到不同的横向输出。例如检索所有列,那么输出行中含有的信息就会非常全面:
![](https://epubservercos.yuewen.com/976C00/29564660007673706/epubprivate/OEBPS/Images/47633_36_3.jpg?sign=1739241440-zqGpGEBb4tHdIQRYXGn1g6PMfiiDRpna-0-a3d1e240010f980a4ad7d09782756cbe)
![](https://epubservercos.yuewen.com/976C00/29564660007673706/epubprivate/OEBPS/Images/47633_36_4.jpg?sign=1739241440-XGhIbbqvyyxmkKQux7eZwX3yvLM87xvn-0-d3cbd40a34463749af0dc10cb9e5ec12)
而如果只检索name列,那么整行内容就会只剩下姓名信息:
![](https://epubservercos.yuewen.com/976C00/29564660007673706/epubprivate/OEBPS/Images/47633_37_1.jpg?sign=1739241440-j2KGJcxzIIyf7kdr3Sg3vwNoJ2PJ0aU6-0-61dc9ace6de5a0cb6b35dd5859e7d872)
![](https://epubservercos.yuewen.com/976C00/29564660007673706/epubprivate/OEBPS/Images/47633_37_2.jpg?sign=1739241440-DuVL6AxNusAQAMCJUf1b2TLHzk2nu42i-0-66cf8c489d2315668037c925bf9ff334)
再比如,我们要同时检索name列和age列,那么一行中含有的内容又会发生变化:
![](https://epubservercos.yuewen.com/976C00/29564660007673706/epubprivate/OEBPS/Images/47633_37_3.jpg?sign=1739241440-ohSb34T82zyzC41nr4f4AOfB24datpus-0-188c9681e33e2f08a9ce173de918b3aa)
![](https://epubservercos.yuewen.com/976C00/29564660007673706/epubprivate/OEBPS/Images/47633_37_4.jpg?sign=1739241440-NBRAA6IaICcf20nFXzcq6XqyQPWgJOzx-0-2999dfa85ec8c780054ff88005f8bc21)
2.检索相同的列,但书写顺序不同,我们也将得到不同的横向输出。
例如,同样是检索name和age两列信息,“SELECT name,age”和“SELECT age,name”得到的输出行并不一样:
![](https://epubservercos.yuewen.com/976C00/29564660007673706/epubprivate/OEBPS/Images/47633_37_5.jpg?sign=1739241440-cFZnHp4ZNLlwdXA49xJP161fdUSKsctT-0-81e18850b6f9bf5983c7dcf837f46ba9)
![](https://epubservercos.yuewen.com/976C00/29564660007673706/epubprivate/OEBPS/Images/47633_37_6.jpg?sign=1739241440-cr9Yw4kAQ7TOWEimIIdrUphJbFdiDIk5-0-e89731d4743d82dfe954767d781d4053)
![](https://epubservercos.yuewen.com/976C00/29564660007673706/epubprivate/OEBPS/Images/47633_37_7.jpg?sign=1739241440-N9mFLjxoRfHdJ9oB6Si396Dqp1dk18fj-0-ce38fdd92a224d75e87ed93c50026f4a)
![](https://epubservercos.yuewen.com/976C00/29564660007673706/epubprivate/OEBPS/Images/47633_37_8.jpg?sign=1739241440-uFUxj7vTUoeNa6dof7MNA978KKK6Dxvj-0-89fafa5542e1ea80ac5e85150ca440e9)
正因为行是列值的组合,所以行是表中数据的动态输出形式。输出行之所以是动态的,是因为它们会随着检索语句的变化而变化。也就是说,通过执行一条检索语句,表中的信息会以行的形式返回并呈现。再结合此前对列的描述,我们就可以做出如下概括。
列是比表更小一级的存储单位,它在纵向体现一组数据的分类和归属;而行则是各个列值的组合,它们也是表中数据的动态输出形式。虽然输出行会随着检索语句的变化而变化,但它们始终都在横向体现一组数据的对应关系。除此以外,大家甚至可以这样理解:虽然我们在检索语句中输入的是列(名),但实际得到(输出)的却是行。