首先,先了解一下数据库的基本概念要点:

数据库是数据存储的集合,表示数据结构化的信息

列存储表中的信息

行存储表的明细

主键是表中的唯一标识

主键不具备业务意义

在实际操作中,对表的主键不做强制性要求,但是建议设立

主键必须唯一

每行必须有一个主键,不可为空

主键的值不可被修改

主键值被删除后不可重用

表A的主键,可以作为表B的字段,此时不受约束

数据库的基本类型(最基础的):char--文本 int--整数 float--小数点 date--到日的日期 timestamp--精确到秒或者毫秒

数据库的实际操作:

MySQL的安装略,直接按照网上教学视频逐步安装即可。(这里面写到几个本人安装踩到的比较低级的坑,对我一个嘎嘎新的小新手来说是坑,就是在装win7的本的时候一次完成,基本没什么,在装台式机的win10的时候,第一次装的时候没有workbench,重装之后发现依然部分报错,原因是没有将原有文件删除干净,再后来装的时候,仔细看了一下每一步,确定有workbench的时候,就正常装好了。)接下来打开workbench进行操作。

点击新建数据库

创建一个表,对表进行命名,建议养成好的习惯在注释的地方进行备注,以便日后表多的时候或者别人使用的时候更好的了解内容。

数据编码先择UTF8形式的

将需要的字段输入进区,并调整字段的值类型,可设置主键。

再将表格导入数据库表内(建议.csv格式的,前面提到过为什么,因为Excel本身会有很多形式)

此时在导入数据的时候有2中方法:

1.用workbench界面直接导入,有点是交互性强易掌握,缺点是速度会慢需要等待。

2.直接写代码的形式,有点是运行很快,缺点是代码需要自己一点点写进去。(在数据量较大多行的情况下,建议直接用代码形式加载)

【注意】加载数据是别的编码例如jbk形式的,导入进去的时候就会出现乱码的情况,当数据库选择的是UTF8的时候,导入的数据也应是utf8才可。

解决方式:将Excel另存为utf8形式的.csv文件导入即可。

导入的过程中会直接把表头导入进去,直接选择删除行即可。

需要注意的是:

有的时候文本过长~长出了文本限定的45,这时候将需要进行修改将45变大,否则会报错。

导入后检查无误建表保存。

【MySQL语句】

1.核心:select查询语句

select*form data.表名称

*为通配符,代表全部

2.limit 100 限制搜索100条数据,查找100行

执行两条sql语句的话,结束时用“;”进行结束

点击保存,可将查找出来的数据进行导出生成。

3.order by 字段 desc

将字段进行升序排列

加desc为降序排列

4.过滤功能where命令

where 字段=过滤字段

逻辑关系符号“=”“>”"<"

between 数值 and 数值:在两个数值之间

in(“字段”,“字段”)特定的条件筛选两个字段的内容

“!=”不等于

“<>”不等于

not in (“字段”,“字段”)过滤掉两个字段的内容

多条件查找 加and 链接 and 字段=“”

or 或者

多重嵌套

where city=“上海”

and education=“本科”

or work=“1-3年”

【注意】条件顺序

where city=“上海”

and (eudcation="本科"

or work =“1-3年”)

执行逻辑为()内进行优先进行

模糊查找

where

字段 like “%模糊词%”:过滤包含模糊次的

%模糊词:以模糊词结尾的

模糊词%:以模糊词开头的

进行分组

group by 字段

【实例应用】

select 城市 ,count(城市ID)form data.表名

group by 城市

运行后:城市分组对应的城市ID进行计数的数量和

distinct去重

【group by 分组的高级用法】

having单纯针对分组的过滤

添加占比

as 字段别名化将过长复杂的代码进行替代

结果是一样的,但是,不能用于逻辑出发的运算,因为不能识别,不能直接用于select,但是可以在where,group by 的层面进行使用

【函数】

1.拆分技巧

left与Excel基本一致

locate()与Excel里面的find一样

写嵌套的时候,建议一步一步写,分步骤走

支持中间截取函数substr

效果等同于上面求出薪资的上线和下线,但是“8K以上”这样的数据就无法进行处理。

子查询

上案例可视为一个tab进行查询

可以进行嵌套,给表添加别名

就可以直接引用别名 bottom top 等等

数据清洗

计算为顺序计算

调整一下让代码优雅一些,并且有别名运行起来效果较好。

子查询的字段要保持一致,否则会报错

跨表分析,使用子查询

得到的并不是全部的明细字段,通过用jion可以将两张表进行关联。

加载万条以上的数据需要使用命令行的方式:

打开MySQL 5.7 Command Line Client

路径可以直接拖拽进去

指定分割符,否则会报错

【时间操作】

进行格式的改变

MySQL可链接Power BI 进行使用,在使用的过程中,建议先将语句写好,再在Power BI中运行得出想要添加字段和内容。不建议直接在Power BI上面直接添加进行,因为前者为服务器直接运行后再Power BI中显示结果,后者则是考量自身电脑的性能。

多多结合实际进行练习,或者去课程提供的素材晚上去刷题进行联系。祝看到笔记的所有人都能熟悉掌握MySQL。

返回总目录

转自:https://ask.hellobi.com/blog/cbdingchebao/1033

