
MYSQL
文章平均质量分 79
♛薄情痞子♛
人生无非就是笑笑别人或被别人笑笑而已。
此博客仅供个人学习而用,如有侵权,请联系我,谢谢!!
展开
-
mysql 存储过程中的 prepare语句
prepare语法格式:PREPARE stmt from 'sql语句';#EXECUTE stmt; #适用sql无参数EXECUTE stmt (如果sql有参数的话, USING xxx,xxx); // 这里USING的只能是会话变量(提前定义好的便令作为参数)DEALLOCATE PREPARE stmt; #释放数据库连接作用:可以在存储过程中写一些ddl语句(不建议,因为ddl操作会锁表,所以不建已在存储过程中更改表结构) 可以在存储过程中动态的拼接表名,字段名,来达到转载 2020-09-17 18:06:02 · 4482 阅读 · 0 评论 -
mysql自定义函数、存储过程、游标、触发器、事件(定时任务)
创建函数FUN_GET_ORG_CHILD(rootId)CREATE DEFINER=`sjjy`@`%` FUNCTION `FUN_GET_ORG_CHILD`(rootId varchar(100))RETURNS varchar(2000) CHARSET utf8mb4//设置返回值类型BEGIN DECLARE sTemp varchar(2000); //定义局部变量DECLARE sTempChd varchar(1000); //定义局部变量SET sTemp =...原创 2020-09-15 10:05:11 · 1105 阅读 · 0 评论 -
select count(*)、select count(1)、select count(字段)、select count(null)区别
count(1)与count(*)得到的结果一致,包含null值 count(字段)不计算null值 count(null)结果恒为0原创 2020-09-15 09:54:45 · 468 阅读 · 0 评论 -
mysql和source导入sql文件
方法一:source命令导入mysql> sourceC:\Users\T440P\Desktop\test.sql方法二:mysql命令导入mysql -u用户名 -p密码 -h mysql地址 --port 端口号 数据库名 < 数据库名.sqlmysql导入的命令 可用java的runtime.exec(String command)调用执行参照链接:https://blog.youkuaiyun.com/qq_35044419/article/details/10857..原创 2020-09-14 15:50:18 · 1283 阅读 · 1 评论 -
mysql安装目录bin下面可执行程序命令详解
innochecksum:--脱机innodb数据文件校验和检查msql2mysql:用来将mSQL编写的应用转换成MySQL。myisamchk:MyISAM表的完整性并修复侦测到的错误。myisam_ftdump:在创建全文索引后可以用myisam_ftdump在命令行下查看索引的内容:myisam_ftdumpmyisamlog:显示MyISAM日志文件内容myisampack:生成压缩、只读MyISAM表的相关文章推荐压缩 mysqlmy_print_defaults:输出默认参数m转载 2020-09-14 15:44:51 · 2094 阅读 · 0 评论 -
cmd执行mysqldump命令
一、mysqldumpmysqldump命令位于mysql安装目录的bin目录下主要作用:将一个或者数据库(一张或多张表)导出导一个文件中。简单示例: 业务:将多张业务数据表导出到一个文本文件中mysqldump支持将多张 业务表导出导一个文本中,前提是这多个业务表有相同的字段。不支持表的关联导出,比如 A表关联B表 我导出A表5个字段B表5个字段。这样的不行。只能导单表C:\Users\T440P\Desktop\20200911\sjjy\mysql\bin\mys...原创 2020-09-14 14:31:39 · 3458 阅读 · 0 评论 -
mysql中的严格模式和非严格模式
何为MySQL的严格模式,简单来说就是MySQL自身对数据进行严格的校验(格式、长度、类型等),比如一个整型字段我们写入一个字符串类型的数据,在非严格模式下MySQL不会报错,同样如果定义了char或varchar类型的字段,当写入或更新的数据超过了定义的长度也不会报错。我认为这个对于编程来说没有任何好处,虽然我们尽量在代码中做数据校验。MySQL开启了严格模式从一定程序上来讲师对我们代码的一种测...转载 2019-09-18 23:34:32 · 7483 阅读 · 0 评论 -
MySql基础复习
数据库的基本操作如何创建数据库 数据库的删除操作 存储引擎的了解及其工作原理和如何选择1、创建数据库创建数据库是在系统磁盘上划分一块区域用于数据的存储和管理mysql安装完成以后,将会在其data目录下自动创建几个必须的数据库,可以使用 show databases语句查看。通过执行s...原创 2019-09-17 17:40:35 · 948 阅读 · 0 评论 -
【MySQL笔记】like、rlike、REGEXP关键词的使用
like :常用通配符:% 、_ 、escape% : 匹配0个或任意多个字符_ : 匹配任意一个字符escape : 转义字符,可匹配%和_。如SELECT * FROM table_name WHERE column_name LIKE '/%/_%_' ESCAPE'/'rlike和REGEXP :常用通配符:. 、* 、 [] 、 ^ 、 $ 、{n}. ...转载 2019-05-27 19:48:11 · 1157 阅读 · 0 评论 -
乐观锁与悲观锁
何谓悲观锁与乐观锁乐观锁对应于生活中乐观的人总是想着事情往好的方向发展,悲观锁对应于生活中悲观的人总是想着事情往坏的方向发展。这两种人各有优缺点,不能不以场景而定说一种人好于另外一种人。悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让...转载 2019-03-19 23:19:38 · 175 阅读 · 0 评论 -
SQL注入
所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。1、PreparedStatement如果你已经是稍有水平开发者,你就应该始终以PreparedStatement代替Statement.以下是几点原因 1)、代码的可读性和可维护性. 2)、PreparedStatement尽最大可能提高性能....转载 2019-03-17 10:36:17 · 276 阅读 · 0 评论 -
mysql语句优化
Sql语句优化和索引1.Innerjoin和左连接,右连接,子查询A.inner join内连接也叫等值连接是,left/rightjoin是外连接。SELECT A.id,A.name,B.id,B.name FROM A LEFT JOIN B ON A.id =B.id;SELECT A.id,A.name,B.id,B.name FROM A RIGHT JOIN...转载 2019-03-13 22:04:46 · 181 阅读 · 0 评论 -
mysql与oracle区别的一个整理
相同点:1.都是关系型数据库管理系统 2.都是目前比较流行的数据库不同点:1.单引号的处理 MYSQL里可以用双引号包起字符串,ORACLE里只可以用单引号包起字符串。在插入和修改字符串前必须做单引号的替换:把所有出现的一个单引号替换成两个单引号。2.自动增长的数据类型处理mysql是一个自动增长的数据类型,插入数据的时候,不需要管理,它自己会自动增...转载 2019-03-08 12:04:53 · 252 阅读 · 0 评论 -
Oracle序列创建和使用
1、创建序列语法:(需要CREATE SEQUENCE系统权限)CREATE SEQUENCE序列名[INCREMENTBYn] ---用于定义序列的步长。 如果省略,则默认为1,如果出现负值,则代表序列的值是按照此步长递减的。[STARTWITHn] ---定义序列的初始值(即产生的第一个值),默认为1。...转载 2019-03-01 21:09:46 · 3939 阅读 · 0 评论 -
Mysql常见四种索引的使用
提到mysql优化,索引优化是必不可少的。其中一种优化方式 ——索引优化,添加合适的索引能够让项目的并发能力和抗压能力得到明显的提升。我们知道项目性能的瓶颈主要是在"查(select)"语句,要提升"查"这一性能,mysql索引是必不可少的。接下来总结一下mysql常见的四种索引一. 四种索引(主键索引/普通索引/全文索引/唯一索引)1.索引的添加1.1主键索引的添加当...转载 2019-02-28 16:58:20 · 203 阅读 · 0 评论 -
mysql连接使用
SELECT, UPDATE 和 DELETE 语句中使用 Mysql 的 JOIN 来联合多表查询。JOIN 按照功能大致分为如下三类:INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表...转载 2018-12-28 15:37:08 · 247 阅读 · 0 评论 -
mysql order by 多个字段
下图是只加了一个排序的结果:可以看到,单一字段是没问题的。如果加入c2呢?下图是c2可以发现,这里的orderby是先按c1增序,然后对于按c1排好序以后的相同的元素,又根据c2做了降序排序。下面 是c1,c2都增序,结果符合。总结就是,orderby多个字段时,用逗号分隔每一个字段,如果字段不指明排序方式,默认是增序。排序的方法是先按第一个字段排序,如果有相同的再按后续的...转载 2018-09-10 17:06:18 · 12305 阅读 · 0 评论 -
【mysql】事务 运行原理 概述
以前没有深究过数据库底层是怎么运作的,只是停留在了概念层次,但是后来发现写程序的时候不是很舒服,总感觉有些点不通,于是决定看看mysql innodb引擎的原理,这里只是一个大致的介绍,不会太深入。如果我们在mysql的客户端执行了一些个操作,我们不了解任何底层,最简单的概念模型就是认为数据库的表里面的数据被修改了。也就是我这里执行一次update,数据库就会执行一个修改的io操作,很直观的理...转载 2018-09-10 16:57:00 · 1523 阅读 · 0 评论 -
mysql多线程
mysql是一个单进程多线程的数据库,在innodb中大概有一下几种线程:(1)Master Thread:这是主线程,非常核心,其用途主要是做一些周期性的任务,在不同的innodb版本其功能不同,这里就看最早期的版本。早起额innodb Master线程会有两种频率的任务,一种是每1秒一次的,还有每10秒一次的。每1秒的工作:1.刷新日志;2.刷新至多100个脏页3.合并插入...转载 2018-09-10 16:50:00 · 5393 阅读 · 0 评论 -
数据库隔离级别 及 其实现原理
READ_UNCOMMITED 的原理:事务对当前被读取的数据不加锁; 事务在更新某数据的瞬间(就是发生更新的瞬间),必须先对其加 行级共享锁,直到事务结束才释放。表现:事务1读取某行记录时,事务2也能对这行记录进行读取、更新;当事务2对该记录进行更新时,事务1再次读取该记录,能读到事务2对该记录的修改版本,即使该修改尚未被提交。 事务1更新某行记录时,事务2不能对这行记录做更...转载 2018-09-10 15:25:36 · 256 阅读 · 0 评论 -
mysql中的四种事务隔离级别
本文基于mysql innodb存储引擎一、事务的基本要素(ACID) 1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位。 2、一致性(Consistency):事务开始前和...转载 2018-09-10 15:23:48 · 158 阅读 · 0 评论 -
MYSQL 序列使用及实现
MySQL序列是一组整数:1, 2, 3, …,由于一张数据表只能有一个字段自增主键, 如果你想实现其他字段也实现自动增加,就可以使用MySQL序列来实现。使用AUTO_INCREMENTCREATE TABLE test(id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,username VARCHAR(15) NOT NU...转载 2018-09-07 10:17:09 · 19882 阅读 · 3 评论 -
MYSQL ALTER命令
当需要修改数据表名或者修改数据表字段时,就需要使用到MySQL ALTER命令。修改表名语法格式:ALTER TABLE old_table_name RENAME TO new_table_name查看表结构 SHOW COLUMNS FROM table_name查看数据表类型 SH...原创 2018-08-31 17:54:05 · 5364 阅读 · 0 评论 -
MYSQL常用操作
下列语句部分是Mssql语句,不可以在access中使用。SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)首先,简要介绍基础语句:1、说明:创建数据库CREATE DATABASE d...转载 2018-08-31 16:12:02 · 135 阅读 · 0 评论 -
MySQL复制表结构和内容到另一张表中的SQL语句
1.复制表结构及数据到新表 CREATE TABLE 新表 SELECT * FROM 旧表 2.只复制表结构到新表 CREATE TABLE 新表 SELECT * FROM 旧表 WHERE 1=2 即:让WHERE条件不成立.方法二:(低版本的mysql不支持,mysql4.0.25 不支持,mysql5已经支持了) CREATE TABLE ...转载 2018-08-23 17:53:03 · 293 阅读 · 0 评论 -
MYSQL 删除表中的重复数据
test表中的原始数据: test表中name字段信息有重复,想进行过滤删除重复数据删除重复数据之后的预期结果(不考虑id): 方法一:用 create ......select......group by ......先创建临时表tab,新表tab中的数据时从test表中分组查询出来的create table tab select...原创 2018-08-23 15:30:43 · 23931 阅读 · 4 评论 -
MYSQL避免重复插入记录的三种方法
方案一:使用ignore关键字如果是用主键primary或者唯一索引unique区分了记录的唯一性,避免重复插入记录可以使用:insert ignore into table_name(email,phone,user_id) values('test9@163.com','99999','9999'), 这样当有重复记录就会忽略,执行后返回数字0,还有个应用就是复制表,避免重复...转载 2018-08-23 08:59:11 · 18069 阅读 · 2 评论 -
MySQL_插入更新 ON DUPLICATE KEY UPDATE
平时我们在设计数据库表的时候总会设计 unique 或者 给表加上 primary key 的限制条件. 此时 插入数据的时候 ,经常会有这样的情况:我们想向数据库插入一条记录: 若数据表中存在以相同主键的记录,我们就更新该条记录。 否则就插入一条新的记录。 逻辑上我们需要怎么写:$result = mysql_query('select * from xxx...转载 2018-08-23 08:47:18 · 235 阅读 · 0 评论 -
MySQL执行查询原理
MySQL执行路径 从图中可以看出基本步骤为: 1.客户端发送一条查询给服务器。 2.服务器先检查查询缓存,如果命中了缓存,则立刻返回存储在缓存中的结果。否则进入下一阶段。 3。服务器端进行SQL解析,预处理,再由优化器生成对应的执行计划 4。MySql根据优化器生成的执行计划,调用存储引擎的API执行查询。 5。返回结果给客户端。MySQL客户端/服务器通信协议MySQL客户端和服务器之间的通信...转载 2018-03-09 09:27:42 · 6123 阅读 · 0 评论 -
MySQL运行机制原理
MySQL运行机制原理1.MySQL知识普及: MySQL是一个开放源代码的关系数据库管理系统。MySQL架构可以在多种不同场景中应用并发挥良好作用。主要体现在存储引擎的架构上,插件式的存储引擎架构将查询处理和其它的系统任务以及数据的存储提取相分离。2.MySQL逻辑架构: 1).最上层: 最上层是一些客户端和连接服务,包含本地的sock通信和大多数基于客户端/服务端工具实现的类似于tcp/i...转载 2018-03-09 09:22:31 · 2431 阅读 · 0 评论 -
MySQL的连接字符串 concat、concat_ws、group_concat、repeat()函数用法
CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。注意:如果所有参数均为非二进制字符串,则结果为非二进制字符串。 如果自变量中含有任一二进制字符串,则结果为一个二进制字符串。一个数字参数被转化为与之相等的二进制字符串格式;若要避免这种情况,可使用显式类型 cast, 例如:SELECT CONCAT(CAST(int_co...转载 2018-03-09 09:16:10 · 234 阅读 · 0 评论