〇、总结

1、DQL

  • 聚合函数有空值需要使用ifnull函数
  • where不能使用聚合函数
  • 分页开始索引的计算,及mysql和oracle的方言

2、约束

  • 删除唯一约束DROP INDEX 列名;

3、范式

  • 2N范式消除部分依赖

4、备份与还原

  • 数据库备份mysqld DB名>路径
  • 数据库还原:source SQL文件

一、DQL查询语句

1、排序查询:order by

2、聚合函数

  • 一列为一个整体,进行列的纵向计算
  • 会排除空值项
    • ifnull函数

3、分组查询

  • group by子句 having xxx条件
  • where中不能跟聚合函数而having可以  

4、分页查询

  • limit 开始索引,每页条数    
  • 公式 :开始的索引=(当前的页码-1)*每页显示的条数
  • 方言:oracle是rownumber

二、约束

1、概述

  • 对表中数据限定,保证其正确性
  • 分类
    • 主键约束
    • 非空约束:not null
    • 唯一约束
    • 外键约束

2、非空约束

  • 创建
  • 修改:ALTER TABLE STU MODIFY NAME VARCHAR(20) NOT NULL;
  • 删除:ALTER TABLE STU MODIFY NAME VARCHAR(20);-- 也是一种修改

3、唯一约束

  • 改:ALTER TABLE stu MODIFY phone_number  VARCHAR(20) UNIQUE;
  • 删:ALTER TABLE stu DROP INDEX phone_number;

4、主键约束

  • 表中记录的唯一标识
  • 改:ALTER TABLE STU MODIFY ID INT PRIMARY KEY;
  • 删:
    • ALTER TABLE STU MODIFY ID INT;-- 执行成功但不会生效
    • ALTER TABLE STU DROP PRIMARY KEY;
  • 主键自增长:auto_increment
-- 删除自动增长
ALTER TABLE STU MODIFY ID INT;
INSERT INTO STU VALUES(12,'CCC');-- 可以
INSERT INTO STU VALUES(NULL,'CCC');-- 不可以
-- 添加自动增长
ALTER TABLE STU MODIFY ID INT AUTO_INCREMENT;
INSERT INTO STU VALUES(NULL,'CCC');-- 可以

5、外键约束

  • constraint 外键名称 foreign key 外键列名称 reference 主表名称(主表的列名称)
  • 删:ALTER TABLE employee DROP FOREIGN KEY emp_dept_fk;
  • 改:ALTER TABLE employee ADD CONSTRAINT emp_dept_fk FOREIGN KEY (dep_id) REFERENCES department(id);
  • 级联操作
    • 级联更新:ON UPDATE CASCADE;
    • 级联删除:ON DELETE CASCADE;

三、数据库的设计

1、多表之间的关系

  • 一对一
  • 一对多
  • 多对多

2、实现关系

  • 一对一

   

  • 一对多

  • 多对多

  • 避免多个外键值不指向同一个数据

    • 解决:对外键列添加unique约束

3、案例:途牛旅游网

四、数据库设计范式

1、概述

  • 设计数据库要遵循的规范
  • 越高的范式冗余越小
  • 共6种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)

