MySQL
MySQL 实战学习,了解SQL内部执行过程,抽茧剥丝。掌握并熟练的应用使用。
冯佳兴
一名非常热爱计算机的 Boy,技术是一门哲学,愿意和我一起研究新的技术吗?
本人坚持自主学习,站在巨人肩膀上学习,善于分享。
我会经常分享系列基础博客,希望大家喜欢,有什么问题记得关注留言哦!
展开
-
【SQL 必知必会】性能篇 06. 乐观锁与悲观锁
你还记得操作系统里面锁么?数据库中为什么也需要锁? 锁的分类有哪些 什么是乐观锁,什么是悲观锁?实现方式是什么? 多个事务并发执行,如何降低死锁发生的概率呢?...原创 2020-04-08 21:36:25 · 160 阅读 · 0 评论 -
数据库索引(Index)
1.什么是索引? 索引就好比目录,什么是索引这个问题,就好比什么是目录的问题,那目录是用来做什么的?新华字典为什么要用目录? 数据库中的索引是某个表中一列或多列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。2.为什么要用索引? 字典没有目录,就需要一页一页的去找,有了目录,查询目录即可,检索速度会得到很大的提高。——提高查询效率。 3.为什么有了...原创 2019-01-22 14:59:47 · 335 阅读 · 10 评论 -
SQLServer 插入语句 !!!
插入语句成功以后,返回具体某一列的值。output inserted.列名因为返回的是某一列的值,不在是受影响的行数,所以用到了ExcuteScalar().未完待续! ...原创 2019-01-03 21:01:12 · 7554 阅读 · 3 评论 -
ADO.NET (ActiveX Data Objects)五大对象
1.什么是ADO.NET? 一组类库,.NET 环境下通过程序来访问数据库。就是一个访问数据库的接口。草图如下:就是一个接口,连接应用程序与数据库,也可以封装Sqlcommand命令,返回查询结果。2.为什么学习ADO.NET ? 用户不需要去学习sql,只需要搭建一个web 或者winform 界面操作数据库数据。3.ADO.NET 的组成:Conne...原创 2019-01-02 21:41:45 · 990 阅读 · 4 评论 -
SQLServer中常用的字符串函数与日期函数
1.字符串函数--len()计算字符的个数print len('Hi~你好吗?')--datalength() 返回占用的字节的个数,不是字符串的函数print datalength('Hi~你好吗?')--我这的问号写的是英文,占用一个字节,中文就占用两个print datalength(N'Hi~你好吗?')--前面加N 表示Union存储,每个字符都占用两个自己...原创 2019-01-02 19:38:17 · 1023 阅读 · 3 评论 -
SQLserver—模糊查询
今天我们来学习一下模糊查询,那么我们先认识以下几个通配符的含义 _ 表任意的单个字符 % 表示多个任意字符 ^ 表示非 [] 表示筛选范围,[]可以将通配符进行转 _ 任意单个字符 % 表示任意多个字符--查找姓冯,且名字为两个字,姓名长度为二select * from T_table where name like'冯_'--查找姓冯...原创 2019-01-01 14:03:02 · 5753 阅读 · 11 评论 -
SQL Server 聚合函数与分组学习(group by)
一、SQLServer里面的常用的五种聚合函数。1.Sum(和)-—对于NULL值默认为02.MAX(最大值)MIN(最小值)3.AVG (平均值)—不统计空值,例如存在有四个人,但是只有三个人有成绩,平均成绩为:总和/34.COUNT(数量)--统计所有人分数总和 select sum(score) from T_table --统计表中一共有多少条记录 sele...原创 2019-01-01 10:42:20 · 7898 阅读 · 8 评论 -
数据库的检索(select)
今天我们学习一下数据库检索语句,由于经常用到,有需求的小伙伴欢迎来查看哦!一、简单的查询 --获取所以列select * from T_table--获取部分列select id, title from T_table效果展示: 在...之间:Between.. and.. 相当于大于等于80 and 小于等于100 select id from T_tabl...原创 2019-01-01 09:41:55 · 778 阅读 · 5 评论 -
触发器(Trigger)
触发器(Trigger)概念 1)触发器是一种特殊的存储过程,主要有操作事件(INSERT,UPDATE,DELETE)触发而自动执行,不是由用户直接调用,创建触发器是会对其进行定义,以便在特定的表或列作特定类型的数据修改时执行。2)触发器是一种过程完整性约束,是一段程序,该程序在特定时刻被自动触发执行,比如在一次更新操作之前执行,或者更新操作之后执行。作用1)可以强制...原创 2018-11-17 10:42:52 · 1446 阅读 · 77 评论 -
SQL(数据库操作语句)
最近学习牛腩新闻发布系统,感觉还是有必要总结一下数据库操作语句的。1.创建数据库:create database [数据库名]2.删除数据库drop database [数据库名]3.创建一个数据表,并设置各个字段--建立新闻表create table news(id int identity (1,1)primary key, --设置id为主键,自增...原创 2018-11-15 15:38:50 · 308 阅读 · 8 评论 -
【SQL 必知必会】性能篇 02. 范式设计
【前言】 最近做数据库中的题,总是遇到关于范式的问题,隐隐约约知道点,还是又不知道,知道是怎么回事,却无法用正确的属于说出来,毕竟正确的术语说出来显得高大上,我们是学数据库的这方面的人一样,就像说相声有自己的专业行话。于是花费了很长时间对范式做了了解,还要感谢金颖小伙伴对我的耐心指点,还有CoCo吴的指导,做出了以下总结,欢迎小伙伴们一起来探讨。数据库范式 遵循规则:不存...原创 2017-09-14 17:30:46 · 654 阅读 · 49 评论 -
数据库系统原理
第二阶段的自考课本开始几天了,最近一直再看数据库系统原理,什么函数依赖?什么模型之间的转换?确实有点压力,不过难度有是一定的,看到大家都如此努力的学习,那就加紧脚步吧!下面是我对数据库原理系统前三章的总结:整体感想,人们为了更加方便,然后想方设法的制造各种方便的规则,数据库前几章节,就是一部小小的历史,告诉你它是如何发展的,历史每一个阶段的优缺点,然后让你掌握他设计的规则。其实...原创 2017-08-07 20:29:42 · 4510 阅读 · 35 评论 -
【SQL 必知必会】 性能篇 01. 如何考虑数据库调优
1. 数据库调优的对象与目标对象:整个DBMS,包括 SQL查询,数据库部署配置,架构等目标:数据库响应时间快,吞吐量更大。2. 调优考虑的维度有哪些用户反馈:是最及时的,是最直接的。日志分析:通过数据库日志以及操作系统日志定位问题。服务器资源使用监控:监控服务器的cpu、内存、I/O等使用情况,实时了解服务器性能使用,与历史情况对比。数据库内部情况监控:活动会话(Acti...原创 2020-04-04 14:30:11 · 446 阅读 · 0 评论 -
【SQL 必知必会】 基础篇 01. 超键、候选键、主键、外键
序言—最近看数据库系统原理课本,有一些小的知识点看的确实让人傻傻的分不清,即使学心理学的我,也不知道它说的是什么,昨天小组开会讨论,大家的理解也各有不同,其中的主键、候选键、超键、外键这些看似很小的概念,讨论了整整半个小时。下面让我给大家说说我的理解!首先大家了解一下什么是关键码,以及关键码在不同场合下代表着什么。在数据结构中关键码指的是数据元素中能起标识作用的数据项,例如,书目信息...原创 2017-08-01 19:26:25 · 16430 阅读 · 54 评论 -
【SQL 必知必会】性能篇 04.深入浅出索引(一)
索引在SQL优化中占很大的比重,好的索引能提高效率,但是有时候加了索引,查询效率反而降低。索引好比书本的目录,通过目录我们很快定位到要查找的内容,不使用反而会大大降低查询效率。如果目录过多2. 问题什么时候使用索引,什么时候不使用?索引的类型都有哪些?3. 索引不是万能的索引好比目录一样,数据量大的时候,如果不加索引,是通过表一个个扫描的。但是加了索引以后,先在索引中直接查找...原创 2020-04-05 20:54:16 · 2626 阅读 · 2 评论 -
【SQL 必知必会】性能篇 05. 深入浅出索引(二)如何通过索引让SQL 查询效率最大化?
上一篇 深入浅出索引(一),我们讲到了索引的基本概念,通过索引可以提高我们的查询效率,同时学习了索引的常用模型,索引的种类,在数据量少的时候,以及数据量重复度高的情况下不适合使用索引。今天我们学习一下通过索引如何让查询效率最大化,到底什么情况下使用索引。 数据表字段具有哪些特征时,使用索引呢? 索引失效的情况有哪些,如何避免?1. 具体情况下使用索引呢1.1 字段具有唯一性的限制,...原创 2020-04-06 15:19:08 · 512 阅读 · 0 评论 -
【MySQL 实战】04. MySQL 主从复制(双主双从)
角色ip 地址简称Master1192.168.183.134134 主Slave1192.168.183.133133 从Master2192.168.183.128128 主Slave2192.168.183.135135 从修改134主配置文件 vi /etc/my.cnf#主服务器唯一IDserver-id=1#启用二进制日志log-bin=mysql-bin# 设置不要复制的数据库(可设置多个)binlog-ignore-...原创 2020-07-19 12:02:26 · 283 阅读 · 0 评论 -
【MySQL 实战】03. MySQL 主从复制(一主一从)
1. 原理主动复制原理图:主库负责写,从库负责读,从库需要不断获取主库数据更新到从库。(存在延时)我们知道主库添加数据是要写逻辑日志binlog,从库通过 I/O进程获取主库的binlog文件,然后写入到中转日志文件 Relay log,在从Relay log 中恢复数据。2. 配置134 主服务器配置,首先修改 mysql 配置文件 vi /etc/my.cnf#主服务器唯一IDserver-id=1#启用二进制日志log-bin=mysql-bin# 设置不要复制的数据库(可设置多原创 2020-07-19 10:40:00 · 222 阅读 · 0 评论 -
【MySQL 实战】基础篇:Centos7 安装 MySQL
1. 安装# 下载wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm# 下载安装rpm -ivh mysql57-community-release-el7-8.noarch.rpm# 安装 mysqlserversudo yum install mysql-server# 启动 mysqlservice mysqld.service start获取临时密码 sudo grep 'temporary原创 2020-07-18 10:44:47 · 135 阅读 · 0 评论 -
【MySQL 实战】02. 一条SQL 更新语句是如何具体执行的呢?
我们在 MySQL 实战 01 篇中讲到了一条SQL查询语句是如何执行的? 首先经过连接器进行客户端的连接,权限认证等操作,其次先去缓存中查看,如果缓存中命中则直接返回,如果未命中,则进入分析器,分析器对SQL查询语句进行语法语义分析,优化器执行查询计划,选在最佳执行计划,执行器调用存储引擎的接口,返回要查询的结果集。文章末尾我们讲到了,一条查询语句是这样进行的,那么一条更新语句是如何进行的呢?...原创 2020-04-13 10:47:35 · 274 阅读 · 0 评论 -
【MySQL 实战】基础篇:Win10 安装 MySQL 8.0.16
上次安装就出现了一些问题,没及时总结,同样的问题,又犯错了,在这里总结一下。1. 下载:可在链接最后修改数据库版本。https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.16-winx64.zip解压后如下所示:2. 解压目录手动创建 my.ini 文件,复制一下内容,修改自己的安装目录和数据存目录安装路径,英文,无空格,无...原创 2020-04-08 21:36:47 · 177 阅读 · 0 评论 -
【MySQL 实战】为什么使用B+Tree 数据结构做索引?
待续!原创 2020-04-05 21:19:34 · 330 阅读 · 1 评论 -
【MySQL 实战】01. SQL 查询语句是如何具体执行的呢?
1. 思考我们通常输入一条SQL语句,得到一个返回结果,但是这个SQL 语句的具体执行路径是怎样的呢?今天让我们一起来探究一下 MySQL 查询语句在 MySQL 数据库中具体的执行过程。mysql> select * from player where id=1;我们先看一下MySQL数据库的逻辑架构图,我们可以将MySQL分为服务层,存储引擎层两部分。有时分为三层,连接器独立变为...原创 2020-04-05 11:25:30 · 337 阅读 · 0 评论 -
Java-CURDATE()函数,获取当前日期
声明:本篇博客将持续不断更新,关于日期这一块,把平时用到的都会总结到本篇博客.大家多多关注.获取当前具体的日期和时间-- 获取当前时间SELECT NOW()获取当前日期-- 获取当天日期 (CURRENT_DATE和CURRENT_DATE()是CURDATE()的同义词。)-- 第一种SELECT CURDATE()-- 第二种SELECT DATE(NO...原创 2019-06-25 09:42:18 · 4335 阅读 · 14 评论