
MySQL
MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。
在本教程中,会让大家快速掌握 MySQL 的基本知识,并轻松使用 MySQL 数据库。
追影的React开发者
注重用户,专注于产品、界面和用户体验
联系邮箱:liuyafeis@outlook.com
展开
-
MySQL查询 1:基本查询
1. 创建数据库、数据表-- 创建数据库create database python_test_1 charset=utf8;-- 使用数据库use python_test_1;-- students表create table students( id int unsigned primary key auto_increment not null, name varchar(20) default '', age tinyint unsigned defaul原创 2020-12-04 11:12:10 · 363 阅读 · 0 评论 -
MySQL查询 2:条件查询
使用where子句对表中的数据筛选,结果为true的行会出现在结果集中语法如下:select * from 表名 where 条件;例:select * from students where id=1;where后面支持多种运算符,进行条件的处理 比较运算符 逻辑运算符 模糊查询 范围查询 空判断 1. 比较运算符等于: = 大于: > 大于等于: >= 小于: < 小于等于: <= 不等于: != 或 <>例1:原创 2020-12-04 11:13:31 · 378 阅读 · 0 评论 -
MySQL查询 3:排序
为了方便查看数据,可以对数据进行排序语法:select * from 表名 [where ...] order by 列1 asc|desc [,列2 asc|desc,...]说明将行数据按照列1进行排序,如果某些行列1的值相同时,则按照列2排序,以此类推 默认按照列值从小到大排列(asc) asc从小到大排列,即升序 desc从大到小排序,即降序例1:查询未删除学生的信息,按名称升序select * from students where is_delete=0 ord原创 2020-12-04 11:14:16 · 1067 阅读 · 0 评论 -
MySQL查询 4:聚合函数
为了快速得到统计数据,经常会用到如下5个聚合函数1.求总数count(*)表示计算表的总行数 count(\列)表示计算某列的总行数,假如该列某个值为null则不会统计例1:查询学生总数select count(*) from students;例2:统计学生表中,height 字段 有数据的总人数select count(height) from students;2.求最大值max(列)表示求此列的最大值例3:求年龄最大的女生select max(age)原创 2020-12-04 11:14:54 · 1426 阅读 · 0 评论 -
MySQL查询 5:分组查询
在实际业务中,经常会对数据进行汇总分析,通过 group by 分组查询可解决该需求1. group bygroup by的含义:将查询结果按照1个或多个字段进行分组,字段值相同的为一组 group by可用于单个字段分组,也可用于多个字段分组select * from students;+----+-----------+------+--------+--------+--------+-----------+| id | name | age | height | gen原创 2020-12-04 11:15:45 · 193 阅读 · 0 评论 -
MySQL查询 6:分页查询
当数据量过大时,通过分批、分页加载数据既能提升加载速度,也可更好显示查询结果语法select * from 表名 limit start,count说明从start位置开始,获取count条数据 limit 必须放在查询的最后面例1:查询前3行男生信息select * from students where gender=1 limit 3;select * from students where gender=1 limit 0,3;示例:分页已知:每页显示m条数原创 2020-12-04 11:16:42 · 309 阅读 · 0 评论 -
MySQL查询 7:连接查询
当查询结果的列来源于多张表时,需要将多张表连接成一个大的数据集,再选择合适的列返回mysql支持三种类型的连接查询,分别为: 内连接查询:查询的结果为两个表匹配到的数据 左连接查询:查询的结果为两个表匹配到的数据,左表特有的数据,对于右表中不存在的数据使用null填充 右连接查询:查询的结果为两个表匹配到的数据,右表特有的数据,对于左表中不存在的数据使用null填充 语法select * from 表1 inner或left或...原创 2020-12-04 11:20:04 · 282 阅读 · 0 评论 -
MySQL查询 8:自关联查询
设计省信息的表结构provinces id title proid 设计市信息的表结构citys id title proid 设计区县信息表结构areas id title proid title表示名称,proid表示所属上一级的id值,比如citys.proid 是对应所属省份的id,areas.proid对应的是所属城市的id值 问题:能不能将三个表合成一张表呢?思考:观察三张表发现,表的结构都是一样的,存储的都是原创 2020-12-04 11:20:42 · 636 阅读 · 0 评论 -
MySQL查询 9:子查询
子查询在一个 select 语句中,嵌入了另外一个 select 语句, 那么被嵌入的 select 语句称之为子查询语句主查询主要查询的对象,第一条 select 语句主查询和子查询的关系子查询是嵌入到主查询中 子查询是辅助主查询的,要么充当条件,要么充当数据源 子查询是可以独立存在的语句,是一条完整的 select 语句子查询分类标量子查询: 子查询返回的结果是一个值(一行一列) 列子查询: 返回的结果是一列(一列多行) 行子查询: 返回的结果是一行(一行多列)原创 2020-12-04 11:21:25 · 155 阅读 · 0 评论 -
MySQL查询 10:总结
查询的完整格式 ^_^ 不要被吓到 其实很简单 !_ !SELECT select_expr [,select_expr,...] [ FROM tb_name [WHERE 条件判断] [GROUP BY {col_name | postion} [ASC | DESC], ...] [HAVING WHERE 条件判断] [ORDER BY {col_name|expr|postion} [ASC | DESC], ....原创 2020-12-04 11:22:03 · 125 阅读 · 0 评论 -
MySQL高级 1:视图
1. 视图是什么通俗的讲,视图就是一条SELECT语句执行后返回的结果集。所以我们在创建视图的时候,主要的工作就落在创建这条SQL查询语句上。视图是对若干张基本表的引用,一张虚表,查询语句执行的结果,不存储具体的数据(基本表数据发生了改变,视图也会跟着改变);2. 视图的作用重用sql语句,简化用户操作 更清晰表达数据 当数据库重构时,降低对用户(程序)的影响 视图能够对机密数据提供安全保护3. 定义视图建议以v_开头create view 视图名称 as select语句原创 2020-12-06 16:05:18 · 301 阅读 · 3 评论 -
MySQL高级 2:事务
1. 为什么要有事务事务广泛的运用于订单系统、银行系统等多种场景例如:A用户和B用户是银行的储户,A账户余额2000元,B账户余额3000元,现在A要给B转账500元,那么需要做以下几件事:检查A的账户余额>500元; A 账户中扣除500元; B 账户中增加500元;正常的流程走下来,A账户扣了500,B账户加了500,皆大欢喜。那如果A账户扣了钱之后,系统出故障了呢?A白白损失了500,而B也没有收到本该属于他的500。以上的案例中,隐藏着一个前提条件:A扣钱和原创 2020-12-06 16:05:57 · 160 阅读 · 0 评论 -
MySQL高级 3:索引
1. 思考在图书馆中是如何找到一本书的?在字典中查找一个单词? 一般的应用系统对比数据库的读写比例在10:1左右(即有10次查询操作时有1次写的操作),而且插入操作和更新操作很少出现性能问题,遇到最多、最容易出问题还是一些复杂的查询操作,所以查询语句的优化显然是重中之重2. 解决办法当数据库中数据量很大时,查找数据会变得很慢优化方案:建立索引3. 索引是什么索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有...原创 2020-12-06 16:09:37 · 193 阅读 · 0 评论 -
MySQL高级 4:数据库设计
关系型数据库建议在E-R模型的基础上,我们需要根据产品经理的设计策划,抽取出来模型与关系,制定出表结构,这是项目开始的第一步 在开发中有很多设计数据库的软件,常用的如power designer,db desinger等,这些软件可以直观的看到实体及实体间的关系 设计数据库,可能是由专门的数据库设计人员完成,也可能是由开发组成员完成,一般是项目经理带领组员来完成 现阶段不需要独立完成数据库设计,但是要注意积累一些这方面的经验三范式经过研究和对使用中问题的总结,对于设计数据库提出了一些规范,这些规原创 2020-12-06 16:22:35 · 490 阅读 · 0 评论