MySql基础补漏笔记
在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基础补漏笔记的更多相关文章
- mysql基础知识笔记
Mysql基础笔记 环境配置 基本概念 mysql命令行 进入 use show 查询 select order by where like 数据过滤regexp concat 文本函数 日期函数 数 ...
- mysql基础itcast笔记
1. 课程回顾 mysql基础 1)mysql存储结构: 数据库 -> 表 -> 数据 sql语句 2)管理数据库: 增加: create database 数据库 default c ...
- 尚硅谷MySQL基础学习笔记
目录 写在前面 MySQL引入 数据库的好处 数据库的相关概念 数据库存储数据的特点 MySQL服务的启动和停止 MySQL服务端的登录和退出 MySQL的常用命令 MySQL语法规范 DQL(Dat ...
- MYSQL基础--学习笔记
最近一段时间,系统的学习了下mysql相关知识,当然都是比较基础的,现在贴出来,以供参考备忘--帅帅的小猪猪 创建用户:CREATE USER 'sampadm'@'localhost' IDENTI ...
- MySQL基础学习笔记
一.数据库基本概念 1.1 数据库 - Database 从字面意思看,数据库就是一个存储数据的仓库.从计算机的角度来讲,数据库(Datebase)是按照数据结构来组织.存储和管理数据的仓库. 简单来 ...
- 初学MySQL基础知识笔记--01
本人初入博客园,第一次写博客,在今后的时间里会一点点的提高自己博客的水平,以及博客的排版等. 在今天,我学习了一下MySQL数据库的基本知识,相信关于MySQL的资料网上会有很多,所以我就不在这里复制 ...
- Mysql基础篇(笔记)
mysql数据库是由DB跟DBMS跟sql组成 DB 数据库仓库 DBMS 数据库管理系统 SQL 一门通用的数据库语言 数据库启动命令 : 关闭->net stop MySQL || 开启 ...
- MySQL基础原创笔记
对表的增删改操作: 创建表: create table student ( id int primary key auto_increment, name ...
- MySQL基础原创笔记(一)
对表的增删改操作: 创建表: create table student ( id int primary key auto_increment, name ...
随机推荐
- 5.JavaSE之数据类型详解
数据类型: 强类型语言: 要求变量的使用严格要求符合规定,写错了就不行,所有变量都必须先定义后才能使用,否则是不能使用的. 比如Java.C++都是强类型语言,也就是说,一旦定义了一个变量,只定义了某 ...
- 高精度算法(C/C++)
高精度算法 (C/C++) 做ACM题的时候,经常遇到大数的加减乘除,乘幂,阶乘的计算,这时给定的数据类型往往不够表示最后结果,这时就需要用到高精度算法.高精度算法的本质是把大数拆成若干固定长度的块, ...
- java面试|精选基础(1)
以下题目是从面试经历和常考面试题中选出有点儿意思的题目,参考答案如有错误,请联系小编指正,感谢! 1.反射 1.1定义 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法 ...
- 团队项目-Beta冲刺3(七个小矮人)
团队项目-Beta冲刺3(七个小矮人) 一.格式描述 这个作业属于哪个课程 https://edu.cnblogs.com/campus/xnsy/GeographicInformationScien ...
- 数据库中事务的ACID特性
数据库中事务的ACID特性 前言前面我们介绍过数据库中 带你了解数据库中JOIN的用法 与 带你了解数据库中group by的用法 的相关用法.本章节主要来介绍下数据库中一个非常重要的知识点事务,也是 ...
- equals()和hashCode()使用总结
equals()和hashCode()使用总结 equals() Object类中的equals方法和"=="是一样的,没有区别,即俩个对象的比较是比较他们的栈内存中存储的内存地址 ...
- PYTHON经典算法-二叉树的后序遍历
二叉树的后序遍历 问题描述 给出一个二叉树,返回其节点值的后序遍历 问题示例 给出一个二叉树{1,x,2,3}其中x表示空.后序遍历为[3,2,1] 这个图怎么画的呢?答案 需要注意的地方是:bina ...
- servlet 深入了解
servlet 作用 在Java web b/s架构中,servlet扮演了重要的角色,作为一个中转处理的容器,他连接了客户端和服务器端的信息交互和处理.简单来说,客户端发送请求,传递到servle ...
- Servlet概念及配置
Servlet 简介: servlet就是sun公司开发动态web的一门技术 Sun在这些API中提供一个接口叫做:Servlet,如果逆向开发一个Servlet程序,只需要完成两个小步骤: 1.编写 ...
- Capslock+程序介绍
一直为编程时方向键不在盲打区域苦恼,今天接触了一个非常好的软件Capslock+. 软件特别小,一共只有九百多K,甚至不能称为软件,只能算一个很小的脚本了.但解决了我非常大的一个难题.安装好软件后可以 ...