Day 15 : PHP - 如何在phpMyAdmin手动建立资料表?char和varchar又该如何选择?

如标题,这篇想教大家如何在phpMyAdmin里「手动」建立资料表
还有charvarchar的差异在哪,又该如何做选择?

首先,先新增一个资料库
https://ithelp.ithome.com.tw/upload/images/20210929/20141088zQwiXW8q31.png

输入资料库的名字,这里我们取名为dataTest
https://ithelp.ithome.com.tw/upload/images/20210929/20141088W792tIo4V2.png

再到资料库里新增一个资料表,取名为createTest,点击执行
https://ithelp.ithome.com.tw/upload/images/20210929/20141088V8lOCuHOYo.png

并在名称类型长度/值内输入欲设定的栏位名称型态

这里想和大家聊聊charvarchar的差异
简单来说,char是「长度固定」的,varchar是「长度可变」的

举例来说,假设有两个栏位,一个类型是char(10),另一个是varchar(10)
现在在两个栏位内都输入hello,则char(10)所占的空间为10 Bytes,varchar(10)为6 Bytes

因为char的长度是固定的,但hello只占5 Bytes,所以他会在右边自动补上5个空格
但varchar是可变长度,且会多1个来记录长度的Bytes,所以它会占6 Bytes


看到这里,大家是不是觉得选varchar是最好的选择?其实不尽然喔!!
Char和varchar除了空间上的「性能」差异,还有「速度」上的差异

Varchar因为要计算实际用到的长度为何,所以会耗用CPU的运算时间
而char因为是固定长度,所以不用浪费时间判断栏位内容的长度,运作速度会比varchar「」很多

那到底该如何做选择呢?
如果是像输入地址email那种比较不固定的栏位,就可以使用varchar
但如果是像名字邮递区号……等那种固定长度的,就可以使用char

这里我们把name设为charemail设为varchar
https://ithelp.ithome.com.tw/upload/images/20210929/20141088dBhT5JnAPs.png

按下储存後,就会跳转到此画面
这里我们勾选id,把它设为主键,表示此栏位不能有重复的内容
https://ithelp.ithome.com.tw/upload/images/20210929/20141088xTK2SkTPD2.png

再点击上方的「新增」,在「」的地方输入资料,输入完按执行
https://ithelp.ithome.com.tw/upload/images/20210929/20141088h8on1Gnet8.png

它上方就会写出SQL的语法,并告诉你已新增一笔资料
https://ithelp.ithome.com.tw/upload/images/20210929/20141088nOd0CdRtrS.png

再点回「浏览」,就能看到刚刚输入的新资料罗!
https://ithelp.ithome.com.tw/upload/images/20210929/20141088VjcXI6sbQl.png

以上就是今天的介绍

先了解如何手动建立资料,再去用SQL的语法操作会比较好理解喔!


参考资料:
https://blog.xuite.net/tolarku/blog/29465482
https://kknews.cc/zh-tw/code/ey26lgy.html


<<:  Day14 Android - Logcat(日志)

>>:  DAY 17- 杂凑函数 HASH

#11 CSS3 Flexbox: RWD

How do RWD control columns displaying on devices o...

【左京淳的Spring学习笔记】基础案例

使用首页、输入画面、输出画面等三个基础画面,来熟悉画面之间跳转及资料移动的原理。 本练习不涉及业务...

我们的基因体时代-AI, Data和生物资讯 Day01- 超越摩尔定律的资料增长

这个月的规划贴在这边文章中我们的基因体时代-AI, Data和生物资讯 Overview,也会持续调...

[day29] - Angular Component to Web Component

後来发现 , 之前说明了 Vue . React Component 如何变成 Web Compon...

[Day14][笔记] React 事件处理

重点整理 事件命名上必须使用小驼峰,且为 String 事件中必须放一个回传 Function re...