MySQL原理及优化学习总结
1、数据库介绍篇
1.1什么是数据库
数据库:保存数据的仓库。它体现我们电脑中,就是一个文件系统。然后把数据都保存这些特殊的文件中,并且需要使用固定的语言(SQL语言)去操作文件中的数据。
技术定义:
数据库(Database)是按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库。
1.2数据库介绍
我们开发应用程序的时候,程序中的所有数据,最后都需要保存到专业软件中。这些专业的保存数据的软件我们称为数据库。
我们学习数据库,并不是学习如何去开发一个数据库软件,我们学习的是如何使用数据库以及数据库中的数据记录的操作。而数据库软件是由第三方公司研发。
1.3数据库的分类
关系型、非关系型的数据库
常见的数据库软件:
Oracle:它是Oracle公司的大型关系型数据库,它是收费的。
DB2:IBM公司的数据库,它是收费的。
SqlServer:微软数据库。收费
Sybase:Sybase公司的。 工具PowerDesign 数据库建模工具。
MySql:早期瑞典一个公司发明,后期被sun公司收购,后期被Oracle。
Java开发应用程序主要使用的数据库:
MySQL(5.5)、Oracle、DB2。
1.4什么是关系型数据库
在开发软件的时候,软件中的数据之间必然会有一定的关系存在,需要把这些数据保存在数据库中,同时也要维护数据之间的关系,这时就可以直接使用上述的那些数据库。而上述的所有数据库都属于关系型数据库。
描述数据之间的关系,并保存在数据库中,同时学习如果根据这些关系查询数据库中的数据,
关系型数据:设计数据库的时候,需要使用E-R图来描述。实体关系
E-R:实体关系图。
实体:可以理解成我们Java程序中的一个对象。在E-R图中使用 矩形(长方形) 表示。
针对一个实体中的属性,我们称为这个实体的数据,在E-R图中使用 椭圆表示。
实体和实体之间的关系:在E-R图中使用菱形表示。
2、mysql在linux-安装篇
2.1、vmware中安装linux注意事项
2.1.1、记得关闭防火墙
service iptables stop
chkconfig iptables off(关闭开机自启:所谓的永久关闭防火墙)
2.1.2、创建统一的管理目录
mkdir -p /exprot/software
mkdir -p /export/servers
2.1.3软件环境
VMware、crt、centos6.9
2.1.4安装环境
1、VMware软件安装
2、构建虚拟机
3、需要配置Linux(ip,mac地址,hostname,防火墙),就可以通过crt这个客户端连接进行操作
4、在linux操作系统进行安装msyql-5.6
说明:因为在linux操作系统中,安装软件的方式主要有3种:1、源码安装(redis)2、rpm安装
3、yum在线安装(安装MySQL为例)---linux联网()
2.2、centos6.9安装mysql
2.2.1、检查是否有自带的mysql
[root@hadoop-01 servers]# rpm -qa |grep mysql
mysql-libs-5.1.73-8.el6_8.x86_64
2.2.2、卸载自带的mysql
[root@hadoop-01 servers]# rpm -e --nodeps mysql-libs-5.1.73-8.el6_8.x86_64
[root@hadoop-01 servers]#
2.2.3、下载mysql安装包
2.2.4、上传安装包到linux服务器
rz 上传文件到指定的目录(yum install lrzsz)
/export/software/mysql
2.2.5、安装
rpm -ivh *.rpm
2.2.6、查看初始化密码
A RANDOM PASSWORD HAS BEEN SET FOR THE MySQL root USER !
You will find that password in '/root/.mysql_secret'.
[root@mysql ~]# cat /root/.mysql_secret
# The random password set for the root user at Wed Aug 8 22:19:00 2018 (local time): xQkcU3kbyuZby1_V
[root@mysql ~]#
2.2.7、启动mysql并登录
#启动mysql
service mysql start
#登录mysql
mysql -uroot -p
(粘贴密码:xQkcU3kbyuZby1_V)
2.2.8、修改密码
set PASSWORD=PASSWORD('123456');
2.2.9、退出mysql客户端
mysql>quit
2.2.10、用新密码进行登录
mysql -uroot -p
123456(新密码)
2.2.11、远程授权
grant all privileges on *.* to 'root' @'%' identified by '123456';
flush privileges;
2.2.12、验证远程授权是否成功
通过windows的mysql客户端工具连接,是否能连接上,能连接上就授权成功,没有连接上,说明没有授权成功!
3、mysql-基础操作篇
3.1、登录mysql
mysql -uroot -p
123456
3.2、退出mysql
mysql>quit
3.3、输入查询
-
查看当前mysql的版本号及当前时间
SELECT VERSION(), CURRENT_DATE;
mysql> SELECT VERSION(), CURRENT_DATE; +-----------+--------------+ | VERSION() | CURRENT_DATE | +-----------+--------------+ | 5.6.25 | 2018-08-08 | +-----------+--------------+ 1 row in set (0.32 sec)
-
mysql中sql语句不区分大小写
mysql> SELECT VERSION(), CURRENT_DATE; mysql> select version(), current_date; mysql> SeLeCt vErSiOn(), current_DATE;
mysql> SELECT VERSION(), CURRENT_DATE; +-----------+--------------+ | VERSION() | CURRENT_DATE | +-----------+--------------+ | 5.6.25 | 2018-08-08 | +-----------+--------------+ 1 row in set (0.