数据库实验设计——朋友圈【关系模型设计完善】

数据库实验设计——朋友圈【关系模型设计完善】,第1张

数据库实验设计——朋友圈【关系模型设计完善】

这是数据库的第3次实验作业啦,但我真的啥也不会…觉得自己之前写的实验也都是瞎写,老师打分还没下来,也不知道可行性如何。
一、 主键外键索引

1.主键是能确定一条记录的唯一标识,比如,一条记录包括身份正号,姓名,年龄。
身份z号是唯一能确定你这个人的,其他都可能有重复,所以,身份z号是主键。

2.外键用于与另一张表的关联。是能确定另一张表记录的字段,也就是另一张表的主键,用于保持数据的一致性。
比如,A表中的一个字段,是B表的主键,那他就可以是A表的外键。

3.索引:索引基本是为了在你数据量巨大的时候,能加快你的查询速度
索引就像是一个表的目录而已 ;一个表可以有多个唯一索引

4.排序:就是纯粹为了按照某个字段从大到小或从小到大排序
区别:其实索引的正序倒序就是一个分布方式的区别,索引的正倒序并不能让最后的查询结果也是这么显示
问题来了:索引字段和排序字段该怎么选择?我不理解

二、ID,UID是什么意思?
ID:是指论坛注册的用户名,可以自己设置。

UID 是用户身份z明(User Identification)的缩写。UID用户在注册会员后,系统会自动的给你一个UID的数值。意思就是给这名用户编个号
三、关于分隔符DELIMITER
告诉MySQL解释器,该段命令是否已经结束了,mysql是否可以执行了。
可以通过delimiter更改语句结束符
一般会用:// , $$ 或 &&
默认的SQL语句中,delimiter是分号 ,以分号 “;” 表示结束。
更改结束符举例:

DELIMITER //
CREATE FUNCTION get_number_by_id(id INT)
RETURNS VARCHAR(300)
BEGIN
RETURN (SELECt CONCAT('name: ', name, '--', 'number: ', number)
FROM users_info WHERe uid = id);
END//
DELIMITER ;

四、关系数据库约束机制

数据完整性通常由三种形式:

  1. 实体完整性:即表中有一个主键。
    实体完整性在MySQL中表现为设置主键约束和唯一性约束,即primary key与unique key。这两个约束均会在数据库中创建对应的索引。
    主键约束、唯一性约束区别

  2. 域完整性:又称为用户自定义完整性,保证数据值满足用户指定的条件。

1) 检查约束

  • 在创建表时设置检查约束

一般情况下,如果系统的表结构已经设计完成,那么在创建表时就可以为字段设置检查约束了。

#在 test_db 数据库中创建 tb_emp7 数据表,要求 salary 字段值大于 0 且小于 10000
 CREATE TABLE tb_emp7
 (
    id INT(11) PRIMARY KEY,
    salary FLOAT,
    CHECK(salary>0 AND salary<100),
    FOREIGN KEY(deptId) REFERENCES tb_dept1(id)
);
  • 在修改表时添加检查约束
#修改 tb_emp7 数据表,要求 id 字段值大于 0
ALTER TABLE tb_emp7 ADD CONSTRAINT check_id CHECK(id>0);

2)创建非空约束
3) 默认值

  1. 参照完整性:表示与参照表的关系和数据约束,即外键。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4010273.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-10-22
下一篇 2022-10-22

发表评论

登录后才能评论

评论列表(0条)

保存