zoukankan      html  css  js  c++  java
  • MySQL:数据库3

    1.sql语句逻辑执行顺序

    (7) SELECT
    (8) DISTINCT <select_list>
    (1) FROM <left_table>
    (3) <join_type> JOIN <right_table>
    (2) ON <join_condition>
    (4) WHERE <where_condition>
    (5) GROUP BY <group_by_list>
    (6) HAVING <having_condition>
    (9) ORDER BY <order_by_condition>
    (10) LIMIT <limit_number>

    2.
    外键约束
    添加外键:
    alter table person add CONSTRAINT fk_id FOREIGN key(dept_id) REFERENCES dept(did);

    删除外键
    alter table person DROP FOREIGN key fk_id

    注:插入数据时,先插入主表中的数据,再插入从表中的数据。

    删除数据时,先删除从表中的数据,再删除主表中的数据。


    3.唯一约束
    create table t4(
    id int(10) not null,
    name varchar(255) ,
    unique id_name(id,name)
    );
    ALTER table t4 add UNIQUE id_name(id,name)

    alter table t4 DROP index id_name

    4.默认值约束
    create table t5(
    id int(10) not null primary key,
    name varchar(255) default '张三'
    );

    INSERT into t5 VALUES(3,DEFAULT),(4,DEFAULT);


    5.表与表之间关系
    1.一对多 ,一对一 ,多对多


    7.数据库设计三范式
    1.第一范式(确保每列保持原子性)

    第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式。

    第一范式的合理遵循需要根据系统的实际需求来定。比如某些数据库系统中需要用到“地址”这个属性,本来直接将“地址”属性设计成一个数据库表的字段就行。但是如果系统经常会访问“地址”属性中的“城市”部分,那么就非要将“地址”这个属性重新拆分为省份、城市、详细地址等多个部分进行存储,这样在对地址中某一部分操作的时候将非常方便。这样设计才算满足了数据库的第一范式


    2.第二范式(确保表中的每列都和主键相关)

    第二范式在第一范式的基础之上更进一层。第二范式需要确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言)。也就是说在一个数据库表中,一个表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中。

    3.第三范式(确保每列都和主键列直接相关,而不是间接相关)

    第三范式需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关。

  • 相关阅读:
    spring缓存笔记 半注解版
    乐优商城项目视频及源码
    spring cloud Eureka
    idea+maven搭建ssh,支持事务,无hibernate文件整合
    BUU->CRYPTO 知识点分类
    file-upl0ad
    [RoarCTF 2019]Simple Upload
    BUU UPLOAD COURSE 1
    [GXYCTF2019]Ping Ping Ping
    [SWPU2019]Web1
  • 原文地址:https://www.cnblogs.com/kakawith/p/8484108.html
Copyright © 2011-2022 走看看