关于MySQL的使用在N年前其实是系统的学过,不过。。有很多相关的知识点也忘得差不多了,所以,借着学习全新的大数据对其再进行一下完整的梳理,也为其大数据的学习打下坚实的基础。

MySQL安装与使用:


  • 数据库的英文单词: DataBase 简称 : DB。
  • 什么数据库?
    用于存储和管理数据的仓库。
  • 数据库的特点:

1. 持久化存储数据的。其实数据库就是一个文件系统
2. 方便存储和管理数据
3. 使用了统一的方式操作数据库 -- SQL


常见的数据库软件:
先来看一下市面上数据库软件的一个排名榜图:

大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_数据

下面对其主流的数据库进行一个说明:


1、Oracle:收费的大型数据库,Oracle公司的产品。具体价格可以下面瞅下,还是很吓人的。。
大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_数据库_02

2、DB2 :IBM 公司的数据库产品,收费的。常应用在银行系统中。
3、SQL Server:MicroSoft 公司收费的中型的数据库。C#、.net 等语言常使用。曾经大学里就是学习C#,所以对这款还是很有印象的,参考一下它的价格:
大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_mysql_03

4、SQLite: 嵌入式的小型数据库,应用在手机端,如:Android。我的工作就是它,所以就不多说了。




学习选用的数据库:
很显然咱们肯定会用MySql来进行学习,免费功能也很强大,不过在之后也会学习Oracle滴。

MySQL安装与使用:


  • 安装
    1、打开下载的 mysql 安装文件双击解压缩,运行“mysql-5.5.40-win64.msi”。【我电脑虽说是mac,但是装了个windows虚拟机,为了保持跟教程的一致,我还是直接用window的方式来进行使用,另外最终我学习大数据是为了进“国企”,而他们的电脑全是windows了】
    大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_mysql_04

大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_数据_05

大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_数据_06


2. 选择安装类型,有“Typical(默认)”、“Complete(完全)”、“Custom(用户自定义)”三个选项,选择“Custom,” 按“next”键继续。



大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_mysql_07


3. 点选“Browse”,手动指定安装目录。
大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_数据库_08


4. 填上安装目录,我的是“d:\Program Files (x86)\MySQL\MySQL Server 5.0”,按“OK”继续。
大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_mysql_09


5. 确认一下先前的设置,如果有误,按“Back”返回重做。按“Install”开始安装。
大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_数据_10

大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_mysql_11

大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_mysql_12

大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_mysql_13

大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_数据_14 


6. 正在安装中,请稍候,直到出现下面的界面,则完成MYSQL的安装。
大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_数据库_15


安装完成了,出现如下界面将进入mysql配置向导。




配置


1、数据库安装好了还需要对数据库进行配置才能使用 MYSQL 的配置,如下:
大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_mysql_16

2、选择配置方式,“DetailedConfiguration(手动精确配置)”、“StandardConfiguration(标准配置)”,我 们选择“Detailed Configuration”,方便熟悉配置过程。
大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_mysql_17

3、选择服务器类型,“DeveloperMachine(开发测试类,mysql占用很少资源)”、“ServerMachine(服务 器类型,mysql 占用较多资源)”、“Dedicated MySQL Server Machine(专门的数据库服务器,mysql 占 用所有可用资源)”。
大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_mysql_18

4、选择mysql数据库的大致用途,“Multifunctional Database(通用多功能型,好)”、“Transactional Database Only(服务器类型,专注于事务处理,一般)”、“Non-Transactional Database Only(非事务 处理型,较简单,主要做一些监控、记数用,对 MyISAM 数据类型的支持仅限于 non-transactional),按“Next” 继续。
大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_数据_19

大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_数据_20


5、选择网站并发连接数,同时连接的数目“D,ecision Support(DSS)/OLAP(20个左右)“”O、nline Transaction Processing(OLTP)(500 个左右)”、“Manual Setting(手动设置,自己输一个数)”。
大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_mysql_21

6、就是对 mysql 默认数据库语言编码进行设置(重要),一般选 UTF-8,按 “Next”继续。
大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_数据_22

7、选择是否将 mysql 安装为 windows 服务,还可以指定 Service Name(服务标识名称),是否将 mysql 的 bin 目录加入到 Windows PATH(加入后,就可以直接使用 bin 下的文件,而不用指出目录名,比如连接, “mysqle.xe -uusername -ppassword;”就可以了,不用指出 mysql.exe 的完整地址,很方便),我这里全部 打上了勾,Service Name 不变。按“Next”继续。

大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_数据_23

8、询问是否要修改默认 root 用户(超级管理)的密码。“Enable root access from remote machines(是否允 许 root 用户在其它的机器上登陆,如果要安全,就不要勾上,如果要方便,就勾上它)”。最后“Create An Anonymous Account(新建一个匿名用户,匿名用户可以连接数据库,不能操作数据,包括查询)”,一般就不用勾了,设置完毕,按“Next”继续。
大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_mysql_24

9、确认设置无误,按“Execute”使设置生效,即完成 MYSQL 的安装和配置。
大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_数据_25

大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_mysql_26
此时可以到终端中输出如下命令验证一下数据库是否安装好了:
大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_数据_27


注意:设置完毕,按“Finish”后有一个比较常见的错误,就是不能“Start service”,一般出现在以前有安装 mysql 的服务器上,解决的办法,先保证以前安装的 mysql 服务器彻底卸载掉了;不行的话,检查是否按上面一步所说, 之前的密码是否有修改,照上面的操作;如果依然不行,将 mysql 安装目录下的 data 文件夹备份,然后删除,在 安装完成后,将安装生成的 data 文件夹删除,备份的 data 文件夹移回来,再重启 mysql 服务就可以了,这种情况 下,可能需要将数据库检查一下,然后修复一次,防止数据出错。


