【Java EE】Day03 DQL、约束、数据库设计、范式、备份和还原
〇、总结
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、约束、数据库设计、范式、备份和还原的更多相关文章
- Oracle笔记(十六) 数据库设计范式
数据库设计范式是一个很重要的概念,但是这个重要程度只适合于参考.使用数据库设计范式,可以让数据表更好的进行数据的保存,因为再合理的设计,如果数据量一大也肯定会存在性能上的问题.所以在开发之中,唯一可以 ...
- BCNF/3NF 数据库设计范式简介
数据库设计有1NF.2NF.3NF.BCNF.4NF.5NF.从左往右,越后面的数据库设计范式冗余度越低. 满足后一个设计范式也必定满足前一个设计范式. 1NF只要求每个属性是不可再分的,基本每个数据 ...
- 数据库设计范式1——三范式
一讲到数据库设计,大家很容易想到的就是三范式,但是第四.第五范式又是什么,不是很清楚,三范式到底怎么区分,也不清楚,作为数据库设计的基础概念,我再讲解下数据库范式. Normal form Bri ...
- 【HCIA Gauss】学习汇总-数据库管理(数据库设计 范式 索引 分区)-7
zsql user/pasword@ip:port -c "show databases" # 展示一条sql语句 spool file_path 指定输出文件 可以为相对路径 s ...
- MySql约束_设计_备份还原(资料二)
今日内容 1. DQL:查询语句 1. 排序查询 2. 聚合函数 3. 分组查询 4. 分页查询 2. 约束 3. 多表之间的关系 4. 范式 5. 数据库的备份和还原 DQL:查询语句 1. 排序查 ...
- MariaDB第三章:数据库设计与备份--小白博客
数据库设计 1.第一范式(确保每列保持原子性) 第一范式是最基本的范式.如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式. 2.第二范式(确保表中的每列都和主键相关) 第 ...
- MySQL 拷贝数据库表方式备份,还原后提示 table xxx '' doesn`t exist
MySQL很强大,支持直接拷贝数据库文件快速备份,那数据库文件在哪里呢? 打开MySQL的配置文件 my.ini,找到 datadir 节点,如 datadir="D:/Program Fi ...
- SQL Server 2008数据库创建,备份,还原图解及注意点
一.新建数据库 步骤1:点击“新建数据库”. 步骤2:输入数据库名称,设置数据库文件保存位置(注意点:最好自己设置数据库文件保存位置,不要采用安装时默认的文件保存位置!),点击“确认”即可完成新库的创 ...
- 数据库设计范式2——BC范式和第四范式
我在很久之前的一篇文章中介绍了数据库模型设计中的基本三范式,今天,我来说一说更高级的BC范式和第四范式. 回顾 我用大白话来回顾一下什么是三范式: 第一范式:每个表应该有唯一标识每一行的主键. 第二范 ...
- Java丨角色权限控制——数据库设计
相信各位读者对于角色权限管理这个需求并不陌生.那么是怎么实现的呢?今天小编来说道说道! 1.首先我们来进行数据库的设计,如何设计数据库是实现权限控制的关键: 1)用户表: id:主键.自增.int n ...
随机推荐
- Django 使用VScode 创建工程
一.VSCode 创建Django 工程 VSCode 官方: https://code.visualstudio.com 1 mysite(项目名),创建Django 项目,可以和虚拟环境放在同一目 ...
- flannel跨主网络通信方案(UDP、VXLAN、HOST-GW)详解
- Elasticsearch:IK中文分词器
Elasticsearch内置的分词器对中文不友好,只会一个字一个字的分,无法形成词语,比如: POST /_analyze { "text": "我爱北京天安门&quo ...
- ingress-nginx 的使用 =》 部署在 Kubernetes 集群中的应用暴露给外部的用户使用
文章转载自:https://mp.weixin.qq.com/s?__biz=MzU4MjQ0MTU4Ng==&mid=2247488189&idx=1&sn=8175f067 ...
- CentOS使用yum方式安装yarn和nodejs
# 使用epel-release.repo源安装的nodejs版本是6.17.1,有些前端项目使用的话会提示版本太低,具体下图 # 命令执行后的详细情况:curl -sL https://rpm.no ...
- 解决centos系统突然间网络不通的问题:Global IPv6 forwarding is disabled in configuration, but not currently disabled in kernel
问题描述:公司里的一台centos 7.6主机,连接公司的路由器,里面设置的静态ip,之前用的好好的,但是有一次突然间ping不通了,之前是可以ping通的. 问题分析: 查看网络配置文件: TYPE ...
- A-卷积网络压缩方法总结
卷积网络的压缩方法 一,低秩近似 二,剪枝与稀疏约束 三,参数量化 四,二值化网络 五,知识蒸馏 六,浅层网络 我们知道,在一定程度上,网络越深,参数越多,模型越复杂,其最终效果越好.神经网络的压缩算 ...
- 微光互联 TX800-U 扫码器无法输出中文到光标的问题
问题背景 某检测场有一批扫码器,购于微光互联,型号 TX800-U,用于在不同办理窗口间扫描纸质材料上的二维码,简化录入过程.扫码器通过 USB 接入 PC 系统 (windows),自动安装驱动,接 ...
- 齐博x1 万能fun 调用任意数据表 任意字段就是这么任性调用
列举了几个常用的查询进行简单封装,虽然系统也有内置的但是很多人不大会就二次封装简化了一下. 这里只封装了一个条件 多个条件的自己再封装或者用标签解决比较好 这里只是说fun可以万能调用 1获取任意表的 ...
- 【原创】All in One i.MXRT1050/RT1020 SPI Flash Algorithm for J-Flash
2020年,这个给大家一种很漫长的恍惚感的一年,终于是过去了.这一年我们很多新的人生第一次就这么被发生了,第一次居家办公这么长时间(很多人肥膘都长了不少,我却瘦了2斤,不知是工作太积极了还是被家里小怪 ...