zoukankan      html  css  js  c++  java
  • 0109 子查询/数据库设计

    1、子查询

    子查询就是把一个查询的结果当作另一个查询的条件

    (1)用等于号

    例:查询张三的部门名称

    select dname from dept where did=(

    select did from emp1 where ename='张三'

    )

    (2)in 子查询

    例:查询开发部的员工信息

    select * from emp where did in(

    select did from dept where dname='开发部'

    )

    例:查询测试部和运维部的员工姓名

    select ename from emp where did in(

    select did from dept where dname='测试部' or dname='运维部'

    )

    2、联合查询

    关键字union 含义是硬将两个表放在一起的结果集

    例:查询员工姓名,员工编号,部门编号,部门名

    select eid, enamefrom emp

    union

    select did,dname from dept

    注:两个select语句的输出段(结果字段)数目一样,应用中通常类型一样才有意义

          结果集中的字段以第一个select语句的字段为准

    --

    --

    数据库设计

    MySQL建模过程

    (前期三阶段)

    1、需求分析阶段:分析客户的业务和数据处理需求

    (1)了解需求,(2)标识实体(3)标识实体之间的属性(4)标识实体之间的关系

    2、概要设计阶段:设计数据库E-P模型图,确认需求信息准确无误

    E-P模型图:方框代表实体,菱形代表关系,椭圆代表属性

    绘制E-P模型图的时候 首先要分析实体与实体之间的关系(要以实际业务需求判断关系,不要主观意识)

    (1)关系1:一对一:x中的一个实体,最多与Y中的一个实体关联,并且Y中实体最多与x中的一个实体关联

    例:一个人只有一张身份证并且一张身份证只能被一个人所拥有

    若是1:1关系:将实体转换成表,将任意一端的主键拿到另外一端做外键

    (2)关系2:一对多:x中的一个实体,可以与y中的任意一个实体关联,但y中的一个实体只能与x中的一个实体想关联

    例:一个班级中右多个学生,但学生只能属于一个班级

    若是1:n关系:将实体转换成表,将1端的主键拿到n端的表中做外键

    (3)关系3:多对多:x中的一个实体,可以与y中的任意一个实体关联,并且y中的一个实体 可以与x中的任意一个实体相关联

    例:学生可以选多门选修课,并且一门选修课可以被多名学生选择

    若是m:n关系:将实体转换成表,再建立关系表,将m和n端的主键拿到该表中做外键

    例:

    某医院病房计算机管理中心需要如下信息:
    科室:科室id、科名、科地址、科电话
    病房:病房id、床位号、所属科室id
    医生:医生id、姓名、职称、所属科室id、年龄、工作证号
    病人:病历id、姓名、性别、诊断、主管医生id、病房id
    其中,一个病房只能属于一个科室,一个科室可以有多个病房,//那么科室和病房之间的关系是1:n

    一个医生只属于一个科室,一个科室可以有多名医生,//科室和医生之间的关系是:1:n

    一个医生可负责多个病人的诊治,一个病人的主管医生只有一个。//医生和病人之间的关系是1:n

    一个病人只能住一间病房,一间病房可以入住多名病人。//病房与病人之间的关系是1:n

    e-r模型图为:

    3、详细设计阶段:应用三大范式审核数据库

    1、第一范式:要求数据表中的每个字段是不可分割的独立字段

    例:

    2、第二范式:在第一范式的基础上,要求每张表只表达一个意思,表的每个字段都和主键有依赖

    例:

    3、第三范式:在第二范式的基础上,要求每张表除了主键之外其他字段只能和主键有决定依赖性关系

    例:

  • 相关阅读:
    通过path绘制点击区域
    能添加图标的label
    便利的初始化view以及设置tag值
    递归搜寻NSString中重复的文本
    自动移除的通知中心
    BadgeValueView
    SpringCloud的入门学习之Eureka(Eureka的单节点)
    Elasticsearch 6.x版本全文检索学习之分布式特性介绍
    关于window10更新之后,15.5版本虚拟机不能使用的情况:检测更新版本
    RabbitMQ的消息确认ACK机制
  • 原文地址:https://www.cnblogs.com/-gongxue/p/14256135.html
Copyright © 2011-2022 走看看