MySQL学习笔记一:问题总结

总结一下这一周学习中遇到的几个问题:

1、数据库中schema(模式)和database(数据库)的理解
模式(schema)是表、视图等数据库中对象的集合,如下图所示,crazydata、data、db、first等均为模式,以sys为例,可以看到sys是表、视图、存储过程、函数等的集合。在MySQL中,schema等同于database。

屏幕快照 2019-01-13 下午4.49.08.png

2、mysql数据类型总结
2.gif

3、mac下mysql导出CSV文件使用excel打开有乱码
乱码原因:Mac下文本的默认编码是UTF-8,而Excel对中文的处理是GBK编码。
解决方法:参考 https://blog.csdn.net/wqdwin/article/details/76058154
4、like中通配符使用注意事项
(1)常用通配符含义:
百分号%:0个、1个或多个字符
下划线_:单个字符
方括号[]:匹配[]中的任意一个字符
脱字号^:否定,等同于not like,如:
筛选出Customers表中名字开头不为J和M的人

select name
from Cusomers
where name like '[^JM]%';

等价于

select name
from Cusomers
where not name like '[JM]%';

(2)区分大小写
like "jet%" 与JetPack不匹配
(3)尾空格可能会干扰通配符。
如:在保存词anvil时,如果它后面有一个或者多个空格,则子句where name like ‘%anvil’不会匹配它们,因为l后面还有空格。
解决方法:使用函数去掉首尾空格。
5、count的几种用法
count是聚合函数,用来统计结果集的行数。
count(*)、count(1)、count(列号):统计结果中包含为null的行
count(列名):统计结果中不包含为null的行
count (distinct 列名):去除重复项
count和if结合使用:
例如:从城市职位招聘表中求电子商务相关职位数量大于50的城市的所有的职位数

SELECT city , count(1) FROM data
group by city
having count( if ( i like  "%电子商务%", 1, null ) ) > 50  

6、where和having:
(1)where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,where条件中不能包含聚组函数,使用where条件过滤出特定的行。
(2)having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中使用聚组函数,不可跟列名,使用having 条件过滤出特定的组。
简而言之:where在分组之前进行过滤,过滤的是行;having对分组后的结果进行过滤,过滤的是组。
7、and和or的优先级
and具有较高优先级。因此,使用and和or连接多个过滤条件时,注意是否需要加括号,提升or的优先级。
8、like与正则表达式区别
like匹配整个值才能返回,正则表达式匹配时,值的某一部分(子串)符合REGEXP即可

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 表 存储在表中的数据是同一种类型的数据或清单。 数据库中的表有为一个名字来标识自己。 表具有一些特性,这些特性定义...
    蛐蛐囍阅读 1,479评论 0 7
  • (一)几个数据库相关的概念 1.数据库 数据库: 保存有组织数据的容器。 数据的所有存储、检索、管理和处理实际上是...
    快乐的小飞熊阅读 636评论 0 1
  • 这一篇最主要是记录下命令,方便以后查找 使用Mysql 创建数据库 create database mysql_t...
    Treehl阅读 673评论 0 0
  • 二元论(dualism):人的身体死亡后,心灵不会停止存在,思想和意念可以独立于身体而存在。 苏格拉底socrat...
    Stevezs阅读 560评论 0 0
  • 缺陷和不足存在于生活的每一个角落, 最近看到一篇小文 “你走路时讨厌车,你开车时 讨厌行人, 你打工时觉得...
    苏城姑姑Ivy阅读 469评论 0 2

友情链接更多精彩内容