2、分类

  • 第一范式(1NF):不可分割的原子项。
  • 第二范式(2NF):非码属性完全依赖于候选码(在1NF基础上消除非主属性对主码的部分函数依赖)
  • 第三范式(3NF):非主属性不依赖于其它非主属性(在2NF基础上消除传递依赖

3、范式详解

  • 2NF

    • 函数依赖
    • 完全函数依赖,如(学号,课程名称)--->分数
    • 部分函数依赖,如(学号,课程名称)-->姓名
  • 3NF
    • 消除传递依赖,解决下述添加问题

五、数据库的备份和还原

1、备份

  • mysqldum -u用户名 -p密码  (数据库名)> 保存的路径

2、还原

  • 步骤:

    • 建库
    • 使用
    • 执行还原文件

3、图形化界面

【Java EE】Day03 DQL、约束、数据库设计、范式、备份和还原的更多相关文章

  1. Oracle笔记(十六) 数据库设计范式

    数据库设计范式是一个很重要的概念,但是这个重要程度只适合于参考.使用数据库设计范式,可以让数据表更好的进行数据的保存,因为再合理的设计,如果数据量一大也肯定会存在性能上的问题.所以在开发之中,唯一可以 ...

  2. BCNF/3NF 数据库设计范式简介

    数据库设计有1NF.2NF.3NF.BCNF.4NF.5NF.从左往右,越后面的数据库设计范式冗余度越低. 满足后一个设计范式也必定满足前一个设计范式. 1NF只要求每个属性是不可再分的,基本每个数据 ...

  3. 数据库设计范式1——三范式

    一讲到数据库设计,大家很容易想到的就是三范式,但是第四.第五范式又是什么,不是很清楚,三范式到底怎么区分,也不清楚,作为数据库设计的基础概念,我再讲解下数据库范式.   Normal form Bri ...

  4. 【HCIA Gauss】学习汇总-数据库管理(数据库设计 范式 索引 分区)-7

    zsql user/pasword@ip:port -c "show databases" # 展示一条sql语句 spool file_path 指定输出文件 可以为相对路径 s ...

  5. MySql约束_设计_备份还原(资料二)

    今日内容 1. DQL:查询语句 1. 排序查询 2. 聚合函数 3. 分组查询 4. 分页查询 2. 约束 3. 多表之间的关系 4. 范式 5. 数据库的备份和还原 DQL:查询语句 1. 排序查 ...

  6. MariaDB第三章:数据库设计与备份--小白博客

    数据库设计 1.第一范式(确保每列保持原子性) 第一范式是最基本的范式.如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式. 2.第二范式(确保表中的每列都和主键相关) 第 ...

  7. MySQL 拷贝数据库表方式备份,还原后提示 table xxx '' doesn`t exist

    MySQL很强大,支持直接拷贝数据库文件快速备份,那数据库文件在哪里呢? 打开MySQL的配置文件 my.ini,找到 datadir 节点,如 datadir="D:/Program Fi ...

  8. SQL Server 2008数据库创建,备份,还原图解及注意点

    一.新建数据库 步骤1:点击“新建数据库”. 步骤2:输入数据库名称,设置数据库文件保存位置(注意点:最好自己设置数据库文件保存位置,不要采用安装时默认的文件保存位置!),点击“确认”即可完成新库的创 ...

  9. 数据库设计范式2——BC范式和第四范式

    我在很久之前的一篇文章中介绍了数据库模型设计中的基本三范式,今天,我来说一说更高级的BC范式和第四范式. 回顾 我用大白话来回顾一下什么是三范式: 第一范式:每个表应该有唯一标识每一行的主键. 第二范 ...

  10. Java丨角色权限控制——数据库设计

    相信各位读者对于角色权限管理这个需求并不陌生.那么是怎么实现的呢?今天小编来说道说道! 1.首先我们来进行数据库的设计,如何设计数据库是实现权限控制的关键: 1)用户表: id:主键.自增.int n ...

随机推荐

  1. 11. 第十篇 网络组件flanneld安装及使用

    文章转载自:https://mp.weixin.qq.com/s?__biz=MzI1MDgwNzQ1MQ==&mid=2247483834&idx=1&sn=b04ec193 ...

  2. Elasticsearch:同步 MongoDB 数据到 Elasticsearch

    转载自:https://elasticstack.blog.csdn.net/article/details/114639152 MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写 ...

  3. 数据火器库八卦系列之瑞士军刀随APP携带的SQLite

    来源:云数据库技术 数据库打工仔喃喃自语的八卦历史 1. 为导弹巡洋舰设计,用在手机上的数据库 2. Small and Simple, and Better 3. 如何看出是自己的娃:产品定位,特点 ...

  4. SpringBoot课程学习(三)

    一.YAML格式的基本语法 (1)格式: 大小写敏感 数据值前边必须有空格,作为分隔符 使用缩进表示层级关系 缩进时不允许使用Tab键,只允许使用空格(各个系统 Tab对应的 空格数目可能不同,导致层 ...

  5. Ubuntu转到root用户后用户名路径没有颜色

    看到好多都直接把普通会用户的.bashrc配置复制到root家目录下,由于本人小白,很多.bashrc配置看不懂,也不敢随便修改.于是找到别的配置方法. 普通用户的os@a:~$和root用户的roo ...

  6. aws-s3-国际global与国内CN的一些说明

    S3云存储国际版最近经常被墙,国内部分地区有时能正常上传下载,有时也会直接报错网络错误等信息, 所以建议S3使用国内AWS的.国内S3与国外S3在使用时需要注意以下几点: 1)URL不通用 国际版的S ...

  7. OnionArch - 采用DDD+CQRS+.Net 7.0实现的洋葱架构

    博主最近失业在家,找工作之余,看了一些关于洋葱(整洁)架构的资料和项目,有感而发,自己动手写了个洋葱架构解决方案,起名叫OnionArch.基于最新的.Net 7.0 RC1, 数据库采用Postgr ...

  8. 大数据技术之HBase原理与实战归纳分享-中

    @ 目录 底层原理 Master架构 RegionServer架构 Region/Store/StoreFile/Hfile之间的关系 写流程 写缓存刷写 读流程 文件合并 分区 JAVA API编程 ...

  9. Idea运行支付宝网站支付demo踩坑解决及其测试注意事项

    一.前言 在一些商城网上中,必不可少的是支付,支付宝和微信比较常见,最近小编也是在研究这一块,看看支付宝怎么进行支付的,支付宝给我们提供了demo和沙箱测试.减少我们的申请的麻烦,公钥和秘钥也比之前方 ...

  10. 现有一个接口DataOperation定义了排序方法sort(int[])和查找方法search(int[],int),已知类QuickSort的quickSort(int[])方法实现了快速排序算法

    欢迎大家加入我的社区:http://t.csdn.cn/Q52km 社区中不定时发红包 文章目录 1.UML类图 2.源码: 3.优缺点分析 1.UML类图 2.源码: package com.bac ...