MySQL教程|菜鸟教程系统复习的时候有一些知识点还没掌握透的或者思维方式还没完全跟上的地方,写了一个笔记,讲道理此笔记对除我之外的任何读者不具有任何实用价值,只针对我在复习MySQL基础过程中的查漏补缺。

MySQL查询:

MySQL不支持全连接,所以用左连接+union+右连接实现完全连接。

MySQL中union操作符用于连接两个以上的select语句的结果组合到一个查询结果中。

多个select语句union时会删除重复的数据。

NULL值处理:

MySQL中 NULL=NULL 返回false,所以用is null/is not null 来操作值为NULL的字段。

任何值=NULL 都返回false.

正则表达式:

给出正则模式用于REGEXP操作符

regexp操作符的使用实例:查询user表中字段name以wu开头的所有记录

select * from user where name regexp '^wu';

MySQL事务:

使用场景:处理操作量大、复杂度高的数据。操作量大是指关联较多的数据。

在MySQL中只有使用了Innodb数据库引擎的库、表才支持事务。

使用作用:维护数据完整性

事务满足4个特性(ACID):

原子性、一致性、隔离性、持久性

一致性:在事务开始之前及事务的结束之后,数据的完整性没有被破坏

隔离性:控制事务并发访问的级别

MySQL存储过程:

输入参数 in:

  存储过程可访问输入参数的初始值,可在存储过程内部修改,但不能将修改结果返回。

输出参数 out:

  存储过程不可访问输出参数的初始值,可在存储过程内部修改,并且可以将修改结果返回。

输入参数、输出参数的区别可以理解为java中参数传递的值传递和引用传递的区别。

输入输出参数 inout:

  存储过程既能访问 inout参数的初始值,也能在存储过程内部修改值并且将修改结果返回。

索引:

使用索引可快速访问表中特定的信息,索引是对表中一列或多列的值进行排序的一种结构,类似书籍的目录。

创建索引会提高查询效率,但会降低更新表的效率,因为更新数据不但要保存数据,还需要维护表中的索引文件,因此索引的使用场景是在数据量大且更新操作少的表中。

MySQL序列:

  可设置除主键之外的其他自增字段。

以上是对知识点的查漏补缺,下面是关于处理数据过程中思维方式的应用。

重复数据操作:

防止重复数据出现:表设计时可通过对不允许重复的一列或几列进行联合主键限制,或通过unique设置单列的唯一值属性来限制。

统计重复数据:统计person表中lastname、firstname都不重复并且记录数大于1条的数据

select count(*) as rep ,lastname,firstname from person

group by lastname,firstname

having on rep>1;

思维模式:

确定重复列 lastname firstname

在列选择列表(select 后的字段)列出重复列及count(*)

在group by 中列出重复列

Having 子句设置重复数限制

过滤重复数据的两种操作:

1.select distinct ...

2.select ... group by x,y

删除重复数据的两种操作:

1.通过临时表

过滤重复数据插入临时表

删除原表

将临时表重命名为原表

2.通过添加索引或主键来删除表中重复数据

alter ignore table person add primary key(lastname,firstname);--多列不重复

alter table person add unique(firstname);--单列不重复

