mysql中怎么创建数据表格 mysql数据表创建方法详解

你好,这个文档比较全面,但是看了半天,感觉就像一本教科书。
我们来谈谈实际的事情吧?上周,一位客户问我为什么他输入的指令语法正确,但数据无法保存。
后来他发现自己忘记添加主键了。
这个问题挺搞笑的,但是确实耽误了事情。

看看创建表,只有几个基本点,不要搞得太复杂:
1 .字段和类型必须有效。
您需要知道存储什么数据以及以什么类型存储。
例如,您可以使用VARCHAR来保存手机号码。
您可能需要 CHAR 来保存 ID 号。
长度必须调整正确。
一半就别省了。
2 02 3 年,我在上海的一个购物中心做一个项目。
一位同事将用户的年龄保存为 INT。
结果有人霸占了1 8 8 岁,直接炸毁了数据库。
这是一个深刻的教训吗?
2 主键不能缺失
这是表ID。
如果没有这个,系统将不知道如何定位数据。
和AUTO_INCRMENT主键一样,基本上很容易使用,但是你必须保证它是足够的。
不要几年后突然发现数据量不足,然后不得不改变时间表,这是非常烦人的。
我在北京的一家公司做过一次。
表大了几十倍,主键仍然是INT。
结果失败了。
只好半夜跑到机房改成BIGINT。

3 索引很重要
如果想快速查数据,就给字段添加索引。
但不要盲目添加。
指标是一把双刃剑。
添加太多索引会减慢写入速度并使表变大。
我自己遇到的陷阱是,我在一个经常更新的表中添加了太多索引。
结果写数据就停止了,客户还骂我。
后来我删除了一些不需要的东西并恢复了。

4 外键视情况而定。
是否要链接表格取决于您的需要。
关联数据一致性强,但查询可能会比较慢。
例如,订单表链接到用户表。
如果你想检查顺序,你必须连接表。
这就需要考虑性能。
曾在深圳从事电子商务系统工作。
我最初向所有表添加了外键,但查询结果非常慢。
我必须更改一些表格才能使其正确。

5 选择正确的存储引擎
InnoDB 是多功能的并且支持事务。
现在主要使用。
MyISAM速度快,但没有事务,偶尔可以使用。
内存速度很快,但是一旦断电就会丢失。
不要盲目使用。
2 02 3 年,我在广州做一个临时表,所以我选择了MEMORY,因为当时数据就在那里,但我忘记了。
当我第二天重新启动系统时,一切都消失了。
真是惨不忍睹。

一般来说,创建表单并不是填写模板,而是需要了解业务。
如果你不知道如何选择类型以及是否建立索引,首先要考虑数据将被用在哪里以及其他人将如何检查它。
不要为所有这些事情而烦恼,只要让它发挥作用即可,不要参与其中。

如果您对某个特定场景有疑问,比如特定的表结构是如何设计的,或者特定的索引是否添加正确,请直接询问,我会帮你看一下。
然而,当谈到设计桌子时,你练习得越多就会有感觉。
我还在思考这个问题。

如何在MySQL中进行查询并建立表格

你好,你的总结很全面。
我已经清楚地解释了定义和创建 MySQL 表。
让我为您分解一下,并使用一些现实生活中的示例来看看是否可以让您更清楚:
---
上周,一位客户问我为什么他写了一个简单的查询却花了这么长时间。
我看到这个的时候,这家伙在SELECT里加了十多个ORDER BY,结果服务器就崩溃了。
想一想 SELECT FROM ORDERS WHERE STATUS = "SHIPPED" ORDER BY customer_id, order_date DESC, Shipping_cost ASC 运行数据库需要多长时间?我教它使用 SELECT customer_id, order_date,shipping_cost FROM Orders WHERE Status = 'shipped' ORDER BY customer_id,shipping_cost DESC,并且它运行得非常快。

基本查询元素关键看WHERE条件写得好不好。
去年我在杭州做培训,一位学员问为什么他在验证用户时总是发现重复记录。
我让他尝试选择不同的用户名、来自last_login > '2 02 3 -01 -01 ' 且 active = 1 的用户的电子邮件,并添加不同的。
事实证明,他滥用了通配符 % 并写成了 LIKE 'S%'。
结果姓史密斯的人都来了。

建表时要多注意约束。
我以前见过上海一家商场的数据库有错误。
有人删除了外键,结果订单表突然被无效客户填满。
看看这个: SQL 创建表产品( INT AUTO_INCREMENT 主键 ID, 名称 VARCHAR(2 5 5 ) 不为空, 小数价格(1 0,2 ) 检查(价格 > 0), 库存 INT 默认 0 选中(库存 >= 0) );
此处添加了两个验证限制,以防止负价格或负库存。
上次深圳的一个团队由于数据验证遇到直播错误,花了两天时间才最终更改赛程。

也经常使用序数查询和模糊查询。
我有一个电商客户,想要查询“所有工资超过3 万的姓王的员工”。
LIKE写“王%”,工资>3 万。
然而,他开始使用 ORDER BY RAND() 来提供随机推荐,但整个查询崩溃了。
后来他使用 WHERE Salary > 3 0000 ORDER BY last_name, RAND() LIMIT 5 解决了这个问题。

---
无论如何,这取决于你。
不要只是支持他们。
只有进一步阅读这些句子,你才能真正理解它们。

如何在MySQL中创建表格create语句详解mysql中create

抱歉,我在做电商项目的时候,从这个Create语句中受益匪浅。
当时我们公司打算建立一个用户信息表,但是几次都失败了,差点导致我丧命。

我记得那是2 01 9 年,当时我们在杭州的一家小公司。
当时公司只有十个人左右,项目才刚刚开始。
当时,我们想创建一个用户表来存储用户的基本信息,例如用户名、密码和电子邮件地址。
当时我就按照网上找到的教程写了一条Create:
sql语句 创建表用户( id int(1 1 ) NOT NULL AUTO_INCRMENT, 用户名 varchar(5 0) NOT NULL, 密码 varchar(2 5 5 ) NOT NULL, 电子邮件 varchar(1 00) NOT NULL, 主键(id) ) 引擎=默认字符集 InnoDB=utf8 ;
结果建不了表,报了很多错误。
当时我还年轻,以为自己搞错了,于是一遍遍检查语法,结果发现表创建不正确。

后来,一位老同事走过来,看到我的表情,才知道我在做什么。
他问我:“你设置了自动增量的初始值了吗?”我一愣:啊?我怎么没注意呢?然后他给我解释说,在InnoDB存储引擎中,如果设置了自增的初始值,而之前的表中没有记录,那么创建新表时,会因为初始值与当前最大ID冲突而失败。

当时我就出了一身汗,原来是这样啊!快速去掉初始自增值,表就正确创建了。
这提醒我在创建表的时候需要注意这些细节。

嘿,顺便说一下,我遇到过很多关于约束的陷阱。
有一次,我们创建了一个订单表,想要对订单号设置唯一约束。
但在录入数据时,由于数据源出现问题,输入了重复的订单号,导致表格崩溃。
当时正好赶上项目上线,我很着急。

总之,创建表看似简单,但实现方法有很多种。
你必须详细地思考并实践它。
虽然现在网上有很多教程,但是当你真正遇到问题的时候,还是要自己解决。
这就是为什么我一直说实践经验很重要。