![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql
从小不爱学习~
这个作者很懒,什么都没留下…
展开
-
centos7 源码安装mysql 5.7.34
centos7 源码安装mysql 5.7.34官网下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads注意:在新版本的CentOS7中,默认的数据库已更新为了Mariadb,Mariadb是mysql的一个分支,同时存在可能会出现冲突,因此先检查并删除linux上内嵌的Mariadb检查系统中是否已安装 MySQL[root@192 ~]# rpm -qa|grep -i mariadbmariadb-libs-5.原创 2021-10-27 00:12:49 · 534 阅读 · 0 评论 -
MySQL索引(Index)是什么?为什么要使用索引?
MySQL索引(Index)是什么?为什么要使用索引?索引是一种特殊的数据库结构,有数据表中的一列或多列组合而成,可以用来快速查询数据表中有某一特定值的记录。本届将详细讲解索引的含义、作用和优缺点。通过索引,查询数据时不用读完记录的所有信息,而只是查询索引列。否则数据库系统将读取每条记录的所有信息进行匹配。可以把索引比作新华字典的音序表。例如,要查 ‘’库‘’ 字,如果不适用音序,就需要从字典的400页中逐页来找。但是,如果提取拼音出来,构成音序表,就需要从 10 多页的音序表中直接查找。这样就可以大原创 2021-11-09 16:34:10 · 517 阅读 · 0 评论 -
SQL 语句练习二
SQL 语句练习二SET NAMES utf8mb4;SET FOREIGN_KEY_CHECKS = 0;-- ------------------------------ Table structure for course-- ----------------------------DROP TABLE IF EXISTS `course`;CREATE TABLE `course` ( `Cno` int(11) NOT NULL COMMENT '课程编号', `Cnam原创 2021-11-09 11:06:53 · 110 阅读 · 0 评论 -
MySQL流程控制经典案例
MySQL流程控制经典案例一、已知表 stringcontent其中字段:id 自增长content varchar(20)向表中插入指定个数的,随机字符串DELIMITER $CREATE PROCEDURE test_randstr_insert(IN insertCount INT)BEGIN DECLARE i INT DEFAULT 1; #定义一个循环变量i,表示插入次数 DECLARE str VARCHAR(26) DEFAULT 'abcdefghijklmno原创 2021-11-04 22:38:42 · 131 阅读 · 0 评论 -
MySQL 循环结构
MySQL 循环结构分类:while、loop、repeat循环控制:iterate 类似于 continue ,继续,结束本次循环,继续下一次leave 类似于 break ,跳出,结束当前所在的循环语法:1.while【标签:】while 循环条件 do 循环体end while 【标签:】;联想到:while (循环条件){ 循环体;}2.loop【标签:】loop 循环体;end loop 【标签:】;可以用来模拟简单的死循环3.repeat【原创 2021-11-04 22:34:37 · 148 阅读 · 0 评论 -
MySQL流程控制结构
流程控制结构顺序结构:程序从上往下依次执行分支结构:程序从两条或多条路径中选择一条执行循环结构:程序在满足一定条件的基础上,重复执行代码一,分支结构1.if 函数功能:实现简单的双分支语法:IF (表达式1,表达式2,表达式3)执行顺序:如果表达式1成立,则IF函数返回表达式2的值,否则返回表达式3的值应用:任何地方2.case 结构**情况1:**类似于 java 中 的 switch 语句,一般用于实现等值判断语法:CASE 变量 | 表达式 | 字段WHEN 要判断的原创 2021-11-04 21:03:51 · 217 阅读 · 0 评论 -
Mysql 函数
Mysql 函数建表语句在最后含义:一组预先编译好SQL语句的集合,理解成批处理语句1.提高了代码的重用性2.简化操作3.减少了编译次数并且减少了和服务器的连接次数,提高了效率区别:存储过程:可以有0个返回,也可以有多个返回函数:有且仅有一个返回,适合做数据处理后返回一个结果一、创建语法CREATE FUNCTION 函数名(参数列表) RETURNS 返回类型BEGIN 函数体END注意:1.参数列表包含两部分:参数名 、参数类型2.函数体:肯定会有 return原创 2021-11-01 23:01:22 · 452 阅读 · 0 评论 -
MySql 存储过程练习
MySql 存储过程练习练习 (与上篇表结构数据相同)一:创建存储过程,实现传入用户名和密码,插入admin表中二:创建存储过程或函数实现传入女神编号,返回女神名称和女神电话三:创建存储过程实现传入两个女神生日,返回大小四:创建存储过程或函数实现传入一个日期,格式化成xx年xx月xx日并返回五:创建存储过程或函数传入女神名称,返回 女神 AND 男神 格式的字符串 如 传入:小昭 返回:小昭 AND 张无忌六:创建存储过程或函数,根据传入的条目数和起始索引,查询 beauty 表原创 2021-11-01 01:05:02 · 234 阅读 · 0 评论 -
MySQL存储过程
存储过程前言:存储过程和函数:类似于 java 中的方法好处:1.提高代码的重用性 2.简化操作 3.减少了编译次数并减少了和服务器的连接次数,提高了效率建表语句在最后存储过程含义:一组预先编译好的SQL语句的集合,理解成为批处理语句一,创建语法CREATE PROCEDURE 存储过程名(参数列表)BEGIN 存储过程体(一组合法的SQL语句)END注意,参数列表包含三部分:参数模式,参数名,参数类型举例#参数模式:IN:该参数可以作为输原创 2021-11-01 00:59:54 · 148 阅读 · 0 评论 -
MySQL存储引擎
MySQL存储引擎数据库存储引擎是数据库底层软件组件,数据库管理系统使用数据引擎进行创建,查询,更新和删除数据操作。简而言之,存储引擎就是指表的类型。数据库的存储引擎决定了表在计算机中的存储方式。不同的存储引擎提供不同的存储机制,索引技巧,锁定水平等功能,使用不同的存储引擎还可以获得特定的功能现在许多数据库管理系统都支持多种不同的存储引擎。MySQL 的核心就是存储引擎。MySQL 提供了多个不同的存储引擎,包括处理事务安全表的引擎和处理非事务安全表的引擎。在MySQL中,不需要在整个服务器中使用同一原创 2021-10-30 21:38:51 · 81 阅读 · 0 评论 -
SQL 语句练习一
SQL 语句练习一用到的表和数据DROP TABLE IF EXISTS `emp`;CREATE TABLE `emp` ( `id` int(11) NOT NULL COMMENT '员工编号', `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '员工姓名', `dept_id` int(11) NULL DEFAULT NULL COMMENT '部门原创 2021-10-18 15:11:38 · 121 阅读 · 0 评论 -
DML delete 删除
DML delete 删除前言delete 也属于 DML 语句 (数据操纵语句)delete 的语法格式DELETE FROM <表名> [WHERE 子句] [LIMIT 子句]语法格式说明where 就不用多说了,一般 delete 数据都会指定条件添加 limit 是为了限制被删除的行数,加不加都行删除表中的全部数据DELETE FROM emp;根据条件删除表中数据DELETE FROM empWHERE id = 1OR is_enable原创 2021-10-18 14:24:59 · 312 阅读 · 0 评论 -
DML update 更新
DML update 更新前言update 也是DML 语句 哦(数据操作语言)update 的语法格式UPDATE <表名> SET 字段1=值1 [,字段2=值2… ] [WHERE 子句 ] [LIMIT 子句]语法格式说明多指定多个字段,需要用 , 号隔开如果修改的字段有默认值,可以用 default 来设置字段的值,如:name = default,这样就会把字段的值修改成默认值where 就不用多说了,一般 update 数据都会指定条件添加 limit 是为了原创 2021-10-18 14:12:21 · 352 阅读 · 0 评论 -
DML insert 插入
DML insert 插入前言前篇讲完查询语句,这篇讲插入语句insert 属于 DML 语句 (数据操纵语句)insert …values 的语法格式INSERT INTO <表名> [ <列名1> [ , … <列名n>] ]VALUES (值1) [… , (值n) ];<列名1>: 可以不指定,默认指定表的所有列名values:字段有多少个,值就要有多少个,且顺序要对应,否则会报错insert …set 的语法格式这个用原创 2021-10-18 12:44:34 · 423 阅读 · 0 评论 -
查询语句 子查询 in/exists 子查询
查询语句 子查询 in/exists 子查询前言子查询在我们查询方法中是比较常用的,通过子查询可以实现多表查询子查询是指:将一个查询语句嵌套在另一个查询语句中子查询可以在 select ,update,delete 语句中使用,还可以进行多层嵌套子查询的语法格式WHERE <表达式> <操作符> (子查询)语法格式说明操作符可以是比较运算符,in,not in,exists,not existsnot 当然就是取反了in 和 exists的一个比较原创 2021-10-18 10:50:01 · 810 阅读 · 0 评论 -
查询语句 子查询
查询语句 子查询子查询语句可以嵌套在SQL语句中任何表达式出现的位置啥意思??查询 sql 语句的组成一般是这样select <字段> from <表名> where <查询条件>字段、表名、查询条件都可以嵌套子查询!select <子查询> from <表名> where <查询条件>select <字段> from <子查询> as <别名> where <查询条件>原创 2021-10-16 19:29:43 · 147 阅读 · 0 评论 -
查询语句 union 全连接
查询语句 union 全连接前言其实MySQL并没有全连接,Oracle才有全连接(full join)但是在MySQL中,union 关键字可以达到同样的效果,所以这里也要介绍一下union 的语法格式[SQL1]UNION [ALL | DISTINCT][SQL2]UNION [ALL | DISTINCT][SQL3]....语法格式说明SQL1,SQL2,SQL3:平时写的查询,可以SQL,可以连接很多条SQLALL:可选参数,返回所有的结果集,包含重复数据di原创 2021-10-16 18:48:28 · 1342 阅读 · 1 评论 -
查询语句 left / right join 外连接
查询语句 left/right join 外连接前言外连接分为两种:left join ,right join外连接显式的内容要比内连接多,是对内连接的补充left join 的主表是左表,从表是右表right join 的主表是右表,从表是左表外连接返回的主表是所有数据,无论在从表是否有与之匹配的数据,若从表没有匹配的数据则默认为控制(NULL)外连接只返回从表匹配上的数据重点:在使用外连接时,要分清查询的结果,是需要显式左表的全部记录,是右表的全部记录left join,right原创 2021-10-16 15:08:00 · 613 阅读 · 0 评论 -
查询语句 inner join 内连接
查询语句 inner join 内连接前言利用条件表达式来消除交叉连接 (cross join)的多余数据行inner join 通过 on 来设置条件表达式,如果没有 on 的话,inner join 和 cross join是相同的cross join … on 和 inner join … on 其实效果也是一样的 (但是在标准SQL中,cross join 是不支持 on 的,只是MySQL支持)inner join 的语法格式SELECT <字段名> FROM <原创 2021-10-16 12:01:42 · 2158 阅读 · 0 评论 -
查询语句 cross join 交叉连接
查询语句 cross join 交叉连接前言交叉连接就是多表之间的笛卡尔积也要了解,学习学习啥是笛卡尔积这属于数学的内容,不用介绍概念,直接看例子!假设,有两个集合A,BA = {1,2}B = {3,4}集合A和集合B的笛卡尔积 = 集合A * 集合B;即,两表相乘,如下:在MySQL中,表与表之间的笛卡尔积不建议使用,会产生大量不合理的数据;假设两张表各有100条记录,那么表与表的笛卡尔积的数据量就有100*100=10000条了…cross join 的语法格式SE原创 2021-10-16 10:59:04 · 378 阅读 · 0 评论 -
MySQL 多表连接查询
MySQL 多表连接前言在实际工作中,每次查询基本都是需要结合多个表去查询数据,所以MySQL的多表查询我们必须掌握多表查询可以是两张表,也可以是多张表,取决于需要查询的数据要关联多少张表有哪些多表查询**cross join **:交叉连接inner join :内连接left join:左外连接right join:右外连接union,union all:全连接多表查询的区别执行SQL后面详细将每种多表查询的时候,会用到这些数据表和数据;先跑一跑创建下DROP TAB原创 2021-10-16 09:47:17 · 416 阅读 · 0 评论 -
MySQL 事务
MySQL 事务在银行业务中,有一条记账原则,即有接有贷,借贷相等。为了保证这种原则,每发生一笔银行业务,就必须确保会计账目上借方科目和贷方科目至少各记一笔,并且这两笔帐要么同时成功,要么同时失败。如果出现只记录了借方科目,或者只记录的贷方科目的情况,就违反了记账原则。会出现记错账的情况。在银行的日常业务中,只要是同一银行(如都是中国农业银行,简称农行),一般都支持账户间的直接转账。因此,银行转账操作往往会涉及两个或两个以上的账户。在转出长湖的存款减少一定金额的同时,转入账户的存款就要增加相应的金额。转载 2021-10-15 14:31:58 · 73 阅读 · 0 评论 -
查询语句 having
查询语句 having前言having 关键字对 group by 分组之后的数据进行过滤having 支持 where 所有的操作符和语法where 和 having 的一些差异性wherehaving不可以使用聚合函数可以使用聚合函数数据 group by 前过滤数据 group by 后过滤查询条件中不可以使用别名查询条件中可以使用别名用于过滤数据行用于过滤分组后的结果集根据数据表的字段直接过滤根据已查询出的字段进行过滤havi原创 2021-10-14 22:00:45 · 391 阅读 · 0 评论 -
查询语句 between and
查询语句 between and前言可用上一篇数据表between and 可以判断值是否在指定范围内实际场景:可以查询年龄段,工资水平等between and的语法格式BETWEEN 取值1 AND 取值2 NOT BETWEEN 取值1 AND 取值2取值1:范围的起始值取指2:范围的终止值NOT:取反,不在取值范围内的值将被返回确认测试表里有什么数据,方便后面的例子做对比between and 的例子例一:查询年龄在19 到 21 之间的记录SELECT * FR原创 2021-10-14 20:53:23 · 1352 阅读 · 0 评论 -
查询语句 is null 空值查询
查询语句 is null 空值查询前言可用上篇数据表is null是一个关键字,用于判断字段的值是否为空值(NULL)空值 ≠ 0,也 ≠ 空字符串"" 、语法格式两种写法:字段值为空字段值不为空IS NULL IS NOT NULL确定表里面的数据,方便后面的例子做对比空值查询的例子查询sex字段为空的记录SELECT * FROM test_table WHERE sex IS NULL;查询sex字段不为空的记录SELECT * FROM test_ta原创 2021-10-14 20:36:20 · 1798 阅读 · 0 评论 -
查询语句 like 模糊查询
查询语句 like 模糊查询前言建表语句在最后like 应该是最常用的查询条件了必须掌握地!like 的语法格式LIKE '字符串'NOT LIKE '字符串'NOT :取反,不满足指定字符串的匹配字符串:可以是精确的字符串,也可以是包含通配符的字符串LIKE 支持 % 和 _ 两个通配符确认测试表里有什么数据,方便后面的例子做对比% 通配符查询的例子% 应该是最常用的通配符了,它代表任意长度的字符串,包括0比如:a%b 表示以字母 a 开头,以字母 b 结尾的原创 2021-10-14 20:19:30 · 6832 阅读 · 0 评论 -
查询语句 where筛选
查询语句 where前言条件查询应该是作为测试平时用到最多的关键字了它可以用来指定查询条件,减少不必要的查询时间where 的语法格式WHERE 查询条件五种查询条件比较运算符between and 关键字is null 关键字in、exist 关键字like 关键字本篇只讲比较运算符、逻辑运算符,其他会在后面篇幅有哪些比较运算法?=:等于<=>:安全等于!=、<>:不等于<、>、<=、>=:小于、大于、小于等于、原创 2021-10-14 17:53:01 · 377 阅读 · 0 评论 -
查询语句 order by 排序
查询语句 order by 排序前言此篇用到的表与上一篇相同通过 select 出来的结果集是按表中的顺序来排序的,order by 允许我们对查询结果针对每个字段进行排序实际场景:根据数据的创建时间,更新时间,文件大小,商品价格等字段来排序order by 的语法格式ORDER BY <字段名> [,<字段名>...] [ASC | DESC]ASC: 升序排序,默认值 -正三角形DESC:降序排序-反三角形单字段排序的例子根据 id 倒序排序SEL原创 2021-10-14 15:59:25 · 424 阅读 · 0 评论 -
查询语句 group by 分组
查询语句 group by 分组建表语句在最后group by 关键字可以根据一个或多个字段对查询结果进行分组group by 一般都会结合Mysql聚合函数来使用如果需要指定条件来过滤分组后的结果集,需要结合 having 关键字;**原因:**where不能与聚合函数联合使用 并且 where 是在 group by 之前执行的group by 的语法格式GROUP BY <字段名>[,<字段名>,<字段名>]先确认测试表里有什么数据,方便后面例原创 2021-10-14 15:10:21 · 7662 阅读 · 1 评论 -
查询语句 limit限制查询结果的条数
前言实际工作中,我们的数据表肯定都是万级别的,如果每次都把所有数据查出来,不仅会增加查询的时间成本,还会给数据库服务器造成很大的压力通过limit限制每次返回的数据量,可以有效减少查询时间和数据库压力limit 的三种用法指定初始位置不指定初始位置结合offset使用确认测试表里有什么数据,方便后面的例子做对比limit指定初始位置的栗子语法格式LIMIT 初始位置,记录数知识点初始值从0开始初始值位置和记录数都必须为正整数从第三条记录一共返回两条记录SELECT原创 2021-09-25 16:06:55 · 1493 阅读 · 0 评论 -
查询语句 as 起别名
前言CREATE TABLE `student` ( `s_id` varchar(20) COLLATE utf8_bin NOT NULL DEFAULT '', `s_name` varchar(20) COLLATE utf8_bin NOT NULL DEFAULT '', `s_birth` varchar(20) COLLATE utf8_bin NOT NULL DEFAULT '', `s_sex` varchar(10) COLLATE utf8_bin NOT NUL原创 2021-09-25 15:41:23 · 309 阅读 · 0 评论 -
查询语句去重distinct
前言此篇用到的表如下CREATE TABLE `yytest` ( `id` int(10) NOT NULL AUTO_INCREMENT, `stu_id` int(10) NOT NULL, `c_name` varchar(20) DEFAULT NULL, `istester` varchar(50) DEFAULT NULL, `grade` int(10) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `id` (`i原创 2021-09-25 14:54:28 · 1256 阅读 · 0 评论 -
DQL基本查询
前言针对数据表里面的每条记录,select查询语句叫做数据查询语言(DQL)select的语法格式SELECT{* | <字段列名>}[FROM <表 1>, <表 2>…[WHERE <表达式>[GROUP BY <group by definition>[HAVING <expression> [{<operator> <expression>}…]][ORDER BY <order原创 2021-09-25 13:49:06 · 80 阅读 · 0 评论 -
数据库定义语言-表的操作
前言针对数据表的操作语句叫做数据定义语言(DDL)数据表有哪些操作创建数据表查看表结构查看数据表的创建语句复制数据表修改数据表删除数据表创建数据表语法格式CREATE TABLE <表名> ([表定义选项])[表选项][分区选项];知识点表名:两种写法,可以直接写数据表的名字tb_name,也可以db_name.tb_name,先指定数据库在指定数据表名;表定义选项:一般都是列名、列定义、默认值、约束、索引组成实际例子CREATE TABLE yytes原创 2021-09-24 22:26:41 · 198 阅读 · 0 评论 -
数据库定义语言 DDL
前言针对数据库操作的语句叫做数据库定义语言(DDL)数据库有哪些操作呢创建数据库查询数据库修改数据库删除数据库选择数据库创建数据库语法格式CREATE DATABASE [IF NOTE EXISTS] <数据库名>[[DEFAULT CHARACTER SET <字符集名> ]][[DEFAULT COLLATE <校对规则名>]];知识点[ ]的内容可以不填,有默认值MySQL的字符集 (CHARACTER)和校对规则(COLLA原创 2021-09-22 23:07:16 · 299 阅读 · 0 评论 -
mysql 变量运用
mysql 变量CREATE TABLE `person` ( `id` int(11) DEFAULT NULL, `first_name` varchar(20) DEFAULT NULL, `age` int(11) DEFAULT NULL, `gender` char(1) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8;INSERT INTO `test`.`person` (`id`, `first_name`, `ag原创 2021-09-22 21:50:51 · 103 阅读 · 0 评论 -
时间和日期函数 date 的作用
date 的作用返回指定日期时间的日期部分date 的语法格式DATE(expr)例子SELECT DATE('1998-11-03 18:00:00'); # 1998-11-03SELECT DATE(CURRENT_TIMESTAMP) #2021-09-21原创 2021-09-21 16:28:44 · 697 阅读 · 0 评论 -
时间和日期函数 sysdate 的作用
sysdate 的作用和 now 函数作用大同小异以字符串或数字形式使用该函数, 以 ‘YYYY-MM-DD hh:mm:ss’ 或 YYYYMMDDhhmmss 格式返回当前日期和时间sysdate 的语法格式SYSDATE([fsp])语法格式说明fsp:可以指定 0 - 6 位的秒精度;不写就只返回时分秒,不会精确到毫秒sysdate 和 now 的区别sysdate() 返回执行时间now() 返回 sql 语句开始执行的时间例子SELECT NOW(), SLEEP原创 2021-09-21 16:20:06 · 7743 阅读 · 0 评论 -
时间和日期函数 now 的作用
now 的作用以字符串或数字形式使用该函数,以 ‘YYYY-MM-DD hh:mm:ss’ 或 YYYYMMDDhhmmss 格式返回当前日期和时间注意:要和 sysdate 函数区分开来,后面介绍时讲区别特殊注意:以下几种写法返回的值是一样的1.now()2.current_timestamp()3.current_timestamp()now 的语法格式NOW([fsp])语法格式说明fsp:可以指定 0 - 6 位的秒精度;不写就只返回时分秒,不会精确到毫秒例子SELECT原创 2021-09-21 16:12:36 · 593 阅读 · 0 评论 -
时间和日期函数 curtime 的作用
curtime 的作用以字符串或数字形式使用该函数,以 ‘hh:mm:ss’ 或 Yhhmmss 格式返回当前时分秒特殊注意,以下几种写法返回的值是一样的1.curtime()2.current_time()3.current_timecurdate 的语法格式CURTIME([fsp])语法格式说明fsp : 可以指定 0-6 秒的秒精度;不写就只返回时分秒,不会精确到毫秒例子SELECT CURTIME(); #15:59:16SELECT CURRENT_TIME(原创 2021-09-21 16:01:37 · 2218 阅读 · 0 评论