![](https://img-blog.csdnimg.cn/20190918140037908.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
MySQL / MariaDB
文章平均质量分 59
MySQL
梁云亮
电 话:13264494458
微 信:13264494458
扣 扣:369950806
展开
-
[【精品】非常有用的几条SQL语句
【代码】[【精品】非常有用的几条SQL语句。原创 2024-06-29 21:54:32 · 125 阅读 · 0 评论 -
删除MySQL中所有表的外键
原理查询schema中所有外键名称然后拼接生成删除语句。原创 2024-05-24 23:35:22 · 283 阅读 · 0 评论 -
【精品】递归查询数据库 获取树形结构数据 通用方法
【代码】【精品】递归查询数据库 获取树形结构数据 通用方法。原创 2024-03-18 20:57:04 · 252 阅读 · 0 评论 -
MySQL 中的批量操作
名称:tb_province。原创 2023-05-04 17:45:16 · 120 阅读 · 0 评论 -
navicat连接MySQL8.0出现2059错误
在navicat链接mysql8以后的版本时,会出现2059的错误,这个错误出现的原因是在mysql8之前的版本中加密规则为mysql_native_password,而在mysql8以后的加密规则为caching_sha2_password。原创 2023-02-20 15:59:12 · 1773 阅读 · 0 评论 -
mysql 中replace into语法
这个replace into和insert类似,不同点在于:replace into首先尝试插入数据列表中,如果发现表中已经有此行数据(根据主键或者唯一索引判断),则先删除旧数据再插入,否则直接插入新数据。在分布式中,数据自增ID机制的原理:数据库自增ID是通过MySQL的replace into实现的。多次执行replace into语句,再次查看表中的数据,发现id增加了。再次执行第5步中的replace into语句。注意:字段name唯一。而查看表中的数据只有两条。原创 2022-09-26 13:09:41 · 699 阅读 · 0 评论 -
MySQL专有的SQL语句
搜索函数可以写判断,并且搜索函数只会返回第一个符合条件的值,其他case被忽略。即:在when后面的表达式中写出要搜索的判断条件,然后在THEN后面写上判断结果。这条sql的意思是,如果id为1,则priority的值为11,state的值为1……运行sql,第一次在数据库中添加了一条记录。原创 2022-09-12 13:36:26 · 570 阅读 · 0 评论 -
存储过程详解
语法创建存储过程CREATE PROCEDURE <存储过程名>(参数列表)BEGIN <SQL语句集>END删除存储过程drop procedure 存储过程名调用存储过程call 存储过程名();示例示例一:在存储过程中先删除一条记录再查询出所有的数据create PROCEDURE pro_t1()BEGIN delete from tb_sku where id =8; SELECT * from tb_sku;END原创 2022-05-24 16:01:01 · 128 阅读 · 0 评论 -
SQL: 将一个表中查出来数据 更新 到另一个表中
示例:将数据库db_cookieshop2012的goods表的name字段的值更新到db_wego数据库的tb_sku表的;name字段update db_wego.tb_sku t1 ,db_cookieshop2012.goods t2set t1.`name` = t2.`name`where t1.id = t2.id原创 2022-05-23 17:20:08 · 5993 阅读 · 3 评论 -
【精品】MySQL 自定义函数
语法示例一:生成随机的电话号码CREATE FUNCTION `generatePhone`() RETURNS char(11) CHARSET utf8DETERMINISTICBEGIN DECLARE head VARCHAR(100) DEFAULT '000,156,136,176,183'; DECLARE content CHAR(10) DEFAULT '0123456789'; DECLARE phone CHAR(11) DEFAULT subst原创 2022-04-26 21:08:10 · 2070 阅读 · 3 评论 -
MySQL编码问题
命令行操作sql乱码问题mysql> INSERT INTO t_stu VALUES(1,'张三','男');ERROR 1366 (HY000): Incorrect string value: '\xD5\xC5\xC8\xFD' for column 'sname' at row 1修改my.ini配置文件在路径:C:\ProgramData\MySQL\MySQL Server 5.7\my.ini 找到my.ini文件修改内容1: 找到[mysql]命令,大概在63行左右,原创 2022-04-21 00:05:43 · 1563 阅读 · 0 评论 -
MySQL查看字符集和校对规则
关于SQL的关键字和函数名等不区分大小写,但是对于数据值是否区分大小写,和字符集与校对规则有关。_ci(大小写不敏感),_cs(大小写敏感),_bin(二元,即比较是基于字符编码的值而与language无关)查看所有字符集和校对规则查看GBK和UTF-8字符集的校对规则show collation like ‘gbk%’;show collation like ‘utf8%’;utf8_unicode_ci和utf8_general_ci对中、英文来说没有实质的差别。utf原创 2022-04-21 00:06:04 · 1805 阅读 · 0 评论 -
MySQL忘记root密码解决方案
1:通过任务管理器或者服务管理,关掉mysqld(服务进程)2:通过命令行+特殊参数开启mysqldmysql5.5mysqld --skip-grant-tablesmysql5.7版mysqld --defaults-file="D:\ProgramFiles\mysql\MySQLServer5.7Data\my.ini" --skip-grant-tables注意:此处路径以你自己的世界路径为准3:此时,mysqld服务进程已经打开,并且,不需要权限检查.4:mysql原创 2022-04-21 00:06:36 · 7542 阅读 · 0 评论 -
第九章 用户与权限
9.1 身份认证(1)IP+用户名作为身份验证 例如: root@localhost:只允许在本机使用root用户登录 root@%:运行在任意机器上使用root用户登录 root@192.168.11.56:只运行在192.168.11.56主机上使用root用户登录 gjz@%:运行在任意机器上使用gjz用户登录建立用户时,用于身份验证的IP地址,是连接你的服务的客户端的IP地址例如:root@192.168.11.56,表示客户端在192.168.11.原创 2022-04-20 12:23:29 · 906 阅读 · 0 评论 -
第八章 事务
8.1 事务概述1、事务处理:保证所有事务都作为一个工作单元来执行,即使出现了故障,都不能改变这种执行方式。当在一个事务中执行多个操作时,要么所有的事务都被提交(commit),那么这些修改就永久地保存下来;要么数据库管理系统将放弃所作的所有修改,整个事务回滚(rollback)到最初状态。例如转账操作:A账户要转账给B账户,那么A账户上减少的钱数和B账户上增加的钱数必须一致,也就是说A账户的转出操作和B账户的转入操作要么全部执行,要么全不执行;如果其中一个操作出现异常而没有执行的话,就会导致账户A和账原创 2022-04-20 12:19:31 · 757 阅读 · 0 评论 -
第七章 Select子句与子查询
7.1 子查询语法书写顺序子查询必须安照下面的顺序编写SQL语句:from:从哪些表中筛选on:关联多表查询时,去除笛卡尔积where:从表中筛选的条件group by:分组依据having:在统计结果中再次筛选order by:排序limit:分页示例:#查询每个部门的男生的人数,并且显示人数超过5人的,按照人数降序排列,#每页只能显示10条,我要第2页SELECT deptno,COUNT(*) "人数"FROM tb_empWHERE gender = '男'GROU原创 2022-04-20 12:11:44 · 2118 阅读 · 0 评论 -
第六章 关联查询
6.1 关联查询的七种结果(1)A∩B(2)A(3)A - A∩B(4)B(5)B - A∩B(6)A ∪ B(7)A∪B- A∩B 或者 (A - A∩B) ∪ (B - A∩B)6.2 如何实现?1、内连接:实现A∩Bselect 字段列表from A表 inner join B表on 关联条件where 等其他子句;或select 字段列表from A表 , B表where 关联条件 and 等其他子句;代码示例:#查询员工的姓名和他所在的部原创 2022-04-20 12:01:19 · 837 阅读 · 0 评论 -
第五章 函数
5.1单行函数只对一行进行变换,每行返回一个结果可以嵌套参数可以是一字段或一个表达式或一个值5.1.1 字符串函数函数用法CONCAT(S1,S2,…,Sn)连接S1,S2,…,Sn为一个字符串CONCAT_WS(s, S1,S2,…,Sn)同CONCAT(s1,s2,…)函数,但是每个字符串之间要加上sCHAR_LENGTH(s)返回字符串s的字符数LENGTH(s)返回字符串s的字节数,和字符集有关INSERT(str, index ,原创 2022-04-20 11:31:28 · 160 阅读 · 1 评论 -
第四章 约束与索引
4.1 约束与索引的概念约束(CONSTRAINTS)约束是用来对数据业务规则和数据完整性进行实施、维护。约束的作用范围仅限在当前数据库,约束可以被当做数据库对象来处理,它们具有名称和关联模式,是逻辑约束,不会因为设置约束而额外占用空间。1、数据完整性(Data Integrity)是指数据的精确性(Accuracy)和可靠性(Reliability)。它是应防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。数据的完整性要从以下四个方面考虑:实体完整性原创 2022-04-20 11:01:24 · 359 阅读 · 0 评论 -
第三章 SQL语法基础
3.1 MySQL的语法规范和要求mysql的sql语法不区分大小写MySQL的关键字和函数名等不区分大小写,但是对于数据值是否区分大小写,和字符集与校对规则有关。名时:尽量使用26个英文字母大小写,数字0-9,下划线,不要使用其他符号议不要使用mysql的关键字等来作为表名、字段名等,如果不小心使用,请在SQL语句中使用`(飘号)引起来数据库和表名、字段名等对象名中间不要包含空格同一个mysql软件中,数据库不能同名,同一个库中,表不能重名,同一个表中,字段不能重名标点符号:原创 2022-04-20 10:55:12 · 508 阅读 · 0 评论 -
第二章 MySQL数据类型和运算符
1、数值类型整型系列:xxxInt3int(M),必须和unsigned zerofill一起使用才有意义浮点型系列:float,double(或real)double(M,D):表示最长为M位,其中小数点后D位例如:double(5,2)表示的数据范围[-999.99,999.99],如果超过这个范围会报错。定点型系列:decimal(底层实际上是使用字符串进行存储)decimal(M,D):表示最长为M位,其中小数点后D位位类型:bit字节范围是:1-8,原创 2022-04-20 10:28:04 · 652 阅读 · 1 评论 -
第一章 数据库概述
1.1 数据库概述基本概念DBMS:数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,例如建立、使用和维护数据库。DB:数据库(Database)SQL:结构化查询语言,(Structure Query Language),专门用来操作/访问数据库的通用语言。如果把数据库比作盘子,那数据就是盘子里的菜,SQL则是你的筷子。数据库类型数据库经过几十年的发展,出现了多种类型。目前最常见的数据库模型主要是:关系型数据库和(noSQL)非关系原创 2022-04-20 09:21:55 · 669 阅读 · 3 评论 -
MySQL的卸载安装与设置
Mysql软件的卸载步骤一:软件的卸载准备学习网络编程时,TCP/IP协议程序有服务器端和客户端。mysql这个数据库管理软件是使用TCP/IP协议。我们现在要卸载的是mysql的服务器端,它没有界面。【计算】–>右键–>【管理】–>【服务】–>【mysql的服务】–>【停止】步骤二:软件的卸载方式一:通过控制面板卸载方式二:通过360或电脑管家等软件卸载方式三:通过安装包提供的卸载功能卸载或者步骤三:清理残余文件如果再次安装不成功,可以卸载后原创 2022-04-20 09:20:58 · 638 阅读 · 0 评论 -
SQL注入
简介SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。示例String sql = “select * from tb_user where username=’ “+userName+” ’ and password=’ “+password+” '”;当输入 ‘or 1 = 1 –原创 2022-03-30 11:07:49 · 4475 阅读 · 2 评论 -
【精品】MySQL中的触发器
理论语法CREATE TRIGGER <触发器名称>BEFORE|AFTER <触发事件>ON <表名> FOR EACH ROW <触发器激活后执行的操作>其中:触发事件:指明了激活触发程序的语句的类型,可以是下述值之一:INSERT:将新行插入表时激活触发程序,例如,通过INSERT、LOAD DATA和REPLACE语句。UPDATE:更改某一行时激活触发程序,例如,通过UPDATE语句。DELETE:从表中删除某一行时激活触发原创 2021-12-23 11:29:02 · 1120 阅读 · 0 评论 -
Windows 开放指定端口 --- 开启外网访问mysql之 防火墙设置
打开IntelliJ IDEA–help–Edit Custom VM Options…后修改重启Intellij进入IntelliJ IDEA 后双击shift,搜索show memory indicator,打开后在IntelliJ IDEA右下角即可显示出总内存,占用内存。原创 2021-05-11 21:23:52 · 1049 阅读 · 5 评论 -
MySQL中的JSON
根据json字段的内容检索查询数据语法使用 字段->'$.json属性'进行查询条件使用json_extract函数查询,json_extract(字段,"$.json属性")根据json数组查询,用JSON_CONTAINS(字段,JSON_OBJECT('json属性', "内容"))测试表对应的SQLSET NAMES utf8mb4;SET FOREIGN_KEY_CHECKS = 0;-- ------------------------------ Table原创 2021-12-06 13:04:13 · 24297 阅读 · 0 评论 -
MySQL常用函数
日期函数示例SELECT CURDATE()SELECT CURTIME()SELECT NOW()SELECT WEEK(CURDATE())SELECT YEAR(CURDATE())SELECT hour(CURTIME())SELECT minute(CURTIME())SELECT MONTHNAME(CURDATE())SELECT TO_DAYS(CURDATE())SELECT DATEDIFF('2020-3-20','2020-3-11')SE原创 2021-09-15 11:17:32 · 124 阅读 · 0 评论 -
win10 安装MariaDB
安装成功打开HeidiSQL客户端,建立HeidiSQL与Mariadb的关联双击图标:原创 2021-09-13 13:24:11 · 636 阅读 · 0 评论 -
数据字典表设计
为什么字典表?在实际项目开发过程中常遇到下面场景:某些变量在多个地方使用,而且一般是固定的,但是随着系统升级和后期变化,可能需要改变,如果这些变量写死在代码里面将会变得难以维护,所以要将其从代码中抽离出来。一般的业务系统客户端与用户交互的时候都会使用下拉框组件,对于某些比较固定的值的下拉组件的数据来源一般都是比较固定的一类数值。解决方案有的做法是使用枚举或者Constants常量类来实现,这种情况下在量少的前提是没问题的,而且一旦需要修改就得修改源码;随着系统的开发拓展,后期将无法维护,甚至命名困难原创 2021-04-02 21:23:33 · 5565 阅读 · 0 评论 -
MySQL设置允许远程访问方式
默认Intellij最多同时只能打开10个文件,再多开就会把原来的Tab关闭了。设置打开文件数量的试:Perferences-> Editor -> General ->Editor Tabs,调整 Tab Closing Policy 的 Tab Limit,默认是10个,修改为你需要的个数即可。...原创 2021-05-01 11:12:45 · 968 阅读 · 5 评论 -
MySQL 查询多张表中类型相同字段的最大值
表结构实现一:利用MySQL函数:GREATEST(value1,value2,...)SELECT GREATEST( (SELECT max(price) from tb_goods), (SELECT max(price) from tb_goods2))实现二:利用存储过程-- 使用存储过程delimiter @@create PROCEDURE fun (OUT res VARCHAR(10))BEGIN DECLARE m1 DECIMAL(6,2); DECLARE原创 2021-08-04 06:09:52 · 1652 阅读 · 10 评论 -
事务相关概念
事务概念事务(transaction):最小的不可再分的工作单元;通常一个事务对应一个完整的业务(例如银行账户转账业务,该业务就是一个最小的工作单元)事务只和DML语句有关,或者说只有DML语句才有事务。在事物进行过程中,未结束之前,DML语句不会更改底层数据,它只是将历史操作记录一下,在内存中完成记录。只有在事物结束的时候,而且是成功的结束的时候,才会修改底层硬盘文件中的数据。在MySQL中,默认情况下事务是自动提交的。事务的基本要素(ACID)原子性(Atomicity):事务开始后所有操原创 2021-07-31 09:03:50 · 6295 阅读 · 17 评论 -
第十章 数据库三范式
第一范式(1NF)字段具有原子性,不可再分。所有关系型数据库系统都满足第一范式)数据库表中的字段都是单一属性的,不可再分。例如,姓名字段,其中的姓和名必须作为一个整体,无法区分哪部分是姓,哪部分是名,如果要区分出姓和名,必须设计成两个独立的字段。第二范式(2NF):第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。要求数据库表中的每个实例或行必须可以被惟一地区分。通常需要为表加上一个列,以存储各个实例的惟一标识。这个惟一属性列被称为主原创 2021-07-12 20:41:48 · 698 阅读 · 18 评论 -
MySQL存储引擎
简介存储引擎指定了表的类型,即如何存储和索引数据、是否支持事务等,同时存储引擎也决定了表在计算机中的存储方式。查看MySQL支持的存储引擎:命令:show engines;常用存储引擎简介MyISAMMyISAM引擎特点:不支持事务:事务是指逻辑上的一组操作,组成这组操作的各个单元,要么全成功要么全失败。表级锁定:数据更新时锁定整个表:也就是对表中的一个数据进行操作都会将这个表锁定,其他人不能操作这个表,这虽然可以让锁定的实现成本很小但是也同时大大降低了其并发性能。读写互相阻塞:不仅原创 2021-06-28 14:06:55 · 321 阅读 · 1 评论 -
基于emp的 单表查询 练习题及答案
有关tb_emp表的结构及数据,请参看博客:https://hcshow.blog.csdn.net/article/details/101469279选择部门30中的雇员select * from tb_empwhere deptno =30列出所有办事员的姓名、编号和部门select empno,ename,dptno找出佣金高于薪金的雇员select *from tb_empwhere comm > sal找出佣金高于薪金60%的雇员select *原创 2021-06-24 11:31:46 · 4966 阅读 · 3 评论 -
SpringBoot +Freemarker+ Screw 生成数据库文档
最终生成的数据库文档的效果实现第一步:创建SpringBoot项目,按如下所示添加依赖:<dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.29</version></dependency><dependency> &原创 2021-04-29 09:29:42 · 327 阅读 · 3 评论 -
SQL: 将一个表中查出来数据插入到另一个表中
1、假如baiA表存在insert into A(a,b,c) (select a,b,c from B) 2、假如A表不存在select a,b,c into A from B 3、假如需要跨数据库insert into ADB.[dbo].A(a,b,c) (select a,b,c from BDB.[dbo].B)原创 2020-10-07 14:48:19 · 6916 阅读 · 2 评论 -
MySQL稀疏主键重新排序
在使用的过程中,随着删除等操作的使用,表的自增主键可能就不连续了,此时可以采用以下方式重新排序主键,简直是强迫症患者的绝对福音。以tb_dept为例进行演示:tb_dept表的SQL语句:CREATE TABLE `tb_dept` ( `deptno` tinyint(4) NOT NULL AUTO_INCREMENT, `dname` varchar(14) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT原创 2020-05-21 11:48:28 · 276 阅读 · 1 评论 -
MySQL中NULL判断
查询某个字段不为NULL,使用如下语句时MySQL解析器会将字段为null的数据也当做满足不等于的条件而将数据筛选掉。select * from tb_emp where comm <> null正确的做法是:select * from tb_emp where comm is not null结论:对NULL进行判断处理时,只能采用IS NULL或IS NOT NULL...原创 2020-04-17 16:58:03 · 1682 阅读 · 0 评论