阿鑫来了  

1. 键值约束与扩展属性

键值约束:  约束表中指定字段的数据必须符合某种规则

    种类:  

            非空约束:  NOT NULL -- 约束指定字段的数据不能为NULL

            唯一约束:  UNIQUE -- 约束指定字段的数据不能出现重复

            主键约束:  primary key -- 数据非空且唯一,  一张表只能有一个主键

            外键约束:  foreign key -- 表中指定字段的数据受父表数据约束

            默认值:  DEFAULT -- 为指定字段设置默认值

            自增属性:  AUTO_INCREMENT -- 整形字段数据自动+1

create table if not exists class(

      id int primary key auto_increment, 

      name varchar(32)

);

create table if not exists student(

      id int primary key auto_increment,

      sn int not null unique,

      name varchar(32),

      class_id int,

      sex varchar(1) default('男'),

      foreign key (class_id) references class(id)

);

2. 分组查询: group by 

        分组查询的字段只能是分组依据字段以及聚合函数.

        分组查询中不能使用where,  用having替换where

        表中一个组名: role   表中另一个组名: salary

        select  role,sum(salary) from emp group by role;

        select  role,sum(salary) , max(salary), min(salary), avg(salary)from emp group by role;

         select  role,sum(salary) , max(salary), min(salary), avg(salary)from emp group by role having avg(salary)>15000;

3.数据库中表的设计

      ER关系图:  根据实体与实体之间的关系决定数据库表如何设计

            一对一:  每个实体设计表的时候都应该具有一个唯一主键

            一对多:  多的一方表中应该具有单一一方的id

            多对多:  创建一个中间表关联两个实体

      三大范式:数据表的设计规范

            1nf:  表中每个字段都应该是不可分割的原子数据

                    第一范式是其他范式的前提

                    不遵循:  降低查询效率,  只能模糊匹配

            2nf:  表中每个字段都应该完整关联主键,  而不能部分关联

                    不遵循:   表中可能存在冗余数据

            3nf:  表中每个字段都应该直接与主键关联,  而不能间接关联

                     不遵循:   表中可能存在冗余数据

 

posted on 2021-08-11 22:22  阿鑫来了  阅读(34)  评论(0)    收藏  举报