MySQL
猴子敲代码
猴子胖成猩猩
展开
-
MySQL八股文面试
1.MySQL有哪些存储引擎(表类型)MyISAM成熟稳定、快速读取,不支持事务,有表锁InnoDB支持事务、外键、数据行锁,空间占用大,不支持全文索引HEAPBOBARCHIVECSV常用的就MyISAM和InnoDB2.myisam和innodb的区别最大的区别就在于事务和锁上myisam不支持事务,适合频繁查询、小数据量、小并发的应用。表锁,不会出现死锁。innodb支持事务,适合插入、更新操作比较多的应用,行锁。3.MySQL数据库,一天五万条左右的增量,预计运维原创 2022-05-24 15:58:53 · 425 阅读 · 0 评论 -
MySQL update语句使用连表(join)
案例1:UPDATE store_out_odd AS a JOIN doc_store_position AS b ON a.`position` = b.`code` AND a.`store_id` = b.`store_id`SET a.`position` = b.id WHERE a.storage_id IS NULL;案例2:UPDATE store_storage AS ssJOIN doc_store_position AS dsp ON ss.`positio原创 2021-09-03 09:55:43 · 5370 阅读 · 0 评论 -
MySQL触发器
先来看看触发器的创建语法CREATETRIGGER `数据库名`.`表名` BEFORE/AFTER INSERT/UPDATE/DELETEON `qrcode`.`<Table Name>`FOR EACH ROW BEGIN#写你的业务逻辑END看语法,可以知道,触发器是针对某一个表,的新增、更新、删除操作进行提前或者结束的监听,并且做出相应的处理。先来看我写的一个触发器,监听的是insert动作,并且是该insert结束时进行,我统计了本次新增后goods_typ原创 2021-08-05 11:35:38 · 132 阅读 · 0 评论 -
mysql事务锁
一般来说TRUNCATE TABLE是毫秒级的命令,不会受到数据量的影响,但是当你要TRUNCATE TABLE的表还有事务锁未提交的时候,就会出现TRUNCATE TABLE执行太慢(其实就是无尽的执行,永远不会结束)。#查询当前未提交的事务锁SELECT * FROM information_schema.INNODB_TRX#根据这个事务的线程ID(trx_mysql_thread_id),用kill命里杀死kill 94362之后你再执行TRUNCATE TABLE就立马成功了。原创 2021-07-19 10:16:40 · 216 阅读 · 1 评论 -
解决MySQL不能存储emoji
ALTER TABLE `你的表` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin这其实就是字符集问题,用上述sql将你的表改为utf8mb4,这牵扯到MySQL的utf8并不是真正的utf8,而utf8mb4才是真正的utf8原创 2021-07-17 17:37:10 · 84 阅读 · 0 评论 -
解决inner join、left join、right join效率慢
场景:当使用关联查询(inner 、left、right join)等进行查询时候,关联条件都已建立索引,但查看执行计划发现并未走索引。原因:两表字段的字符集不相同导致关联查询索引失效解决方案,三选一:...原创 2021-06-19 13:10:08 · 2769 阅读 · 0 评论 -
MySQL DELETE条件使用SELECT结果
先放正确写法DELETE FROM mei_tuan_order_goods WHERE id IN( SELECT MAX(a.id) AS id FROM ( SELECT a.id FROM mei_tuan_order_goods AS a JOIN `mei_tuan_order_main` AS b ON b.id = a.`pid` WHERE b.order_time >= '2021-05-30 17:32:03' ) AS a GROUP BY a.id)原创 2021-06-15 14:59:55 · 4882 阅读 · 1 评论 -
021 ANY与ALL子查询语句
ANY和ALL都是用于WHERE查询的子语句,ANY是只要满足括号里的一个条件就返回true,ALL是必须满足括号里的全部条件才返回true语法:SELECT * FROM 表名 WHERE 字段 ANY(值1,……,值N);SELECT * FROM 表名 WHERE 字段 ALL(值1,……,值N);比如select * from student where 班级=’01’ and age > all (select age from student where 班级=’0原创 2021-05-07 22:37:32 · 308 阅读 · 0 评论 -
020 EXISTS 与 NOT EXISTS 子查询语句
查询学生表中,成绩大于等于70分的学生,只显示前五名,降序排列/*查找分数大于等于70的学生成绩 只要前五名,降序排列*/SELECT * FROM stuINNER JOIN fractionON fraction.`id`=stu.`id`WHERE EXISTS ( SELECT id FROM fraction WHERE javaNum>=70) ORDER BY fraction.`javaNum` DESCLIMIT 0,5;如果 ...原创 2021-05-07 22:35:37 · 223 阅读 · 0 评论 -
017 INNER JOIN ON 多表连接查询语句
INNER JOIN ON 内连接语句,这个语句用于匹配多个表INNER JOIN 关键字语法SELECT 要查询的字段 #可以查询表1的也可以查询表n的也可以是通配符 * FROM table_1 #第一张表INNER JOIN table_2 ON table_2.id = table_1.id #关联第二张表INNER JOIN table_n ON table_n.id = table_n-1.id #第n张表其中 NO 后面是每个表之间的约束,通常是外键关系/*这原创 2021-05-07 22:33:25 · 2560 阅读 · 0 评论 -
024 UNION 和 UNION ALL 连接查询结果语句
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。UNION 内部的 SELECT 语句必须拥有相同数量的行语法SELECT column_name(s) FROM table_name1UNIONSELECT column_name(s) FROM table_name2案例:使用UNION连接、左连接、右连接语句,实现全连接的功能SELECT * FROM stu /* 左连接 */LEFT JOIN fractionON fraction.`id`原创 2021-05-07 22:31:28 · 191 阅读 · 0 评论 -
008 使用DDL语句创建表
某字段在使用默认约束时,如果没有给这个字段赋值就会使用默认值。USE testmysql;#第一步,连接数据库CREATE TABLE `student`( `studentNO` INT(4) COMMENT'学号' NOT NULL PRIMARY KEY, `loginPWD` VARCHAR(20) COMMENT'密码' NOT NULL, `sudentName` VARCHAR(50) COMMENT'姓名' NOT NULL, `s...原创 2021-04-20 11:32:41 · 699 阅读 · 0 评论 -
004 SQL——结构化查询语言入门
SQL指令是只能被数据库识别的指令,在java中我们要得到MySQL数据库中表的一些记录,可以通过在java程序中写SQL语句,就可以获取MySQL中的数据并返回给java程序。刚刚说赋值运算符是”=”,而且比较运算符也是”=”,...原创 2021-04-20 11:27:32 · 118 阅读 · 0 评论 -
003 命令行连接MySQL
先来看使用cmd连接mysql,再看使用连接mysql回车之后需要再次输入密码,如果你要在本机登录root账户直接输入mysql -u root -p show databases;按下回车后会让你输入密码然后按下回车输入(要有分号)show databases;我们来看看使用MySQL 5.5 Command line Client(在开始菜单栏...原创 2021-04-20 11:26:25 · 91 阅读 · 0 评论 -
002 MySQL安装与配置
安装mysql-5.5.40-winx64的过程进行指定安装目录后面一直点击下一步直到下图:下面是选择服务器类型:第一个是开发者机器,这种类型的库占用资源不多第二个是服务器机器,这种类型的库占用资源比较多第三个是专用数据库服务器,占用所有可用的资源学习MySQL选择第一个,给客户用选择第二个和第三个然后进入数据库用法选择第一个是通用型第二个是服务器型专注于事物处理第三个是非事物处理型,这种类型功能比较单一,一般用于监原创 2021-04-20 11:24:03 · 107 阅读 · 0 评论