性能测试基础---SQL基础
·数据库相关:
·范式:NF。关系型数据库的设计规则。
范式总计有6种:
1NF\2NF\3NF\BCNF\4NF\5NF
·范式的实现是从低到高的,比如说首先要实现的就是1NF,才能继续实现2NF,依次类推。
·范式的实现,一般来说采取的就是拆表的方法。
·范式越高,实现的成本也就越高。因此在实际生产中,一般来说,只需要达到3NF即可。
·1NF:没有重复的列。
·2NF:没有重复的行。
·3NF:没有可传递的依赖关系(主从关系)。
做法就是拆表。
·键:在关系型数据库中,有以下几个特殊的键:
·超键:是指在数据库中能够唯一标识记录的属性or属性集。
PS:一般来说,超键都是由数据库本身来生成和管理的。
·候选键:是指在一个表(集合、关系)中,能够唯一标识记录的属性or属性集。
一个表中可以有多个。
·主键:是指在一个表(集合、关系)中,被定义为主键的属性or属性集(候选键)。
一个表中只能有一个。
·外键:如果表B中的属性(列)M的取值是完全依赖(来源)于表A中的属性(列)N的取值,且属性N是表A的候选键,则称属性M为表B的外键。
PS:在数据库层面,本身只会去实现超键。对于候选键、主键和外键,都是由用户(DBA)来定义并且告知数据库的。一旦定义,则数据库就会对数据进行检测,确保符合定义的要求。
从理论上,表中的任何字段都可以定义为候选键、主键或者外键(符合语法要求)。
但是,我们平时在使用数据库时,一定要保证定义符合业务要求、符合现实数据的规范。
·约束:数据库是通过约束来实现数据存储的实体完整性和参照完整性的。
一般来说,约束有以下几种:
·唯一约束:unique,一旦属性被定义为unique,则表示要唯一。
·主键约束:primary key,主键本身就表示具有唯一和非空约束,并且会自动添加唯一索引。
·外键约束:foreign key,定义为外键,符合外键的定义。
PS:外键和其所引用的键,要求类型和长度保持一致。
·非空约束:not null,表示要求数据非空。
·检查约束:check,是根据业务数据本身的业务特点,额外添加的数据约束条件。
enum(枚举).
·视图和索引:
·视图:view。
create view 视图名 as select语句。
作用,是简化查询。查询数据还是取决于原始的select 语句。
并不能提升查询速度。
除了物化视图以外。
物化视图其实就是一张新的实表。
·索引:index。
就是目录。
可以提高查询的效率(速度).
·explain,用来查看执行计划的。
可以初步判断sql语句的性能。
性能测试基础---SQL基础的更多相关文章
- [SQL] SQL 基础知识梳理(一)- 数据库与 SQL
SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 目录 What's 数据库 ...
- [SQL] SQL 基础知识梳理(二) - 查询基础
SQL 基础知识梳理(二) - 查询基础 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5904824.html 序 这是<SQL 基础知识梳理( ...
- [SQL] SQL 基础知识梳理(三) - 聚合和排序
SQL 基础知识梳理(三) - 聚合和排序 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5926689.html 序 这是<SQL 基础知识梳理 ...
- [SQL] SQL 基础知识梳理(四) - 数据更新
SQL 基础知识梳理(四) - 数据更新 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5929786.html 序 这是<SQL 基础知识梳理( ...
- [SQL] SQL 基础知识梳理(五) - 复杂查询
SQL 基础知识梳理(五) - 复杂查询 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5939796.html 序 这是<SQL 基础知识梳理( ...
- 黑马程序员+SQL基础(上)
黑马程序员+SQL基础 ---------------<a href="http://edu.csdn.net"target="blank">ASP ...
- 15个初学者必看的基础SQL查询语句
本文由码农网 – 小峰原创翻译,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划! 本文将分享15个初学者必看的基础SQL查询语句,都很基础,但是你不一定都会,所以好好看看吧. 1.创建表和数据插 ...
- mysql使用基础 sql语句(一)
csdn博文地址:mysql使用基础 sql语句(一) 点击进入 命令行输入mysql -u root -p,回车再输入密码,进入mysql. 终端命令以分号作为一条语句的结束,可分为多行输入,只需 ...
- Oracle SQL 基础学习
oracel sql 基础学习 CREATE TABLE USERINFO ( ID ,) PRIMARY KEY, USERNAME ), USERPWD ), EMAIL ), REDATE DA ...
随机推荐
- Salesforce LWC学习(八) Look Up组件实现
本篇参考https://www.salesforcelwc.in/2019/10/lookup-in-lwc.html,感谢前人种树. 我们做lightning的时候经常会遇到Look up 或者MD ...
- .netcore使用MimeKit发送邮件
以163邮箱为例,借助MimeKit nuget安装:MimeKit类库,源码地址:https://github.com/jstedfast/MimeKit 发送方法如下: #region 邮件发送 ...
- leetcode-19:给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * Lis ...
- Lab2:物理内存管理
前言 现在内存管理的方法都是非连续内存管理,也就是结合段机制和分页机制 段机制 段地址空间 进程的段地址空间由多个段组成,比如代码段.堆栈段和符号表段等等 段对应一个连续的内存"块" ...
- 【原】无脑操作:Markdown可以这样玩
一.背景: Markdown是一种纯文本格式的标记语言.通过简单的标记语法,可以使普通文本内容具有一定的格式.因为语法简单明了.功能又比纯文本强大,所以很适合作为开发人员的书写工具.Markdown的 ...
- 【C语言】获得数组长度
c语言中,定义数组后可以用sizeof命令获取数组的长度(可容纳元素个数): 如: { int data[5]; int length; length=sizeof(data)/sizeof(data ...
- ubuntu docker 下mongodb集群和分片
首先我们计划启动了三个mongo服务:master,salve,arbiter 1.准备工作 新建文件夹如图(每个文件夹下面有db和configdb文件夹): 生成认证文件并修改权限 openssl ...
- 从nsurlsession、Alamofire到moya
更好的理解(抽象).更少的构建(配置).更方便的表达(语言) 一.iOS系统的网络编程(DSL概念) ios缺省的网络编程只是给出了网络编程的基本概念: urlsession.request.resp ...
- (7)ASP.NET Core 中的错误处理
1.前言 ASP.NET Core处理错误环境区分为两种:开发环境和非开发环境.●开发环境:开发人员异常页.●非开发环境:异常处理程序页.状态代码页.在Startup.Configure方法里面我们会 ...
- Echarts 学习系列(3)-Echarts动态数据交互
写在前面 上一小节,我们总结了折线(面积)图.柱状(条形)图.饼(圆环)图类型的图表. 但是,都是静态的.接下来的,这一小节,总结的是Echarts 动态数据的交换. 前置条件 开发环境:win10 ...