大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_数据_28

此时的解决方法:卸载 MySQL,重装 MySQL,所以下面来看一下关于MySQL的卸载。




卸载

1. 去mysql的安装目录找到my.ini文件
        复制 datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"

大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_数据_29

大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_数据_30

2、卸载 MySQL 安装程序。找到“控制面板”-> "程序和功能",卸载 MySQL 程序。
大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_数据库_31

3、删除 c 盘 ProgramDate 目录中关于 MySQL 的目录。路径为:C:\ProgramData\MySQL(是隐藏文件,需要显示 出来)

 大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_数据_32

 大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_数据_33

至此,整个MySQL则就卸载完成了。


数据库服务的启动或关闭:
1、通过手动的方式来启动或关闭:
大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_mysql_34

大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_数据库_35

2、通过DOS命令来启动:

大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_数据_36

大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_数据_37


MySQL的登录与退出:


MySQL 是一个需要账户名密码登录的数据库,登陆后使用,它提供了一个默认的 root 账号,使用安装时设置 的密码即可登录。它有如下几种登录方式:
1、mysql -u用户名 -p密码,其中u和p后面没有空格。


大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_mysql_38 

还可以后输入密码,如下:



大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_数据_39

2、mysql -hip地址 -u用户名 -p密码
大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_mysql_40

其中127.0.0.1代表本机的ip地址。
3、mysql --host=ip地址 --user=用户名 --password=密码:
大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_数据_41


而退出比较简单:
quit或exit:
大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_数据_42 


MySQL的目录结构:
大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_数据_43
几个相关概念:
数据库:文件夹
表:文件
数据:数据

SQL基本概念与通用语法:

SQL:


  • 什么是SQL?
    Structured Query Language:结构化查询语言
    其实就是定义了操作所有关系型数据库的规则。每一种数据库操作的方式存在不一样的地方,称为“方言”。
    大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_数据_44
  • SQL通用语法:

1. SQL 语句可以单行或多行书写,以分号结尾。
2. 可使用空格和缩进来增强语句的可读性。
3. MySQL 数据库的 SQL 语句不区分大小写,关键字建议使用大写。
大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_mysql_45

4. 3 种注释:
大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_数据库_46
大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_mysql_47
上面的这种是实际比较常用的。
大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_数据库_48


SQL分类:

1) DDL(Data Definition Language)数据定义语言
用来定义数据库对象:数据库,表,列等。关键字:create, drop,alter 等
2) DML(Data Manipulation Language)数据操作语言
用来对数据库中表的数据进行增删改。关键字:insert, delete, update 等
3) DQL(Data Query Language)数据查询语言
用来查询数据库中表的记录(数据)。关键字:select, where 等
4) DCL(Data Control Language)数据控制语言(了解)
用来定义数据库的访问权限和安全级别,及创建用户。关键字:GRANT, REVOKE 等

上面的这些概念是不是有些抽象,下面用图来解释一下,先对其数据库、表、数据的关系进行描述:
大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_mysql_49
大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_数据_50

也就是对于操作数据库和表的则叫作DDL。

 大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_数据库_51

 大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_mysql_52

而最后一种则是进行数据库和表进行授权的语句:
大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_数据库_53
所以接下来则分类的进行SQL语句的学习,首先先来学习DDL。



DDL:操作数据库、表

操作数据库:CRUD:


  • R(Retrieve):查询
    1、查询所有数据库的名称:show databases;
    大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_数据库_54

既然默认MySQL自带有四个数据库,那是不是在MySQL的物理位置对应四个数据文件夹呢?咱们来瞅一下:
大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_数据_55
貌似只看到对应三个文件夹,还差一个“information_schema”,原因是它里面的表并非是真正的表,而是视图,所以在物理中木有对应的文件对应,了解一下。
下面了解一下"mysql"这个数据库文件,它是核心数据文件,里面存放了大量的表,打开文件夹可以瞅一下:
大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_数据库_56
“performance_schema”,它是跟性能相关的数据库,实际尽量不要动它,以勉出现一些异常。
大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_数据库_57

“test”,则是一张我们做测试的数据库,里面空表,可以随意去修改。
大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_mysql_58

2、查询某个数据库的字符集:查询某个数据库的创建语句:
大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_数据库_59C(Create):创建
1、创建数据库:
      create database 数据库名称;
大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_数据_60

那如果再创建同名的数据库,看会咋样:
大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_数据_61

接下来看一下在创建之前首先会来判断该库存不存在的SQL语句。

2、创建数据库,判断不存在,再创建:
      create database if not exists 数据库名称;
大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_mysql_62

此时就不会像之前那样报错了,语句更加安全。

3、创建数据库,并指定字符集
      create database 数据库名称 character set 字符集名;
我们知道默认数据库是采用utf-8来创建的,下面来用这条语句单独再来指定一个其它字符集试一下:
大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_数据库_63U(Update):修改
修改数据库的字符集
       alter database 数据库名称 character set 字符集名称;
下面来试一下:
大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_数据_64D(Delete):删除
删除数据库:
       drop database 数据库名称;
判断数据库存在,存在再删除:
   drop database if exists 数据库名称;
下面来试一下:
大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_mysql_65使用数据库
1、查询当前正在使用的数据库名称。
        select database();
2、使用数据库。
    use 数据库名称;
大数据JavaWeb之MySQL基础---MySQL安装、SQL初识_mysql_66