• MySQL数据约束和关联查询


     1 默认值deafult:在建表的时候字段后使用 default ,默认值字段允许为null。

    2 非空 not null:在建表的时候字段后使用  not null。

    非空字段必须赋值,并且不能是null。

    3 唯一:主键和unique 字段必须唯一。

    注意:unique 对 null 值不起作用。只对有值的字段数据进行约束。

    4 主键primary key:就是not null 和 nuique的联合。

    5 自增长auto_increment:

    6 外键:约束两张表,主要是解决数据冗余。

    alter table tablename1

    add foreign key column name1

    references tablename2 column name2

    on delete restrict/cascade/set null;

    在建表的时候创建外键,在添加完字段后 foreign key(column ame) reference table name2  (column name2) on delete cascade/restrict/set null。

    注意:

    1)被约束的表为附表,约束别人的表是主表,外键设置在附表上。

    2)添加数据是先添加主表数据,再添加附表数据

    3)不能直接修改主表,先修改附表数据。

    4)删除数据,先删除附表数据,再删除主表数据。

    二、数据库表的设计原则,三大范式

    第一范式:要求表中的每个字段必须是不可分割的独立单元,第一范式(确保每列保持原子性)

    第二范式:要求每张表表达一个思想,表的每个字段都和主键有依赖,第二范式(确保表中的每列都和主键相关)

    第三范式:要求每张表主键之外的每个字段都只能和主键有直接依赖关系,第三范式(确保每列都和主键列直接相关,而不是间接相关)

    三、关联查询

    查询规则:1)确定查询那些表 2)确定查询哪些字段 3)表与表之间的连接条件

    例如:

    表1: student

    CREATE TABLE student(
    id INT PRIMARY KEY AUTO_INCREMENT,
    sname VARCHAR(20) NOT NULL,
    sgender CHAR(2) NOT NULL,
    sage SMALLINT NOT NULL,
    sphone VARCHAR(11),
    address VARCHAR(400));

    表2:englishScore

    CREATE TABLE englishScore(
    id INT PRIMARY KEY AUTO_INCREMENT,
    sscore SMALLINT,
    sid INT NOT NULL,
    FOREIGN KEY(sid) REFERENCES student(id) ON DELETE CASCADE
    );

    查询学生姓名和成绩

    3.1 内连接查询,两张表或多张表的连接条件都非空

    SELECT sname, sscore
    FROM student S, englishScore ES
    WHERE S.id = ES.sid;

    相当于是使用下面语句执行查询

    SELECT sname, sscore
    FROM student S
    INNER JOIN englishScore ES
    ON S.id = ES.sid;

    3.2 左外连接

    SELECT S.sname, ES.sscore
    FROM student S
    LEFT JOIN englishScore ES
    ON S.id = ES.sid;

    3.3 右外连接

    SELECT S.sname, ES.sscore
    FROM student S
    RIGHT JOIN englishScore ES
    ON S.id=ES.sid;
  • 相关阅读:
    生成文件的MD5文件
    磁场动 电子不动, 有 洛伦兹力 吗 ?
    牛顿水桶 的 水面凹陷 和 变轻 就是 个 离心力, 大家 这么 慌乱 干什么 ?
    《【竞价】宏观微观统一量子化波动方程》 回复
    一些有意义的课题 : 氢原子光谱 氢原子电子云 小孔衍射 双缝干涉
    调和级数 和 双盲测试
    webrtc降噪原理
    关于浏览器显示的图片点击下载
    Windows 下如何添加和删除服务
    领域驱动设计知识语境、限界上下文、领域
  • 原文地址:https://www.cnblogs.com/zhaopengcheng/p/6672387.html
Copyright © 2020-2023  润新知