如何在mysql中使用CREATE TABLE创建表

哎呀兄弟,当谈到MySQL CREATE TABLE语句时,我遇到了很多陷阱。
我记得那一年,我们在公司开展了一个项目,根据该项目,手表必须既复杂又高效。
当时我就想这个表的字段和数据类型都要仔细规划,不能马虎。

首先,表名、字段、数据类型、约束是基础。
当时我创建了一个users表,字段包括用户名、邮箱、年龄、创建时间等,用户名必须唯一,年龄不能小于0,创建时间默认为当前时间。
书写时请注意,字段名和数据类型必须用空格分隔,约束后面必须加逗号。

那么如果你选择了错误的数据类型你就会头疼。
例如,我最初使用VARCHAR(1 0)来存储用户名,但后来发现有些人的名字太长,不够用。
因此,这个长度要根据实际需要来确定。
再比如:INT用来存储年龄,默认值为0,结果同事的年龄是负数。
我赶紧换成了CHECK约束,保证年龄不能小于0。

约束也是一个知识问题。
例如,对于主键我最初使用自增INT,但后来发现使用UUID更安全并且不太可能重复。
还应该注意外键并确保指定的表和字段存在,否则它们将无效。

创建表后,需要检查其结构的正确性。
我使用 DESCRIBE 检查字段中的信息,并使用 SHOW CREATE TABLE 检查表创建语句并确保一切正常。

说到性能优化,我还对常用的查询字段添加了索引,让查询更加高效。
但是,使用 TEXT 等大数据类型时应小心或 BLOB,因为查询可能会很慢。

另外,有时需要复制表的结构而不复制数据,或者根据情况复制数据。
CREATE TABLE LIKE、CREATE TABLE AS SELECT等这些操作也需要掌握。

总之,建表时需要注重细节,跟上优化。
回想起来,这些年我确实遇到了很多陷阱,但也学到了很多东西。
兄弟,你在数据库方面要多注意这些细节,不要犯像我这样的错误。
哈哈。

如何用命令符显示数据库

记得上次在咖啡馆写代码的时候,坐在我旁边的叔叔突然问我如何在Linux中查看数据库。
我用愚蠢的手敲了几个命令,他的眼睛亮了起来。
其实很简单,只取决于使用正确的系统。

MySQL是个老人了,这就像争论一样。
上次在宿舍调试的时候,半夜三点打开服务器,进入SHOWDATABASES;结果一瞬间就出来了,比看天气预报还清楚。
我记得找到一个名为“temporal”的数据库,并认为它是时区的缩写。
事实证明这是一个遗留项目。
当时我觉得这个名字太没有创意了。
查看表时,必须先使用USE。
我仍然记得它是 USE 库的名称;,所以我运行了 SHOWTABLES;一旦进入生产库,屏幕就会闪烁红色。
后来改为 吹 mysql-uadmin-p > 使用mydb; > SHOWTABLES;
通过这种分步方法,您至少可以清楚地看到哪里出错了。

PostgreSQL讲究仪式感。
上次我用psql连接公司机房。
当我进入L的时候,我的手抖了一下,我按了L,系统以为你要退出。
有很多带反斜杠的命令,比如\dt,我一直以为是被截断的输入法。
d命令是查找表结构最全面的方法。
上次更改字段类型之前,我打印了用户结果,发现2 009 年增加了外键约束。
当时我就想谁接手了这个项目?字段类型中NULL和非空有明显的区别,但是有些人还是一头雾水,所以我用红笔在白板上一一标记出来。

连接问题是最令人头疼的问题。
我记得去年冬天我发现了一个错误。
Mysql报端口错误。
结果发现主机防火墙开放了3 3 07 端口。
PostgreSQL 方面更奇怪。
我的同事挣扎了很长时间。
当我上去输入cbd名称并回车时,他突然说:“哦,是这样的。
”原来我要先输入\l来确认数据库名,然后再输入c。
权限问题是最烦人的。
我接手了一个项目,添加了GRANT命令,加了半天没有效果。
最终我发现我忘记在数据库配置中写入host='localhost'。
区分大小写是最有毒的技巧。
有一个表叫Users,但是我同事写成user就找不到了。
我刚刚把所有关联的文件都重命名了,但他还是不相信。

现在想想,MySQL就像一个便利店,什么都有,但一切都很简单; PostgreSQL就像一个超市,东西很多,但你必须按类别找到它们。
记得上次查看客户数据时,MySQL 花了一个小时,PostgreSQL 花了十分钟。
这时,客户说:“你的系统就像一个迷宫。
”我说:“你想要超市还是便利店?”

MySQL中如何用正则表达式替换指定字符串及之后文本?

REGEXP_REPLACE 函数在 MySQL 8 .0+ 中可用。

语法:REGEXP_REPLACE(field, '正则表达式', '替换内容')。

示例: UPDATE table_name SET field_name = REGEXP_REPLACE(field_name, '(@&).', '') WHERE field_name LIKE '%@&%';
注意:正则表达式基于 ICU,与 PHP 等不同。

在继续之前请备份数据。

执行前检查正则表达式。