第五周:MySQL数据库的更多相关文章

  1. 第十五章 MySQL 数据库

    学习要点:1.Web 数据库概述2.MySQL 的操作3.MySQL 常用函数4.SQL 语句详解5.phpMyadmin 一.Web数据库概述 现在,我们已经熟悉了PHP 的基础知识,这是我们想暂时 ...

  2. Mac之OS系统下搭建JavaEE环境 <五> 之Mysql数据库的安装及配置

    这里将推荐两款 集成的Mysql环境 十分轻便好用,MAMP 和 XAMPP MAMP XAMPP 1.MAMP下载 官网: https://www.mamp.info/en/ 下载安装即可使用 MA ...

  3. 边记边学PHP-(十五)MySQL数据库基础操作2

    四.使用可视化工具创建数据库 尽管使用命令行感觉更像我们程序猿,可是我还是比較喜欢使用workbench来创建数据库. 首先打开workbench , 一个比較友好的界面就打开了,哈哈.我还是比較喜欢 ...

  4. 五.获得MYSQL数据库自动生成的主键

    测试脚本如下: 1 create table test1 2 ( 3 id int primary key auto_increment, 4 name varchar(20) 5 ); 测试代码: ...

  5. Java开发最佳实践(二) ——《Java开发手册》之"异常处理、MySQL 数据库"

    二.异常日志 (一) 异常处理 (二) 日志规约 三.单元测试 四.安全规约 五.MySQL数据库 (一) 建表规约 (二) 索引规约 (三) SQL语句 (四) ORM映射 六.工程结构 七.设计规 ...

  6. [转] Linux学习之CentOS(十三)--CentOS6.4下Mysql数据库的安装与配置

    from:  http://www.cnblogs.com/xiaoluo501395377/archive/2013/04/07/3003278.html 如果要在Linux上做j2ee开发,首先得 ...

  7. Centos6.4下Yum命令安装Mysql数据库及配置

    如果要在Linux上做j2ee开发,首先得搭建好j2ee的开发环境,包括了jdk.tomcat.eclipse的安装(这个在之前的一篇随笔中已经有详细讲解了 如果要开发web项目,我们当然可以安装一个 ...

  8. php面试题之五——MySQL数据库(基础部分)

    五.MySQL数据库 mysql_num_rows() mysql_affected_rows() 这两个函数都作用于 mysql_query($query)操作的结果,mysql_num_rows( ...

  9. Linux学习之CentOS--CentOS6.4下Mysql数据库的安装与配置【转】

      如果要在Linux上做j2ee开发,首先得搭建好j2ee的开发环境,包括了jdk.tomcat.eclipse的安装(这个在之前的一篇随笔中已经有详细讲解了Linux学习之CentOS(七)--C ...

  10. Linux学习之CentOS(十三)--CentOS6.4下Mysql数据库的安装与配置

    原文:http://www.cnblogs.com/xiaoluo501395377/archive/2013/04/07/3003278.html 如果要在Linux上做j2ee开发,首先得搭建好j ...

随机推荐

  1. Xshell基础入门

    启动 双击快捷方式,启动 新建回话 建立连接 在这里需要填写的是: 1. 连接名称 2. 服务器IP 3. 服务器端口(默认22) 填写完毕后,点击确定,保存配置,回到连接页面,可以看到多了一个测试服 ...

  2. 阿里云搭建hadoop集群服务器,内网、外网访问问题(详解。。。)

    这个问题花费了我将近两天的时间,经过多次试错和尝试,现在想分享给大家来解决此问题避免大家入坑,以前都是在局域网上搭建的hadoop集群,并且是局域网访问的,没遇见此问题. 因为阿里云上搭建的hadoo ...

  3. CentOS 忘记root密码(重置root密码)

    首先开机选择Advanced options for ****这一行按回车: 然后选中最后是(recovery mode)这一行按"E"进入编辑页面: 将ro recovery改为 ...

  4. 序列化模块1 json

    ......得到一个 字符串 的结果 过程就叫序列化 字典 / 列表 / 数字 /对象 -序列化->字符串 为什么要序列化 # 1.要把内容写入文件 序列化 # 2.网络传输数据 序列化 字符串 ...

  5. 移动端Web Meta标签

    原文  http://blog.segmentfault.com/jianjian_532633/1190000000654839 添加到推刊   在介绍移动端特有 meta 标签之前,先简单说一下 ...

  6. Fastify 系列教程二 (中间件、钩子函数和装饰器)

    Fastify 系列教程: Fastify 系列教程一 (路由和日志) Fastify 系列教程二 (中间件.钩子函数和装饰器) Fastify 系列教程三 (验证.序列化和生命周期) Fastify ...

  7. ios虚拟机安装(二)

    1)vmware快照功能 创建还原点:右键-->snapshot(对当前虚拟机系统备份) 2)虚拟机与外界系统通话 找到路径:/vmware/vmware workstation下的darwin ...

  8. CSS 样式初始化

    去除浏览器对html的附加样式,避免不同浏览器之间的样式差异,给前端开发提供统一的样式基础.附加样式: .clearfix - 清除浮动 .wordsBreak - 允许文本在任意位置的换行 .ell ...

  9. 深入理解net core中的依赖注入、Singleton、Scoped、Transient(二)

    相关文章: 深入理解net core中的依赖注入.Singleton.Scoped.Transient(一) 深入理解net core中的依赖注入.Singleton.Scoped.Transient ...

  10. 修改spfile位置

    虽然很多地方不建议这么做,可是有HA.oracle软件建在本地盘的情况下,如果spfile放在dbs下,会导致每次修改spfile都要去手动copy到备机上,这是很麻烦的一件事情,所以我把spflie ...