数据库相关 Mysql基本操作
数据库相关
设计三范式:
第一范式:
主要强调原子性 即表的每一列(字段)包含的内容,不能再拆分。如果,某张表的列,还可以细分,则违背了数据库设计的第一范式。
第二范式:
主要强调主键,即:数据库中的每一张表只能有一个主键,不能出现多个主键,如果一个表中出现了多个主键,则违背的数据库设计的第二范式。
第三范式:
主要强调外键,定义是这样的:一张表中不能出现依赖该表主键的另一张表中的非主键字段。什么意思呢?就是说:一张表中能不能存放其他表中的字段,答案是可以,但是,要存放的话只能存放其他表中的主键字段,不能存放非主键字段。
拿产品表produc 和 订单order表来说,订单表中能否存放产品表中的产品名称字段,严格按照数据库设计的第三范式来讲,是不能的,这样做不规范,要存的话,只能存放产品表的主键字段:pro_id;但是,这里需要注意一下,任何事情都不是绝对的;数据库设计的范式,主要目的是为了减少数据库的冗余数据,我们要明白,数据库的范式越多,对数据的粒度规范的越细,冗余数据就越少,但是,相应的表之间的关联性依赖性就越高,这样一定程度上,在某些业务场景下,就会降低查询和访问速度;所以,在数据库设计的时候,我们前期规范,一定要遵循最起码的前三个范式,但是,在特定业务场景下,可以选择适当的数据冗余,来提高查询性能。例如:上方的订单表中,某些业务下,也可以直接存放产品表中的其他非主键字段。
Mysql基本操作
数据库相关 Mysql基本操作的更多相关文章
- 数据库 DB MySQL 基本操作 CRUD 多表 MD
操作数据库 创建数据库:create 创建一个名称为mydb1的数据库 create database mydb1; 创建一个使用gbk字符集的mydb2数据库 create database myd ...
- 数据库相关--mysql中的单表查询
一.完整的单表查询语句 select [distinct] *|字段1,字段2, .... from 表名 [where 条件1] [group by 字段名 [having 条件2] ] [orde ...
- MySQL查看数据库相关信息
使用MySQL时,需要了解当前数据库的情况,例如当前的数据库大小.字符集.用户等等.下面总结了一些查看数据库相关信息的命令 1:查看显示所有数据库 mysql> show databases ...
- MySQL数据库学习三 数据库对象和基本操作
3.1 数据库和数据对象 1. 系统数据库 information_schema:主要存储系统中的一些数据库对象信息,如用户列表信息.列信息.权限信息.字符集信息和分区信息等. performance ...
- MySQL数据库之安装,基本操作
一.基础部分 1.数据库是什么 之前所学,数据要永久保留,比如用户注册的用户信息,都是保存于文件,而文件只能存在于某一台机器上. 如果我们不考虑从文件中读取数据的效率问题,并且假设我们的程序所有的组件 ...
- [转]MySQL查看数据库相关信息
原文链接:MySQL查看数据库相关信息 使用MySQL时,需要了解当前数据库的情况,例如当前的数据库大小.字符集.用户等等.下面总结了一些查看数据库相关信息的命令 1:查看显示所有数据库 mysql& ...
- mysql数据库表的基本操作sql语句总结
1,命令行登录命令 mysql -h localhost -u root -p C:\Users\lenovo>mysql -u root -p Enter password: ***** We ...
- 菜鸟崛起 DB Chapter 5 MySQL 5.6数据库表的基本操作
5 数据库表的基本操作 在数据库中,数据表是数据库中最重要.最基本的操作对象,是数据存储的基本单位.数据表被定义为列的集合,数据在表中是按照行和列的格式来存储的.每一行代表一条唯一的记录,每一列代 ...
- mysql数据库相关流程图/原理图
mysql数据库相关流程图/原理图 1.mysql主从复制原理图 mysql主从复制原理是大厂后端的高频面试题,了解mysql主从复制原理非常有必要. 主从复制原理,简言之,就三步曲,如下: 主数据库 ...
随机推荐
- idea设置字体大小
第一次玩儿idea,也是个新手小白,甚是惭愧,也是一步步慢慢摸索,下面我们按照步骤一步步操作 就可以了. 1.首先,先设置代码的字体大小: 2.设置周围菜单栏的字体大小: 3.设置控制台的字体大小:
- HTML5与相关类的扩充
1.getElementsByclassName()方法 <body> <div class='a1'>klkx1</div> <ul id='ul1'> ...
- estimator = KerasClassifier
如何在scikit-learn模型中使用Keras 通过用 KerasClassifier 或 KerasRegressor 类包装Keras模型,可将其用于scikit-learn. 要使用这些包装 ...
- user\db\table_privs\column_privs四张表的权限控制
今天要做的测试是:user\db\table_privs\column_privs这四张权限表分别控制哪些级别的权限: 测试准备: [超级用户]root@'127.0.0.1' [操作库权限的用户]g ...
- python基础之列表list元组tuple
作者:tongqingliu 转载请注明出处:http://www.cnblogs.com/liutongqing/p/7041763.html python基础之列表list元组tuple 列表li ...
- 使用 vs.php 调试PHP相关问题
1. 使用mysql_connect()方法时报错"Call to undefined function mysql_connect()" 这是由于在php.ini没有启用mysq ...
- pyppeteer使用笔记
pyppeteer -- python版本的puppeteer,一个强大的chronium headless浏览器API 最近搞天猫用了一波儿,记录一下. 先上文档: https://miyakogi ...
- 3.java面向对象编程三大特性之多态
面向对象编程的三大特性:封装.继承.多态 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据.对类的外部而言它的内部实现细节是隐藏的,暴露给外界的只是它的实现方法. ...
- uva 10918 - Tri Tiling(规律)
题目链接:uva 10918 - Tri Tiling 题目大意:给出n,计算用1*2的瓷砖有多少种方法铺满3*n的地方. 解题思路:和uva 10359 - Tiling有点相似,不过难度会比较大, ...
- centos下网口vlan设置
如果要使vlan之间进行通信,我们通常会使用三层交换机或者路由器子接口模式来做.Linux上关于VLAN与Cisco交换机中继连接,也是可以实现其互相之间的通信的. 环境:RHEL 5.2 最小化安装 ...