MySQL学习
文章平均质量分 59
Noblegasesgoo
一只苦逼的大学软件工程小萌新,目前更新的自己的学习日记博客,绝大多数都是从课程中得到的代码内容并自己加以细致的注释得来的,在我之后更深的学习之后,我会逐渐修改我的之前博客内容,添加上属于真正自己的示例,希望大家能够多多包涵,github/gitee同名
展开
-
以对话的形式说MySQL!
MySQL 题目及答案个人整理学习(持续更新)原创 2022-02-27 12:50:16 · 965 阅读 · 0 评论 -
MySQL高级-分库分表简介
水平切分水平切分又叫做 Sharding,它是将同一个表中的记录横向拆分到多个结构相同的表中。当一个表的数据不断增多时,Sharding 是必然的选择,它可以将数据分不到集群的不同节点上,从而缓存单个数据库的压力。比如说一个用户信息表,太长了,我们按照某个标准给同样的一张表分为多个不同的多张表,存储在不同的从数据库中,当然数据量特别大才有必要。优点表关联关系基本能够在数据库端全部完成。不会存在那种超大型数量和高负载的表遇到瓶颈的问题。应用程序端整体架构改动相对较少。事务处理起来会相对简单原创 2022-02-27 12:47:55 · 332 阅读 · 0 评论 -
MySQL高级-主从复制简介
复制的基本原理slave(从主机)会从 master(主主机)读取 binlog 来进行数据同步。三步骤 + 原理图MySQL的复制是异步且串行化的。第一步:master 将改变记录到它的 binlog 中,这些记录过程叫做二进制日志时间,binary log events第二步:slave 将 master 的binary log events 通过 I/O线程 拷贝到它的中继日志(relay log)。第三步:slave 中重做中继日志中的事件,将改变应用到自己的数据库原创 2022-02-27 12:46:39 · 703 阅读 · 0 评论 -
MySQL高级-事务与锁的机制
锁的概述定义锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除了传统的计算机资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问一致性,有效性,是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素,从这个角度说,锁对数据库而言显得尤为重要,也更加复杂。生活中的例子比如你购物,物品库存只有一件了,有别人在和你同时抢购,那么这到底是你抢到了还是他抢到了。这里肯定要用到事务,我们先从库存表中取出物品数量,然后插原创 2022-02-24 15:43:07 · 546 阅读 · 0 评论 -
MySQL高级-查询截取分析
慢查询日志是什么?MySQL的慢查询日志是MySQL提供的一种 日志记录,它用来记录在MySQL中响应时间超过阈值的语句,具体指运行时间超过long_query_tim值的SQL,会被记录到慢查询日志中。由该日志查看哪些SQL超出了我们的最大忍耐时间,找出来超时的,用 explain 分析为什么慢。怎么玩?默认情况下,MySQL数据库没有开启慢查询日志,需要我们手动来设置这个参数。当然如果不是调优需要的话,一般不会启动这个参数。因为开启慢查询日志或多或少会有一些性能上的影响,慢查询日志支持将日志原创 2022-02-24 15:41:09 · 387 阅读 · 0 评论 -
MySQL学习:索引
笔记目录:1. 什么是索引:2.索引的分类:3.与索引有关的语句:4.测试索引:5.索引的一些小贴士:6.索引用到的数据结构:1. 什么是索引:MySQL官方定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。提取句子主干,就可以得到索引本质:索引是数据结构。2.索引的分类:主键索引(PRIMARY KEY)一张表中可以有多个列可以作为主键(不建议使用联合主键),主键是不可以重复的,自带唯一和非空约束,主键索引只能是唯一的。全文索引(FULLTEXT)与引擎有关,原创 2021-01-27 13:33:29 · 167 阅读 · 0 评论 -
MySQL学习:事务
目录:1.事务是什么2.事务的原则1.事务是什么概念:事务就是一个流程,要么都完成,要么流程中一个过程失败,整个流程就失败。例子:/* 好比银行存钱: 存钱的流程为:拿出银行卡->插卡->输入密码->存钱。 以上存钱的流程为一个事务流程,我们可以运用逻辑和生活常识得出,这个流程中哪怕一环出错, 比如密码输错三次,那么你都存不了钱,存钱的这个事务就失败了。 我们把流程中的四个步骤分别抽象成四句SQL语句 那么这四条SQL语句就组成了数据库中的事务,四条S原创 2021-01-23 11:18:01 · 146 阅读 · 0 评论 -
MySQL学习:DQL语言实现查询(终于整理完毕了)
1.DQL(Data Query Language):几个数据库语言中的最核心的语言。数据库中所有简单的查询、复杂的查询都是用DQL。使用频率极高。2.实现过程:2.1简单查询语法:查询表的全部内容:SELECT * FROM 表名;查询表中指定字段内容(未设置别称):SELECT 字段1名称 , ... , 字段n名称 FROM 表名;查询表中指定字段内容(设置别称):有时候我们字段名称起的不是那么容易看懂,那么我们查询出来可能会造成阅读困难,所以原创 2021-01-13 14:46:27 · 2195 阅读 · 4 评论 -
MySQL学习:DML语言的详解
1.1 DML语言(精通):数据操作语言(不是数据控制语言DCL)insertdeleteupdate1.1.1 数据添加(insert):语法:单次单行插入INSERT INTO 表名 (字段名1,字段名2,...,字段名n)VALUES(数值1,数值2,...,数值n);INSERT INTO 表名VALUES(数值1,数值2,...,数值n); 这里可以无字段名,插入自增时可以用 NULL 来占位, 其余一律一一对应(不建议使用)单次多行插入INSERT IN原创 2021-01-12 13:11:07 · 932 阅读 · 2 评论 -
MySQL学习:数据库级别的外键
1. MySQL的数据管理1.1 外键(了解):物理外键:数据库级别的外键,不建议使用。逻辑外键:在应用层面实现(程序实现调用多张不同的表),数据库单纯的作为一张表,只有行(数据)和列(字段),无物理外键。方式一:建表同时建外键 (物理)-- 物理设置外键的过程:CREATE TABLE IF NOT EXISTS `grade`(`grade_id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '年级id',`grade_name` VARCHA原创 2021-01-12 13:09:49 · 464 阅读 · 0 评论 -
MySQL学习:修改和删除数据表字段
1. 修改-- 修改表的名字: ALTER TABLE 表名 RENAME AS 新表名ALTER TABLE student RENAME AS student1;/* modify 不能用来字段重命名,只能修改字段类型和约束条件。 change 可以用来字段重命名,可以用来修改字段类型和约束条件。*/-- 修改表的字段(表的约束修改)-- ALTER TABLE 表名 MODIFY 字段名 列属性;ALTER TABLE student MODIFY age VARCHAR(3);原创 2021-01-12 13:08:28 · 17729 阅读 · 1 评论 -
MySQL学习:数据表的类型
1. MyISAM和InnoDB区别:INNODBMYISAM事务支持支持数据行锁定支持外键约束支持全文索引5.7版本支持支持表空间大小较大(约为My的2倍)较小1.1 常规使用操作:INNODB:安全性高,支持事务的处理,支持多表多用户操作。MYISAM:占用空间小,速度快。1.2 在物理空间存在的位置:所有的数据库文件都存在 data 目录下,本质上来说还是文件的存储,一个文件夹对应一个数据库。2. MYSQL引擎再原创 2021-01-10 13:35:16 · 156 阅读 · 2 评论 -
MySQL学习:创建数据库表
1. 本节题目:1.1 题目要求:目标:创建一个school数据库。创建学生表(列,字段)。学号(int)、登陆密码(varchar(20))、性别(varchar(2))、出生日期(datetime)、家庭住址(varchar(100))、Email(varchar(20))。要求:使用SQL语句实现。注意:()号使用英文格式。表的名称和字段尽量用 `` 括起来防止与某些关键字冲突。字符串使用英文 ’ ’ 括起来。一般一个表只有一个主键,主键写在属性定义之后。1.2 SQL语原创 2021-01-10 13:33:38 · 2355 阅读 · 0 评论 -
MySQL学习:数据库的字段属性
1.Unsigned(整数类型可用):无符号的整数。声明了该列不能声明为负数。2.zerofill:0 填充的。不足的位数,使用0来填充,eg:int (3)假设此时是 5 ,他会自动填充为 005 。3.Auto Incr(自增):自增,他默认会自动再上一条记录的基础上 + 1。通常我们用来设计唯一的主键,index,必须是整数类型。自增的起始值和步长我们都可以自定义。4.Null /Not Null(非空):如果设置为非空,如果不给它赋值,就会报错。如果设置为空也就原创 2021-01-10 13:32:11 · 550 阅读 · 0 评论 -
MySQL学习:列的数据类型
1.数据库的列类型(高亮表示常用)注意:1个字节 = 8个比特数值(按升序排列)整型:tinyint:极小的整型数据,1个字节。smallint :较小的整型数据,2个字节。mediumint:中等大小的整型数据,3个字节。int:标准大小的整型数据,4个字节。bigint:较大的整型数据,8个字节。浮点型:float:单精度浮点型,4个字节。double:双精度浮点型,8个字节。(精度问题)decimal:字符串形式浮点数,金融计算的时候一般使用该数据类型。字符串原创 2021-01-10 13:30:34 · 148 阅读 · 1 评论 -
MySQL学习:操作数据库语句
层级关系:操作数据库 > 操作数据库中的表 > 操作数据库中表的数据学习技巧:对照sqlyog的可视化对比历史记录来查看操作的代码过程。固定的语法或者关键字强行记住精通。mysql关键字不区分大小写1.操作数据库(了解和熟练)1.1创建数据库:CREATE DATABASE [IF NOT EXISTS] `数据库昵称`-- CREATE创建 IF NOT EXISTS如果不存在的话([]代表可选)。 1.2删除数据库DROP DATABASE [IF EXIST.原创 2021-01-10 13:28:20 · 979 阅读 · 6 评论 -
MySQL学习:基本的命令行操作
1.Mysql数据库的基本命令sql语句mysql -u root -p -- 连接数据库update mysql.user set authentication_string=password('*******') where user = 'root' and Host = 'localhost'; -- 修改用户密码flush privileges; -- 刷新权限------------------------------------------------------ -- 所有语原创 2021-01-10 13:26:42 · 186 阅读 · 0 评论