MySQL从入门到精通
本专栏将详细介绍MySQL相关的知识,并且将结合适当的例题进行讲解。
hestyle
戎码一生!
展开
-
MySQL从入门到精通、SQL实战题解
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是...原创 2019-08-19 14:32:07 · 2391 阅读 · 4 评论 -
数据库事务概念理解(通俗易懂)
1、事务简介事务,简短的说就是一组操作要么全部完成,要么全部不做,绝不允许只做其中的一部分操作。比如银行转账,A账号转给B账号1000元,其中包括两个操作A-1000、B+1000,要么这两个操作全部完成,要么全部不做,决不允许只执行其中一个操作(你可以想想想如果A-1000,但是B没有+1000会有什么后果?/斜眼笑/斜眼笑)。事务回滚,当一个事务执行过程中发生了异常、错误,则重新回到最先...原创 2019-12-04 12:57:57 · 6887 阅读 · 4 评论 -
MySQL从入门到精通之子查询经典案例(难点)
请先导入myemployees数据库 执行SQL脚本文件导入数据库关于子查询的讲解请参考我的博客 — MySQL从入门到精通之子查询1、查询工资最低的员工信息: last_name, salary首先我们需要找到最低工资,然后把工资为最低工资的这些员工挑出来。USE myemployees;SELECT last_name,salaryFROM employees#筛选条件,工资 =...原创 2019-08-20 20:32:44 · 358 阅读 · 0 评论 -
MySQL从入门到精通之联合查询
请先导入myemployees数据库 执行SQL脚本文件导入数据库联合查询\color{blue}联合查询联合查询union 联合 合并:将多条查询语句的结果合并成一个结果语法:查询语句1union查询语句2union...应用场景:要查询的结果来自于多个表,且多个表没有直接的连接关系,但查询的信息一致时特点:★1、要求多条查询语句的查询列数是一致的!2、要求多条查...原创 2019-08-20 16:26:28 · 196 阅读 · 0 评论 -
MySQL从入门到精通之分页查询
请先导入myemployees数据库 执行SQL脚本文件导入数据库分页查询:\color{blue}分页查询:分页查询:应用场景:当要显示的数据,一页显示不全,需要分页提交sql请求语法: select 查询列表 from 表 【join type join 表2 on 连接条件 where 筛选条件 group by 分组字段 having 分组后的筛选 order by ...原创 2019-08-20 15:59:33 · 288 阅读 · 0 评论 -
MySQL从入门到精通之子查询
请先导入myemployees数据库 执行SQL脚本文件导入数据库子查询:\color{blue}子查询:子查询:含义:出现在其他语句中的select语句,称为子查询或内查询外部的查询语句,称为主查询或外查询分类:按子查询出现的位置: select后面: 仅仅支持标量子查询 from后面: 支持表子查询 where或having后面:★ 标量子查询(单行) √...原创 2019-08-20 15:38:28 · 420 阅读 · 0 评论 -
MySQL从入门到精通之SQL99语法中的连接查询
请先导入myemployees数据库 执行SQL脚本文件导入数据库sql99语法:\color{blue}sql99语法:sql99语法:语法: select 查询列表 from 表1 别名 【连接类型】 join 表2 别名 on 连接条件 【where 筛选条件】 【group by 分组】 【having 筛选条件】 【order by 排序列表】 分类:内连接...原创 2019-08-20 12:44:00 · 563 阅读 · 0 评论 -
MySQL从入门到精通之SQL92语法中的连接查询
请先导入myemployees数据库 执行SQL脚本文件导入数据库连接查询:\color{blue}连接查询:连接查询:含义:又称多表查询,当查询的字段来自于多个表时,就会用到连接查询笛卡尔乘积现象:表1 有m行,表2有n行,结果=m*n行发生原因:没有有效的连接条件如何避免:添加有效的连接条件分类: 按年代分类: sql92标准:仅仅支持内连接 sql99标准【推荐】:...原创 2019-08-20 11:03:27 · 642 阅读 · 0 评论 -
MySQL从入门到精通之常见函数
常见函数:\color{blue}常见函数:常见函数:将一组逻辑语句封装在方法体中,只对外暴露方法名以供调用。(和编程语言中的函数、方法功能类似)好处:1、隐藏了实现细节 2、提高代码的重用性调用:select 函数名(实参列表) 【from 表】;特点: ①叫什么(函数名) ②干什么(函数功能)分类: 1、单行函数 如 concat、length、ifnull等 2、分组...原创 2019-08-20 10:01:36 · 299 阅读 · 0 评论 -
MySQL从入门到精通之分组查询
请先导入myemployees数据库 执行SQL脚本文件导入数据库分组查询:\color{blue}分组查询:分组查询:select 查询列表from 表[where 筛选条件](可选)group by 分组的字段[order by 排序的字段];(可选)特点:1、和分组函数一同查询的字段必须是group by后出现的字段2、筛选分为两类:分组前筛选和分组后筛选 针对的...原创 2019-08-19 21:38:05 · 306 阅读 · 0 评论 -
MySQL从入门到精通之排序查询
请先导入myemployees数据库 执行SQL脚本文件导入数据库排序查询:\color{blue}排序查询:排序查询:按照某个或者某几个字段进行排序输出查找得到的结果。语法:select 查询列表from 表名[where 筛选条件](可选)order by 排序的字段或表达式;特点:1、asc代表的是升序,可以省略,desc代表的是降序2、order by子句可以支持 ...原创 2019-08-19 19:58:26 · 360 阅读 · 0 评论 -
MySQL从入门到精通之分组函数
请先导入myemployees数据库 执行SQL脚本文件导入数据库分组函数:\color{blue}分组函数:分组函数:功能:用作统计使用,又称为聚合函数或统计函数或组函数常见函数:sum 求和、avg 平均值、max 最大值 、min 最小值 、count 计算个数特点:1、sum、avg一般用于处理数值型 max、min、count可以处理任何类型2、以上分组函数都忽略nul...原创 2019-08-19 19:28:08 · 253 阅读 · 0 评论 -
MySQL从入门到精通之条件查询
条件查询,顾名思义,就是在查询的时候加上一些筛选条件,只输出符合条件的结果。语法:\color{blue}语法:语法:select 查询列表from 表名where 筛选条件;分类:\color{blue}分类:分类:一、按条件表达式筛选 简单条件运算符:>、 <、 =、 !=、 <>、 >=、 <= <>是表示不等于二...原创 2019-08-19 16:57:39 · 456 阅读 · 0 评论 -
MySQL从入门到精通之基础查询
数据库操作说白了就是增删改查的集合,并且查是重中之重。话不多说,直接开始吧。本博客使用SQLyog图形化管理工具,使用教程移步MySQL数据库图形化管理工具介绍、安装语法:\color{blue}语法:语法: select 查询列表 from 表名;特点:1、查询列表可以是:表中的字段、常量值、表达式、函数2、查询的结果是一个虚拟的表格一、查询表中的单个字段比如:查询employe...原创 2019-08-19 16:01:21 · 434 阅读 · 0 评论 -
执行SQL脚本文件导入数据库
本专栏——MySQL从入门到精通后期都是以myemployees数据库和girls库进行示例操作,所以强烈建议大家把这两个数据库导入到MySQL中,这样方便学习。一、导入myemployees数据库打开SQLyog图形化界面myemployees.sql文件内容如下:/*SQLyog Ultimate v10.00 Beta1MySQL - 5.7.27 : Database -...原创 2019-08-19 15:01:35 · 4652 阅读 · 2 评论 -
MySQL数据库图形化管理工具介绍、安装
在前一篇博客——MySQL常见命令中使用的终端输入命令的方式进行操作数据库,这种方式并不怎么适用新手,并且在实际开发过程中都是使用数据库图形化界面管理工具。但是还是用命令操作,并不会靠鼠标点击按钮来进行管理数据库。下面将介绍几种数据库图形界面管理工具。一、SQLyog(Windows系统)在win系统,这个工具可以说是小巧而功能强大,这里不过多介绍,直接开始安装。1、SQLyog的安装...原创 2019-08-19 11:49:35 · 1776 阅读 · 0 评论 -
MySQL常见命令
本博客将在win10+MySQL5.7环境下演示一些MySQL常见命令。(若读者需要跟着博客一同操作,请先打开MySQL服务,MySQL开启教程链接)一、MySQL登录①、通过win + R组合快捷键打开运行界面,并输入cmd,来到终端②、输入命令 mysql -h ip地址 -P 端口 -u MySQL用户名 -p密码 并按下回车ip地址:本地直接填写127.0.0.1或者local...原创 2019-08-19 10:17:13 · 323 阅读 · 0 评论 -
win10环境下MySQL服务常见的两种开启方式
本博客将在win10+MySQL5.7的环境下,演示一些MySQL服务的两种开启方式。MySQL服务的开启、关闭这一步很有必要,有时当你打开一些数据库图形操作界面,会报错说无法连接,这一般都是MySQL服务没有开启的锅。方法一、通过系统“服务”图形界面进行开启。①、点击win10的搜索助手,或者快捷键win+q开启。②、在搜索栏输入“服务”,查找系统应用,并双击进入。③、查看MyS...原创 2019-08-19 08:43:50 · 26299 阅读 · 1 评论 -
Ubuntu19.04 安装 MySQL5.7 数据库(附修改默认字符集)
一、通过终端安装MySQL1、打开终端(或者快捷键ctrl + shift + t)2、在终端输入安装命令 sudo apt-get install mysql-server mysql-common mysql-client 并按下回车键。接着输入账号密码。输入大写字母Y,执行当前命令。并等待安装完毕,整个安装包稍大,如果。二、开启MySQL服务,并修改默认用户名、密码首先在终端输...原创 2019-08-18 22:30:52 · 1866 阅读 · 3 评论 -
Windows 1903安装MySQL5.7数据库
耐心等待安装完毕。原创 2019-08-24 23:22:13 · 364 阅读 · 0 评论 -
Windows下修改MySQL5.7的默认字符集(两种方法)
mysql安装时默认设置的字符集是latin1,而它是不支持中文,所以导致当插入的数据含有中文时,会出现乱码或者无法插入到数据库中。因此我们需要修改mysql的默认字符集为utf8,(注意不是UTF−8\color{red}注意不是UTF-8注意不是UTF−8),utf8字符集下一个字符占3个字节,如果涉及到emoji(四个字节),还需要将utf8修改为utf8mb4字符集,后者一个字符默认占四...原创 2019-09-03 09:23:51 · 6976 阅读 · 3 评论 -
MySQL从入门到精通之数据类型
如果你有一些编程基础,比如C语言、C++、Java等强类型语言,对这个概念肯定不陌生。如果没有学过,可以从数学中的整数、实数等概念进行迁移到整数型(整形int)、浮点型(float单精度,double双精度)。一、整形在mysql中,整形一共有五种,对应名称、大小如下表整型字节数signed有符号unsigned无符号tinyint1-128~1270~255...原创 2019-09-11 11:01:38 · 208 阅读 · 0 评论 -
MySQL从入门到精通之库的管理
数据库的操作主要就是库、表、数据的增删改查四种,下面将演示库的管理。一、创建库语法:create database [if not exists] 库名;if not exists是可选语句,用于处理当前主机中已经有一个同名的库,如果再创建就会报错,我们让它进行检测,如果检测到没有同名的库才创建实例:创建students库CREATE DATABASE IF NOT EXISTS ...原创 2019-09-11 11:28:01 · 226 阅读 · 0 评论 -
MySQL从入门到精通之表的管理
表的管理也是数据库操作中的一个比较常用的操作,主要也是增删改查。一、创建表语法:create table 表名( 列名 列的类型【(长度) 约束】, 列名 列的类型【(长度) 约束】, 列名 列的类型【(长度) 约束】, ... 列名 列的类型【(长度) 约束】);注意:别漏了最后的分号#创建库create database if not exists students...原创 2019-09-11 12:08:51 · 246 阅读 · 0 评论 -
MySQL从入门到精通之约束
约束是一种限制,并且一般是指限制表中的字段。比如将某学生表的姓名字段设置为非空,这样插入一个学生的信息到数据库中姓名就不能为空。语法:CREATE TABLE 表名( 字段名 字段类型 列级约束, 字段名 字段类型, 表级约束)也就是说表级约束一般单独放一行,列级约束放在字段后面。分类:六大约束 NOT NULL:非空,用于保证该字段的值不能为空 比如姓名、学号等 DEF...原创 2019-09-11 15:41:48 · 722 阅读 · 0 评论 -
MySQL从入门到精通之视图
请先导入myemployees数据库 执行SQL脚本文件导入数据库场景引入:假设xxx学校有一张学生信息表,里面记录了所有本科学生的学号、姓名、籍贯、身份证号等详细信息。有一天,该校的体育部需要查看本科学生的学号、姓名、电话号码,这时体育部向需要数据库提出查看需求。如果你是数据库管理员,你会把整张表都给他看吗?这样安全吗?有些人可能会想到,我新建一张只包含学生的学号、姓名、电话号码的表给他...原创 2019-09-11 17:56:45 · 136 阅读 · 0 评论 -
MySQL从入门到精通之数据的管理
请先导入myemployees数据库 执行SQL脚本文件导入数据库数据的管理主要是数据的增删改查,前面十来篇博客都是在介绍数据的查询,所以此篇将主要介绍数据的增、删、改。一、插入语句形式1:使用values语法:insert into 表名(列名1,列名2...) values(值1,值2...);特点:1、列的个数可以少于表名中的列数,没有出现的列名复制null(当然该列没有n...原创 2019-09-11 22:20:10 · 317 阅读 · 0 评论 -
Mac OS 10.14.6安装MySQL5.7并修改默认字符集
一、官网下载MySQL5.7官网地址:https://downloads.mysql.com/archives/community/如果下载速度慢的话,建议复制到迅雷、比特彗星等多线程下载工具进行下载。二、安装MySQL镜像找到下载的dmg镜像,双击装载。会提示一次输入系统密码验证,输入即可。安装完毕后会提示要一个弹窗权限,给它即可。接着会弹出安装MySQL时随机设...原创 2019-09-12 22:11:21 · 456 阅读 · 0 评论 -
MySQL从入门到精通之变量
在编程语言C、C++、Python等几乎所有编程语言中都有变量这个概念,说白了变量就是一个值可以改变的量,有点类似数学中未知数x,x的值可变。同样在MySQL中也有变量,含义与编程语言中的变量几乎一样。在MySQL中变量也有分类:1、系统变量: 全局变量 会话变量2、自定义变量: 用户变量 局部变量一、系统变量系统变量:变量由系统定义,不是用户定义,属于服务器层面注意:全局变...原创 2019-09-13 19:28:08 · 188 阅读 · 0 评论 -
MySQL从入门到精通之函数
请先导入myemployees数据库 执行SQL脚本文件导入数据库函数在众多有面向过程部分的编程语言中非常见,比如C、C++、Python等。在面向对象编程中,函数又被称为方法。但是函数、方法的作用都是对数据进行特定的处理,为提高代码的重复利用性,所以把一些连续的操作、步骤进行封装,也就是函数。在MySQL也有函数,一组预先编译好的SQL语句的集合,理解成批处理语句。同样是提高代码的重用性,减...原创 2019-09-13 20:16:28 · 273 阅读 · 0 评论 -
MySQL从入门到精通之存储过程
请先导入myemployees数据库 执行SQL脚本文件导入数据库MySQL中的存储过程和函数作用都是一样的,提高代码的重用性,减少编译次数并且减少和数据库服务器的连接次数,从而提高效率。请先阅读上一篇博客 MySQL从入门到精通之函数一、存储过程创建语法:CREATE PROCEDURE 存储过程名(参数列表)BEGIN 存储过程体(一组合法的SQL语句)END 结束标记符号...原创 2019-09-13 21:11:34 · 481 阅读 · 0 评论 -
MySQL从入门到精通之流程控制结构
请先导入myemployees数据库 执行SQL脚本文件导入数据库什么叫流程控制结构呢?说白了就是语句执行过程,比如while、for循环、if条件判断、switch-case选择判断等,可以说大部分的编程语言都有这些语句。在MySQL中同样也有,只是有一些语法差别。一、分支结构1、if函数语法:if(条件,值1,值2)功能:实现双分支2、if结构语法:if 条件1 then 语...原创 2019-09-13 22:21:49 · 173 阅读 · 0 评论 -
LeetCode 组合两个表
表1: Person+-------------+---------+| 列名 | 类型 |+-------------+---------+| PersonId | int || FirstName | varchar || LastName | varchar |+-------------+---------+PersonId ...原创 2019-09-14 10:18:21 · 369 阅读 · 0 评论 -
LeetCode 第二高的薪水
编写一个 SQL 查询,获取 Employee 表中第二高的薪水(Salary) 。+----+--------+| Id | Salary |+----+--------+| 1 | 100 || 2 | 200 || 3 | 300 |+----+--------+例如上述 Employee 表,SQL查询应该返回 200 作为第二高的薪水。如果不存在...原创 2019-09-14 10:36:50 · 206 阅读 · 0 评论 -
LeetCode 第N高的薪水
编写一个 SQL 查询,获取 Employee 表中第 n 高的薪水(Salary)。+----+--------+| Id | Salary |+----+--------+| 1 | 100 || 2 | 200 || 3 | 300 |+----+--------+例如上述 Employee 表,n = 2 时,应返回第二高的薪水 200。如果不存在...原创 2019-09-14 10:51:44 · 207 阅读 · 0 评论 -
LeetCode 分数排名
编写一个 SQL 查询来实现分数排名。如果两个分数相同,则两个分数排名(Rank)相同。请注意,平分后的下一个名次应该是下一个连续的整数值。换句话说,名次之间不应该有“间隔”。+----+-------+| Id | Score |+----+-------+| 1 | 3.50 || 2 | 3.65 || 3 | 4.00 || 4 | 3.85 || 5 |...原创 2019-09-14 11:12:54 · 4229 阅读 · 0 评论 -
LeetCode 连续出现的数字
编写一个 SQL 查询,查找所有至少连续出现三次的数字。+----+-----+| Id | Num |+----+-----+| 1 | 1 || 2 | 1 || 3 | 1 || 4 | 2 || 5 | 1 || 6 | 2 || 7 | 2 |+----+-----+例如,给定上面的 Logs 表, 1 是唯一连续出现至...原创 2019-09-14 11:45:31 · 348 阅读 · 0 评论 -
LeetCode 超过经理收入的员工
Employee 表包含所有员工,他们的经理也属于员工。每个员工都有一个 Id,此外还有一列对应员工的经理的 Id。+----+-------+--------+-----------+| Id | Name | Salary | ManagerId |+----+-------+--------+-----------+| 1 | Joe | 70000 | 3 ...原创 2019-09-14 12:24:50 · 140 阅读 · 0 评论 -
LeetCode 查找重复的电子邮箱
编写一个 SQL 查询,查找 Person 表中所有重复的电子邮箱。示例:+----+---------+| Id | Email |+----+---------+| 1 | a@b.com || 2 | c@d.com || 3 | a@b.com |+----+---------+根据以上输入,你的查询应返回以下结果:+---------+| Email ...原创 2019-09-14 12:47:47 · 262 阅读 · 0 评论 -
LeetCode 从不订购的客户
某网站包含两个表,Customers 表和 Orders 表。编写一个 SQL 查询,找出所有从不订购任何东西的客户。Customers 表:+----+-------+| Id | Name |+----+-------+| 1 | Joe || 2 | Henry || 3 | Sam || 4 | Max |+----+-------+Orders...原创 2019-09-14 12:56:10 · 201 阅读 · 0 评论