首先介绍一下数据库的概念
- 数据(Data):所谓数据是指对客观事物进行描述并可以鉴别的符号,这些符号是可识别的、抽象的。它不仅仅指狭隘以上的数字,而是多种表现形式:字母、文字、文本、图形、音频、视频等。
- 数据库(Database, DB):指的是以一定格式存放、能够实现多个用户共享、与应用程序彼此独立的数据集合。
- 数据库管理系统(Database Management System,DBMS):用来定义和管理数据的软件。能够科学的组织和存储数据、维护数据、保证数据的安全性和完整性。目前比较主流的数据库包括:Oracle、MySQL、SQL Server、DB2等。
- 数据库应用程序(Database Application System,DBAS):是数据库管理系统基础上,使用数据库管理系统的语言,开发直接面对最终用户的应用程序,例如学生管理系统、人事管理系统、图书管理系统等。
- 数据库管理员(Database Administrator,DBA):是指对数据库管理系统进行操作的人员,其主要负责数据库的运行和维护。
- 最终用户(User):指的是数据库应用程序的使用者。用户面向的是数据库应用程序(通过应用程序操作数据),并不会直接与数据库打交道。
- 数据库系统(Database System,DBS):一般是由数据库、数据库管理系统、数据库应用程序、数据库管理员和最终用户构成。其中DBMS是数据库系统的基础和核心。
接下来说一下数据库类型
- 根据数据的组织结构不同,数据库类型主要分为:网状数据库、层次数据库、关系型数据库和非关系型数据库四种。最常见的就是关系型数据库和非关系型数据库。ps:关系其实就是二维表。
- 关系型数据库主要包括:Oracle、DB2、SQL Server、MySQL等。其主要特点就是内容是由数据库字段所决定的。
- 非关系型数据库(Not only SQL,NOSQL)主要包括:Memcached、MongoDB、redis、HBase等。Memcached和redis是将数据存储到了内存中,要求设备是不能断电的,其速度很快,因为不像MySQL等,需要I/O操作。MongoDB,主要操作的是json字符串数据,好处是字段是可以动态的。HBase在大数据方面用的较多。
接下来是数据库简介:
- Oracle:甲骨文(Oracle)公司,收费高、性能高、风险低、硬件要求高,一般主要用于金融、保险、银行等行业。
- DB2:IBM公司,稳定性、安全性、恢复性上都不错,主要适用于大型的分布式应用系统。
- SQL Server:Microsoft公司,致命缺点是只能在window下运行。
- MySQL:最开始是一个瑞典的公司开发的,开源的、体积小、速度快、成本低。
接下来简单介绍一下mysql
- 最开始是由瑞典的公司开发的,然后在08年被sun公司收购,sun在09年被oracle收购。开源的、跨平台、轻量级、成本低。
- MySQL分为社区版和企业版,社区版是免费的,企业版收费,但是相对于oracle数据库,MySQL的企业版收费也是相对便宜的。
- 社区版包含所有MySQL的最新功能,而企业版只包含稳定之后的功能。换句话说,社区版是为企业版进行测试的。
- MySQL官方支持的服务只针对企业版,如果用户在使用社区版出现问题的时候,MySQL官方是不负责人的。
- mysql的版本以8为一个比较明确的分界线。
接下来安装一下mysql(目前安装较多的一般是8以上的版本。物竞天择,适者生存,别装最新的,也别装太旧的)
接下来说一下mysql登录等命令
- 首先说一下环境变量是啥东西:环境变量就是指,在任何的地方打开cmd终端,都可以执行的命令,例如我们登录mysql的命令一般是"mysql -hlocalhost -uroot -p",但是如果没有环境变量,我们需要打开cmd切换到安装目录的bin下,再执行这行命令,但是配置环境变量以后,直接win+r输入cmd,然后执行"mysql -hlocalhost -uroot -p"就可以进入mysql了。
- 登录mysql的命令:mysql -hlocalhost -uroot -p。其中,本机root身份登录,p后面可以紧接密码,但是就会直接显示出来,所以可以回车后再输入密码。-hlocalhost可以不输入(不输入的时候,其实就是登录本机的mysql),或者h后面加远程的ip也可以。
- show databases;:显示全部的数据库(不同项目)。
- use databaseName;:使用哪个数据库(不同项目)。
- show tables;:查看数据库下面所有的表。
- exit;、quit;、\q;:退出数据库。
MySQL层次:不同项目对应不同数据库(也就是上面的database),每个数据库内部有很多表,每个表中有很多数据。换句话说,安装mysql只需要安装一个就行了,然后在里面针对不同的项目,创建不同的database,关于创建的命令,后面会介绍。
再说一下MySQL卸载:我没有卸载过,所以大家自行百度吧。但是教程中有window的卸载,如下,
- 停止mysql的服务,可以执行net stop mysql命令,或者再window的服务页面停掉mysql的服务。
- 然后删除掉对应的程序文件夹和数据文件夹即可。
- 最后删除环境变量中的内容。
不能总是使用cmd查看吧,接下来介绍一个连接数据库的工具Navicate,提取码:h55t,好像是傻瓜式安装,我忘记了:
- 其实就是一个客户端,是一个图像化界面的工具。
- 创建一个连接,连接到数据库:
- 连接名随便起就行,比如跟项目名联系起来,或者表示这个连接的作用等。
- 主机名:本机就是localhost,远程的直接用ip地址。
- 端口一般mysql默认3306。(这个可以修改的,再安装的时候,有个配置文件,里面有个3306,修改即可变成别的接口)
- 然后输入用户名和密码。
- 进行测试即可。
- 特别提醒:有时候连接不上,可能是防火墙的问题,没有打开这个3306端口,可以查看我之前的博客,打开这个端口即可。
- 此外,这里可能会报错,2059的错误。是因为MySQL8之前和之后的加密规则是不一样的。之前的是mysql_native_password,之后是caching_sha2_passord。
- 解决办法:1、更新navicat的驱动;2、将加密方式改为之前的mysql_native_password。
- 第二种解决方式步骤为:
- 通过alter user ‘username’@‘localhost’ identified by ‘username’ password expire never;来设置这个用户的密码用户不过期,一般设置root。
- 通过alter user ‘username’@‘localhost’ identified with mysql_native_password by ‘username’;设置加密规则为mysql_native_password。
- 第二种解决方式步骤为:
- 解决办法:1、更新navicat的驱动;2、将加密方式改为之前的mysql_native_password。
其实,Navicate就是一个图像化界面,这个界面再idea也有。我一般是喜欢用navicate的创建一些表,写一些函数,触发器等。但是具体的sql语句,一般直接用idea的。