3.22SQL查询

发布于:2024-12-18 ⋅ 阅读:(148) ⋅ 点赞:(0)

实体完整性是数据库设计中的一个概念,指的是确保数据库中每个实体(表)在逻辑上是完整和一致的状态。它涉及到定义和强制执行一些规则和约束,以确保数据的完整性和准确性。

实体完整性通常通过以下方式来实现:

1. 主键约束:每个实体(表)应该有一个主键,用于唯一标识每个记录。主键的值不能重复,也不能为NULL。

2. 唯一约束:除了主键以外,某些属性可能需要具有唯一性约束,即其值在整个实体中是唯一的。

3. 外键约束:如果一个实体的属性引用另一个实体的主键,则可以使用外键约束来确保引用的完整性。外键将一个实体与另一个实体关联起来,并且确保引用的数据存在于关联的实体中。

4. 检查约束:使用检查约束可以定义特定属性上的条件,以确保只有满足条件的数据能够被插入或更新。

通过实体完整性的规则和约束,数据库可以维护数据的一致性、准确性和完整性,提高数据质量和可靠性。

select 
    gender, university,
    count(device_id) as user_num,
    avg(active_days_within_30) as avg_active_days,
    avg(question_cnt) as avg_question_cnt
from user_profile
group by gender, university

所谓按性别和学校分组就是说会产生出四类,如果只有性别或学校则只有两类

也就是说先依据性别分两类,然后在性别里再依据大学继续分类

Group

group by之后就是已经将原集合分为多个子集了,之后的操作都是在子集里进行的

就是说出现的顺序代表了执行的优先级,优先级越高那么出现的位置越靠前

插入

INSERT INTO exam_record_before_2021(uid, exam_id, start_time, submit_time, score)
SELECT uid, exam_id, start_time, submit_time, score
FROM exam_record
WHERE YEAR(submit_time) < '2021';

用户定义完整性就是说要求在输入时,必须要输入某些值或某些值必须满足某些条件

参照完整性就是说要定义外键

实体完整性就是要求要定义主键

insert into exam_record_before_2021(uid,exam_id,start_time,submit_time,score) select uid,exam_id,start_time,submit_time,score from exam_record where year(submit_time)<'2021'


网站公告

今日签到

点亮在社区的每一天
去签到