数据库DDL定义的内容

我给大家讲一下我当时做的数据库工作。
当时是2 01 8 年,我在上海一家小公司做新系统,每天都和数据库打交道。
DDL确实很让人头疼而且又很重要。

让我们从创建一个表开始。
2 01 8 年6 月,我创建了user表,这是最基本的用户表。
我需要编写 DDL 语句来确定列名和数据类型。
例如,使用 varchar(5 0) 作为用户名,使用 char(3 2 ) 作为密码。
还需要添加主键约束,并使用int进行自增。
那时我总是忘记添加索引。
结果,检查用户名的速度非常慢。
顾客抱怨,老板骂我。
这时我才意识到我需要为用户名列添加索引。
索引嘛,什么是索引?它只是为了帮助您快速查找数据。
我不需要解释,只要理解就可以了。
添加太多索引会出现陷阱。
2 01 9 年有一次,我给一个表添加了十多个索引。
结果,插入数据非常慢。
为什么?因为每次插入都要更新所有索引。
你必须检查一下。

景色也很有趣。
2 01 9 年3 月,我创建了一个销售报表视图,该视图应该连接几个表以获取销量、客户名称等。
视图的优点是它们封装了复杂的查询并使其易于其他人使用。
但请注意,该视图不是真正的表。
当你查询的时候,它需要检查它所依赖的表,所以不要让视图太复杂。

存储过程和触发器是高级功能。
存储过程封装了一堆SQL语句。
2 01 8 年 1 0 月,我创建了一个工资单存储过程。
参数通过 medarbeider-ID,并自动删除,并显示该团伙的状态。
触发器更加神秘。
2 01 9 年 1 2 月,我创建了一个触发器,当订单状态更改为“正在发货”时,该触发器会自动从库存表中提取库存。
这个东西用得好的话,可以保证数据的一致性,但是用得不好的话,比如触发器里的逻辑写错了,或者触发器嵌套太多了,性能就会下降。
我见过的最尴尬的事情是2 02 0年一个触发器写了一个无限循环,锁住了整个库。
我花了很长时间才弄清楚。

更改和删除是类似于更改表的语句。
2 02 0年,系统上线后,需求再次发生变化。
需要添加手机号码列,所以我使用alter table来添加该列。
至于删除,有时候客户会搞砸,比如不小心删除了一个表,就不得不使用drop table。
这真的很糟糕,他们需要快速从备份中恢复。
所以备份很重要!
数据完整性约束,这是重中之重。
主键、外键、唯一约束和检查约束都必须使用。
我在2 01 8 年创建user表时,用户名必须是唯一的,所以我添加了唯一约束。
外键更为常见。
2 02 0年我在处理orders表和users表时,orders表中有一个用户ID,所以我添加了一个外键约束来确保订单必须与现有用户关联。
检查限制也很有用。
例如,创建2 02 1 年的产品列表时,价格必须大于0,所以我添加了检查约束。
如果正确应用这些限制,可以避免许多数据错误并节省大量工作。

模式和序列用得不多,但也能派上用场。
模式是库的别名。
2 02 1 年,我看到一家大厂商把测试库和生产库明确分开,并用模式来区分。
序列用于生成唯一的数字。
在2 02 2 年我将建造一张新桌子。
主键将使用序列生成,这比自动增量更快。

简而言之,DDL是数据库的骨架。
如果做得好,数据库就会稳定。
但如果你不小心,比如忘记添加索引,添加了错误的约束,或者删除了不应该删除的表,那将是真正致命的。
我所经历的坑,足够写一篇了。
使用数据库时,多阅读、多练习、少犯错误。

数据库的定义

说实话,我第一次接触数据库是在2 005 年左右,当时公司的ERP系统是Oracle 9 i,虽然很古老,但是功能很强大。
我从来不理解数据自由。
比如我们改了一次表结构,导致几个前端应用崩溃了。
后来发现是视图映射没有做好。
说白了,数据自由是一种理想状态。
事实上,我们必须手动调整代码。

共享数据很有趣。
当我们找到客户时,他们使用财务和销售两个系统,数据必须手动同步。
结果月末对账的时候,我发现销售中记录的金额和财务中记录的金额不一样。
最后发现销售方加了小数点,财务方并不在意。
这件事对我影响很深。
当时我不明白为什么需要两个系统。
后来我才意识到数据冗余有多么可怕。

数据安全方面,记得有一次半夜接到运维的电话,说数据库被黑了,数据被篡改了。
我当时就震惊了,立即查看日志,发现一名员工的密码非常简单,被强行破解了。
从那时起,我们强制要求所有数据库帐户必须定期更改密码并使用复杂的密码策略。
我记得是2 008 年做的,效果真的很酷。
在接下来的几年里这样的事情再也没有发生过。

数据持久化其实相当重要。
我之前在另一家公司工作,当时使用的是MySQL。
有一次,机房发生火灾。
幸运的是,数据进行了异地备份,没有丢失。
但花了两天时间才恢复数据,整个业务陷入停滞。
后来我们又花了2 0万买了一个高端磁盘阵列,数据实时热备份。
虽然贵了一些,但还是省心的。
我个人没有运行过这方面的云数据库,但我记得数据大约是X,但我建议你检查一下当前的价格。

数据库系统的选择其实还是蛮有趣的。
我见过小公司使用 Access 作为数据库。
结果员工辞职,数据库被抄,老板着急了。
也有规模较大的公司使用Oracle,但系统太重,无法运行,最终不得不添加服务器集群。
所以选择数据库要看场景,不要盲目跟风。

数据库定义

我实际上在工作中遇到过您之前提到的这个数据库。
我记得那是2 02 2 年,我在一家公司负责数据管理。
当时我们公司人事部门用数据库来管理员工信息。

当时我们把员工的编号、姓名、年龄、性别、籍贯、工资和简历存储在一个表中。
这个表相当于一个小型数据库。
这样,人事经理可以轻松查看每个员工的信息,并可以根据需要过滤和编译统计数据。

例如,有一次公司要组织一次团队建设活动,人力资源经理从数据库中筛选出所有2 5 岁到3 5 岁之间的员工名单,效率极高。
另外,如果公司需要调整薪资或者更新员工信息,这些操作都可以在数据库中一键完成。

不仅是人事管理部门,财务、仓库、生产等部门也需要使用数据库。
例如,财务部门可以通过数据库记录每笔支出,方便会计和审计。
对于仓库管理来说,数据库可以记录库存状态,避免货物积压或短缺。

综上所述,数据库就像企业的“大脑”,使其管理更加自动化、高效。
然而,使用数据库并不是那么简单。
必须有人懂数据库编程和管理,否则数据安全和工作效率可能会成为问题。
但是,这由您决定。
如果用得好,对公司来说是个好消息。
如果使用不当,您可能会感到头痛。
我还在想这个问题。