MySql基础补漏笔记的更多相关文章

  1. mysql基础知识笔记

    Mysql基础笔记 环境配置 基本概念 mysql命令行 进入 use show 查询 select order by where like 数据过滤regexp concat 文本函数 日期函数 数 ...

  2. mysql基础itcast笔记

    1. 课程回顾 mysql基础 1)mysql存储结构: 数据库 -> 表 -> 数据   sql语句 2)管理数据库: 增加: create database 数据库 default c ...

  3. 尚硅谷MySQL基础学习笔记

    目录 写在前面 MySQL引入 数据库的好处 数据库的相关概念 数据库存储数据的特点 MySQL服务的启动和停止 MySQL服务端的登录和退出 MySQL的常用命令 MySQL语法规范 DQL(Dat ...

  4. MYSQL基础--学习笔记

    最近一段时间,系统的学习了下mysql相关知识,当然都是比较基础的,现在贴出来,以供参考备忘--帅帅的小猪猪 创建用户:CREATE USER 'sampadm'@'localhost' IDENTI ...

  5. MySQL基础学习笔记

    一.数据库基本概念 1.1 数据库 - Database 从字面意思看,数据库就是一个存储数据的仓库.从计算机的角度来讲,数据库(Datebase)是按照数据结构来组织.存储和管理数据的仓库. 简单来 ...

  6. 初学MySQL基础知识笔记--01

    本人初入博客园,第一次写博客,在今后的时间里会一点点的提高自己博客的水平,以及博客的排版等. 在今天,我学习了一下MySQL数据库的基本知识,相信关于MySQL的资料网上会有很多,所以我就不在这里复制 ...

  7. Mysql基础篇(笔记)

    mysql数据库是由DB跟DBMS跟sql组成 DB 数据库仓库 DBMS 数据库管理系统 SQL 一门通用的数据库语言   数据库启动命令 : 关闭->net stop MySQL || 开启 ...

  8. MySQL基础原创笔记

    对表的增删改操作: 创建表: create table student (          id  int  primary key  auto_increment,          name   ...

  9. MySQL基础原创笔记(一)

    对表的增删改操作: 创建表: create table student (          id  int  primary key  auto_increment,          name   ...

随机推荐

  1. 由Kaggle竞赛wiki文章流量预测引发的pandas内存优化过程分享

    pandas内存优化分享 缘由 最近在做Kaggle上的wiki文章流量预测项目,这里由于个人电脑配置问题,我一直都是用的Kaggle的kernel,但是我们知道kernel的内存限制是16G,如下: ...

  2. 有关lightning页面中页面加载时间计数器颜色分别表示的时间范围的问题

    之所以要转载这篇文章的原因是,有一次调查lightning中右上角有个页面加载时间控件颜色分别代表多少时间范围的问题,搜索查阅了很多资料和文件,最终在一篇有关Lighthouse前端性能优化测试工具的 ...

  3. (转)Bypass xss过滤的测试方法

    from wooyun//五道口杀气 · 2014/01/02 19:16 0x00 背景 本文来自于<Modern Web Application Firewalls Fingerprinti ...

  4. 使用FileZilla Pro S3协议访问七牛云对象存储

    偶然发现FileZilla还有Pro版本,主要是比免费版多了一些协议支持,也偶然发现七牛云支持了S3协议接口,这样刚好弥补了其没有FTP的不足,于是找官方文档,折腾一下,使用FileZilla Pro ...

  5. 远程桌面软件RDCMan汉化版

    自己汉化的远程桌面控制软件RDCMan--Remote Desktop Connection Manager(RDCMan) v2.7 简体中文汉化版. 介绍 Remote Desktop Conne ...

  6. Linux环境下的network IO

    同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的.所以先限定一下本文的上下文. 本文讨论的背景是Linux环境下的network IO. ...

  7. Java 构造方法总结

    Java 构造方法总结 ①方法名和 类名相同 ②在方法名的前面没有返回值类型的声明 ③在方法中不能使用return语句返回一个值 ④在创建对象时,要调用new,如:book b1=new book() ...

  8. Docker基础学习相关网址

    中文学习地址:https://yeasy.gitbooks.io/docker_practice/content/ 官网介绍地址:https://www.docker.com 官网学习地址:https ...

  9. idea中使用Live Template自动生成方法所有参数打印

    一 新建模板 二 设置代码模板 三 设置变量 表达式是支持groovy脚本的,所以这里写一个groovy脚本,生成给定格式的日志字符串,methodParameters()是idea内置的函数,获取方 ...

  10. DRF框架之Serializer序列化器的反序列化操作

    昨天,我们完成了Serializer序列化器的反序列化操作,那么今天我们就来学习Serializer序列化器的最后一点知识,反序列化操作. 首先,我们定要明确什么是反序列化操作? 反序列化操作:JOS ...