·数据库相关:

·范式: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基础的更多相关文章

  1. [SQL] SQL 基础知识梳理(一)- 数据库与 SQL

    SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 目录 What's 数据库 ...

  2. [SQL] SQL 基础知识梳理(二) - 查询基础

    SQL 基础知识梳理(二) - 查询基础 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5904824.html 序 这是<SQL 基础知识梳理( ...

  3. [SQL] SQL 基础知识梳理(三) - 聚合和排序

    SQL 基础知识梳理(三) - 聚合和排序 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5926689.html 序 这是<SQL 基础知识梳理 ...

  4. [SQL] SQL 基础知识梳理(四) - 数据更新

    SQL 基础知识梳理(四) - 数据更新 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5929786.html 序 这是<SQL 基础知识梳理( ...

  5. [SQL] SQL 基础知识梳理(五) - 复杂查询

    SQL 基础知识梳理(五) - 复杂查询 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5939796.html 序 这是<SQL 基础知识梳理( ...

  6. 黑马程序员+SQL基础(上)

    黑马程序员+SQL基础 ---------------<a href="http://edu.csdn.net"target="blank">ASP ...

  7. 15个初学者必看的基础SQL查询语句

    本文由码农网 – 小峰原创翻译,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划! 本文将分享15个初学者必看的基础SQL查询语句,都很基础,但是你不一定都会,所以好好看看吧. 1.创建表和数据插 ...

  8. mysql使用基础 sql语句(一)

    csdn博文地址:mysql使用基础 sql语句(一)  点击进入 命令行输入mysql -u root -p,回车再输入密码,进入mysql. 终端命令以分号作为一条语句的结束,可分为多行输入,只需 ...

  9. Oracle SQL 基础学习

    oracel sql 基础学习 CREATE TABLE USERINFO ( ID ,) PRIMARY KEY, USERNAME ), USERPWD ), EMAIL ), REDATE DA ...

随机推荐

  1. php获取客户端公网ip代码

    <?php /*如果是本地服务器获取客户端的ip地址是 127.0.0.1 如果是域名服务器获取客户端的是公网ip地址*/ function get_client_ip() { $ipaddre ...

  2. 分布式事务解决方案(一) 2阶段提交 & 3阶段提交 & TCC

    参考文档:http://blog.jobbole.com/95632/https://yq.aliyun.com/articles/582282?spm=a2c4e.11163080.searchbl ...

  3. 免费https证书

    https://certbot.eff.org/lets-encrypt/ubuntuother-nginx https://ruby-china.org/topics/31942 https://l ...

  4. CUDA C编程入门

    最近想用cuda来加速三维重建的算法,就先入门了一下cuda. CUDA C 编程 cuda c时对c/c++进行拓展后形成的变种,兼容c/c++语法,文件类型为'.cu',编译器为nvcc.cuda ...

  5. 第三节:EF Core上下文DbContext相关配置和生命周期

    一. 配置相关 1. 数据库连接字符串的写法 (1).账号密码:Server=localhost;Database=EFDB01;User ID=sa;Password=123456; (2).win ...

  6. Effective.Java第56-66条(规范相关)

    56.  为所有已公开的API元素编写文档注释 要正确地记录API,必须在每个导出的类.接口.构造方法.方法和属性声明之前加上文档注释.如果一个类是可序列化的,还需要记录它的序列化形式. 文档注释在源 ...

  7. SpringCloud Stream使用案例

    官方定义 Spring Cloud Stream 是一个构建消息驱动微服务的框架. 应用程序通过 inputs 或者 outputs 来与 Spring Cloud Stream 中binder 交互 ...

  8. Ubuntu Docker搭建GitLab以及常规配置使用

    安装启动实例 1.首先创建一个目录用于存放配置 sudo docker pull docker.io/gitlab/gitlab-ce sudo mkdir -p /root/docker/gitla ...

  9. 一文搞懂 Flink 网络流控与反压机制

    https://www.jianshu.com/p/2779e73abcb8 看完本文,你能get到以下知识 Flink 流处理为什么需要网络流控? Flink V1.5 版之前网络流控介绍 Flin ...

  10. 记一次Spring boot集成mybatis错误修复过程 Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.

    最近自己写了一份代码签入到github,然后拉下来运行报下面的错误 Error starting ApplicationContext. To display the conditions repor ...