“Day44-数据库(一)学习笔记”
一 、数据库管理软件的由来
数据库管理软件是怎么来的?
1.1 数据的保存问题
数据要想永久保存,都是保存于文件中,毫无疑问,一个文件仅仅只能存在于某一台机器上。
如果我们暂且忽略直接基于文件来存取数据的效率问题,并且假设程序所有的组件都运行在一台机器上,那么用文
件存取数据,并没有问题。
很不幸,这些假设都是你自己意淫出来的,上述假设存在以下几个问题。。。。。。
1、程序所有的组件就不可能运行在一台机器上
- 因为这台机器一旦挂掉则意味着整个软件的崩溃,并且程序的执行效率依赖于承载它的硬件,而一台机器机器的性能总归是有限的,受限于目前的硬件水平,就一台机器的性能垂直进行扩展是有极限的。
- 于是我们只能通过水平扩展来增强我们系统的整体性能,这就需要我们将程序的各个组件分布于多台机器去执行。
2、数据安全问题
根据1的描述,我们将程序的各个组件分布到各台机器,但需知各组件仍然是一个整体,言外之意,所有组件的数据还是要共享的。但每台机器上的组件都只能操作本机的文件,这就导致了数据必然不一致。
于是我们想到了将数据与应用程序分离:把文件存放于一台机器,然后将多台机器通过网络去访问这台机器上的文件(用socket实现),即共享这台机器上的文件,共享则意味着竞争,会发生数据不安全,需要加锁处理。。。。
3、并发
根据2的描述,我们必须写一个socket服务端来管理这台机器(数据库服务器)上的文件,然后写一个socket客户端,完成如下功能:
- 远程连接(支持并发)
- 打开文件
- 读写(加锁)
- 关闭文件
1.2 由此而生的管理软件:
我们在编写任何程序之前,都需要事先写好基于网络操作一台主机上数据文件
的程序(socket服务端与客户端程
序),于是有人将此类程序写成一个专门的处理软件,这就是mysql等数据库管理软件的由来,但mysql解决的不
仅仅是数据共享的问题,还有查询效率,安全性等一系列问题,总之,把程序员从数据管理中解脱出来,专注于自
己的程序逻辑的编写。
二、数据库概述
2.1 什么是数据(Data)
数据:描述事务的符号记录
符号:既可以是数字,也可以是文字、图片,图像、声音、语言等
数据由多种表现形式,它们都可以经过数字化后存入计算机
在计算机中描述一个事物,就需要抽取这一事物的典型特征,组成一条记录,就相当于文件里的一行内容,如
单纯的一条记录并没有任何意义,如果我们按逗号作为分隔,依次定义各个字段
的意思,相当于定义表的标题
这样我们就可以了解egon,性别为男,年龄18岁,出生于1999年,出生地为山东,2017年考入gschool
2.2 什么是数据库(DataBase)
数据库:即存放数据的仓库,只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的
2.3 什么是数据库管理系统(DBMS)
在了解了Data与DB的概念后,如何科学地组织和存储数据,如何高效获取和维护数据成了关键
这就用到了一个系统软件—数据库管理系统
如MySQL、Oracle、SQLite、Access、MS SQL Server
mysql主要用于大型门户,例如搜狗、新浪等,它主要的优势就是开放源代码,因为开放源代码这个数据库是免费
的,他现在是甲骨文公司的产品。
oracle主要用于银行、铁路、飞机场等。该数据库功能强大,软件费用高。也是甲骨文公司的产品。
sql server是微软公司的产品,主要应用于大中型企业,如联想、方正等。
2.4 数据库服务器、数据管理系统、数据库、表与记录的关系(重点理解!!!)
描述 |
案例 |
备注 |
记录 |
1,刘海龙,324245234,22 |
文件中的一行内容 |
表 |
student,scholl,class_list |
文件 |
数据库 |
oldboy_stu |
文件夹 |
数据库管理系统 |
mysql |
软件 |
数据库服务器 |
一台计算机 |
服务器 |
图示如下:
三、MySQL介绍
3.1 什么是MySQL
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关
系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数
据库管理系统) 应用软件之一。
常用客户端软件
- mysql自带:如mysql命令,mysqldump命令等
- python模块:如pymysql
3.2 数据库管理软件分类
四、下载安装
Linux版本
源码安装mysql
源码安装mariadb
Window版本
安装
将MySQL服务制作成windows服务
五、mysql软件基本管理
5.1 启动查看
linux平台下查看
You must reset your password using ALTER USER statement before executing this statement.
5.2 登录,设置密码
5.3 忘记密码
linux平台下,破解密码的两种方式
方法一:删除授权库mysql,重新初始化
方法二:启动时,跳过授权库
windows平台下,5.7版本mysql,破解密码的两种方式:
方式一
方式二
5.4 在windows下,为mysql服务指定配置文件
强调:配置文件中的注释可以有中文,但是配置项中不能出现中文
my.ini
5.5 统一字符编码
六、初识SQL语句
6.1 SQL语句分类
SQL语言主要用于存取数据、查询数据、更新数据和管理关系数据库系统,SQL语言由IBM开发。SQL语言分为3种类型:
- DDL语句 数据库定义语言: 数据库、表、视图、索引、存储过程,例如CREATE DROP ALTER
- DML语句 数据库操纵语言: 插入数据INSERT、删除数据DELETE、更新数据UPDATE、查询数据SELECT
- DCL语句 数据库控制语言: 例如控制用户的访问权限GRANT、REVOKE
6.2 基本SQL语句