sql中constraint用途 CONSTRAINT约束的5种类型详解

有一天我在帮朋友调试数据库,他抱怨orders表中的数据总是很混乱。
我检查了代码,发现外键约束消失了。
难怪用户关联总是出错。
FOREIGN KEY 在这里没有用吗?
主键约束就像超市结账处的条形码:每件商品都必须是唯一的。
去年我建立仓库时,我发现没有条形码就无法清点物品,最后我不得不手工写标签。
这就是 id INT PRIMARY KEY 在 SQL 中的样子。

最好玩的独特限制,比如相亲网站上手机号码重复的限制。
两个用户使用同一电子邮件地址注册时出现系统错误,通过创建唯一限制已解决该问题。
email VARCHAR(1 00) UNIQUE 此代码只是对爱的捍卫。

验证约束只是数据保姆。
记得有一天,当我输入成绩时,有人输入了2 00分,系统立即报警,因为CHECK(分数<=1 00)已经被计算出来了。
order_date <= CURRENT_DATE 约束就像一个时间管理器,可以防止门票超额预订。

非空白约束更加现实,就像您在预订机票时必须包含您的姓名一样。
有些客户总是漏输入手机号码,导致没有通知。
最后,表结构经过重新设计,让您高枕无忧。
username VARCHAR(5 0) NOT NULL,这就是思考的重点。

等等,还有别的事。
命名约束实际上非常重要。
我看到同事写了订单ALTERTABLE ADD CONSTRAINT ord_date CHECK (order_date <= CURRENT_DATE),但是三个月后他们忘记更改条件,并认为系统有bug。
最好将约束命名为日记标题,以便可以理解年月日。

我突然想到,当ALTER TABLE语句添加约束时,数据库暂停服务。
有一天凌晨三点,添加了一个独特的约束,整个电子邮件公司被堵了半个小时。
这是妥协的艺术:数据完整性要花多少钱?
现在问题来了:如果限制太多,这会成为数据库的致命弱点吗?就像老太太抱怨太多,没人听。
查看我们公司的订单表。
限制数量和系统响应时间之间的关系是什么样的?

Oracle数据库表创建、删除(包括主键和索引)以及表结构的增_删_改SQL语句相关脚本

使用以下 SQL 语句创建表。
SQL 创建表users(id varchar2 (6 4 ),姓名varchar2 (2 3 0),年龄(1 ),约束pk_users主键(id));
添加评论: SQL 表用户的注释是“用户表”。
users.id 列的注释是“主键 ID”。
列 users.name 的注释是“name”。
users.age 列的注释是“age”。

删除表: SQL 删除表用户。

清除数据: SQL 截断表的用户。
-
效率高,索引会重建 -
或者 从用户中删除。
-
数据保留,但效率低下
更改表名称。
SQL 将表用户名更改为 Customer。

添加字段。
SQL 更改表客户添加(出生日期)。

更改字段名称。
SQL 修改表的客户将该列从“生日”重命名为“生日”。

更改字段类型: SQL 修改表customermodify(生日varchar2 (1 0));
删除字段: SQL 更改表会删除客户的生日列。

添加主键。
SQL 更改表 Customers 并添加约束 pk_customers 主键 (id)。

删除主键。
SQL 更改表customers 以删除约束pk_customers。

创建常规索引。
SQL 在客户(名称)上创建索引 idx_name。

创建唯一索引。
SQL 为客户(名称)创建唯一索引 udx_name。

删除索引: SQL 删除索引 idx_name。

自己掂量一下。

sql中怎么设置主键

我记得有一次帮助一家小型企业进行数据库迁移。
我之前使用的表没有设置主键。
有一次,我犯了一个数据输入错误,一个学生的信息被输入了多次。
那段时间我每天都在数据库中查找重复记录,确实很困难。
我手工花了两天时间,这两天也没有太多时间做其他事情。

回想起来,如果当时设置了正确的主键,可能就不会出现这种情况。
等等,还有别的事。
就在那时我突然意识到我面临着如何在不影响现有数据的情况下添加主键的问题。
看来数据库设计和管理需要非常仔细的关注。