数据库初识及 MySQL 的安装
一、什么是数据
数据(Data):描述事务的符号记录,描述事物的符号既可以是数字,也可以是文字、图片,图像、声音、语言等,数据由多种表现形式,它们都可以经过数字化后存入计算机
在计算机中描述一个事物,就需要抽取这一事物的典型特征,组成一条记录,就相当于文件里的一行内容,如:
1 qiuxi male 22 安徽 软件工程
但这样的单纯一条记录并没有任何意义,如果我们按逗号作为分隔,依次定义各个数据的含义:
id name sex age adderess major # 字段
1 qiuxi male 20 安徽 软件工程 # 记录
如果这样表示的话,就能够了解一个人的信息了,让别人一看就清楚了。这里被定义的各个数据的含义,就称之为字段,这条数据信息,称之为一条记录。
二、什么是数据库
之前所学,数据要永久保存,比如用户注册的用户信息,都是保存于文件中,而文件只能存在于某一台机器上。如果我们不考虑从文件中读取数据的效率问题,并且假设我们的程序所有的组件都运行在一台机器上,那么用文件存取数据,并没有什么问题。但需要考虑的问题是:程序的执行效率依赖于承载它的硬件,而一台机器机器的性能总归是有限的,受限于目前的硬件水平,垂直扩展是有极限的。于是我们只能通过水平扩展来增强我们系统的整体性能,这就需要我们将程序的各个组件分布于多台机器去执行。需要注意的是,虽然我们将程序的各个组件分布到各台机器,但各组件仍然是一个整体,言外之意,所有组件的数据还是要共享的。但每台机器上的组件都只能操作本机的文件,这就导致了数据必然不一致。于是我们想到了将数据与应用程序分离:把文件存放于一台机器,然后将多台机器通过网络去访问这台机器上的文件,即共享这台机器上的文件,共享则意味着竞争,会发生数据不安全,需要加锁处理......为了远程访问并处理这台共享机器上的文件,我们必须为我们的程序额外写一段代码,完成如下功能:
# 1、远程连接
# 2、打开文件
# 3、读写(加锁)
# 4、关闭文件
我们写任何程序都需要有这段代码,于是我们提取这段代码,写成一个专门的处理软件,这就是数据库管理软件的由来,但它解决的不仅仅是数据共享的问题,还有查询效率,安全性等一系列问题,总之,能把程序员从数据管理中解脱出来,专注于自己的程序逻辑的编写。
数据库(DataBase,简称DB),顾名思义就是存放数据的仓库,只不过这个仓库是在计算机存储设备上。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
三、数据库管理系统
数据库管理系统(Database Management System,简称DBMS)是位于用户与操作系统之间的一系列以统一的方式管理和维护数据库中数据的软件集合。它的用途是科学地组织和存储数据、高效地获取和维护数据,例如:MySQL、Oracle、DB2、SQL Server 等
MySQL 是目前最流行的关系型数据库管理系统之一,由瑞典 MySQLAB(AB,在瑞典语中表示 “股份公司”,是 “aktiebolag” 的首字母缩写)公司开发,目前属于 Oracle 公司。在 Web 应用方面,MySQL 是最好的 RDBMS(Relational Database Manasgement System,关系数据库管理系统)应用软件之一。
Oracle 是美国 Oracle 公司开发的一种适用于大型、中型和微型计算机的关系数据库管理系统。提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户端/服务器(Client/Server)或 B/S 体系结构的数据库之一。
DB2 是 IBM 公司研制出的一种关系型数据库管理系统,分别在不同的操作系统平台上服务。DB2主要应用于大型应用系统,具有较好的可伸缩性,可以支持从大型机到单用户环境,应用于OS/2、Windows等平台下。
SQL Server 是美国微软公司开发的一个关系数据库管理系统,以 T-SOL 作为其数据库查询和编程语言。SQL Server 采用二级安全验证、登录验证以及数据库用户许可验证等安全模式。
四、数据库服务器,数据库管理系统,表与记录的关系(重点理解)
数据库说白了就是文件夹
数据库管理系统就是一个软件
数据库服务器:就是对外专门提供数据的一个机器
表:student, scholl, class_list(即文件)
数据库:lzsh_info(即文件夹)
数据库管理系统:如MySQL(是一个软件)
数据库服务器:一台计算机(对内存要求比较高)
总结:
数据库服务器---运行--->数据库管理软件
数据库管理软件--->管理--->数据库
数据库---组织--->表,即文件夹---组织--->文件
表---存放--->多条记录,即文件---存放--->多行内容
五、MySQL 简介
MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
1、MySQL 是什么?
MySQL 就是一个基于 socket 编写的 C/S 架构的软件
客户端软件:
MySQL 自带:如 mysql 命令,mysqldump 命令等
Python 模块:如 pymysql
2、数据库管理软件分类
关系型:如SQLite,DB2,Oracle,Access,SQL Server,MySQL,注意:SQL语句通用
非关系型:MongoDB,Redis,Memcache
可以简单的理解为:关系型数据库需要有表结构,非关系型数据库是key-value存储的,没有表结构
六、MySQL 的安装
1、在官网下载 MySQL5.6(https://dev.mysql.com/downloads/mysql/5.6.html#downloads),得到一个压缩包
2、将下载的压缩包解压后的整个目录放在自己喜欢的位置,我的放在 D 盘的 Program Files 下,并改名为 MySQL5.6
3、进入MySQL5.6 目录,将里面的 my-default.ini 文件复制一份,并命名为 my.ini
4、打开 my.ini 文件将里面的 basedir 前面的 # 取消(取消注释),将其值设置为我们解压后的 MySQL5.6 根目录路径;将 datadir 取消注释设置为 MySQL5.6 里的 data 目录路径,这是存放数据的路径。并且我还设置了字符编码为utf8(注意:MySQL 中的 uft8 编码中间没有横杠,不能写成 utf-8)
5、安装 MySQL 服务并启动:以管理员身份打开 cmd 窗口后,将目录切换到你解压文件的 bin 目录
再输入mysqld install 回车运行就行了
接着就是输入 net start mysql 启动服务,提示启动成功(注:MySQL5.7 以上版本默认没有 data 目录,这里会启动不成功,需要手动生成 data 目录)
MySQL5.7 生成 data 目录,执行:mysqld --initialize-insecure --user=mysql
6、打开即可登录 MySQL 数据库,还在命令模式下,将目录切换到自己的 bin 目录下。输入 mysql -uroot -p,默认是没有密码的。回车进入,root是用户名
7、配置环境变量
配置好环境变量之后,就可以直接在cmd中输入 mysql -u root -p 打开MySQL数据库,不用进入 bin 目录,当然你的服务必须启动先,不然还是不行。可以将服务设置为开机自启动(Windows 系统下 MySQL 安装后默认是自启动)
到这里 MySQL 就算是安装完成了,下面来测试一下,接着上面的命令窗口直接输入show databases; ,表示查看所有的数据库,注意不要忘了分号,在 MySQL 中表示语句的结束
再测试环境变量:关闭命令窗口,重新打开一个新的 cmd 命令窗口直接输入 mysql -u root -p 就能进入说明环境变量已经配置正确,如图:
七、为 MySQL 设置修改密码
方法1: 用 SET PASSWORD 命令
首先登录 MySQL。
格式:mysql> set password for 用户名@localhost = password('新密码');
例子:mysql> set password for root@localhost = password('000000');
方法2:用 mysqladmin
格式:mysqladmin -u用户名 -p旧密码 password 新密码
例子:mysqladmin -uroot -p123456 password 000000
方法3:用 UPDATE 直接编辑 user 表
首先登录 MySQL。
mysql> use mysql;
mysql> update user set password=password('000000') where user='root' and host='localhost';
mysql> flush privileges;
方法4:在忘记 root 密码的时候,可以这样
以 Windows为例:
1. 关闭正在运行的 MySQL 服务。
2. 打开 cmd 窗口,转到 bin 目录。
3. 输入 mysqld --skip-grant-tables 回车。--skip-grant-tables 的意思是启动 MySQL 服务的时候跳过权限表认证。
4. 再开一个 cmd 窗口(因为刚才那个窗口已经不能动了),转到 bin 目录。
5. 输入 mysql 回车,如果成功,将出现 MySQL 提示符 >。
6. 连接权限数据库: use mysql; 。
6. 改密码:update user set password=password("000000") where user="root";(别忘了最后加分号) 。
7. 刷新权限(必须步骤):flush privileges; 。
8. 退出 quit。
9. 注销系统,再进入,使用用户名 root 和刚才设置的新密码 000000 登录。