什么是数据库
数据库(Database)是按照数据结构来组织,存储和管理数据的仓库,安装在操作系统之上。
例如,企业或事业单位的人事部门常常要把本单位职工的基本情况(职工号、姓名、年龄、性别、籍贯、工资、简历等)存放在表中,这张表就可以看成是一个数据库。
有了这个"数据仓库"就可以根据需要随时查询某职工的基本情况,也可以查询工资在某个范围内的职工人数等等。这些工作如果都能在计算机上自动进行,那的人事管理就可以达到极高的水平。
存储数据用文件就行了,为什么还要搞数据库?
文件保存数据有以下几个缺点:
- 文件的安全性问题
- 文件不利于数据查询和管理
- 文件不利于存储海量数据
- 文件在程序中控制不方便
数据库存储介质:
- 磁盘
- 内存
- 为了解决上述问题,专家们设计出更加利于管理数据的东西--数据库,它能更有效的管理数据。数据库的水平是衡量一个程序员水平的重要指标。
主流数据库
- SQL Sever: 微软的产品,.Net程序员的最爱,中大型项目
- Oracle: 甲骨文产品,适合大型项目,复杂的业务逻辑,并发一般来说不如MySQL。
- MySQL:世界上最受欢迎的数据库,属于甲骨文,并发性好,不适合做复杂的业务。主要用在电商,SNS,论坛。对简单的SQL处理效果好。
- PostgreSQL :加州大学伯克利分校计算机系开发的关系型数据库,不管是私用,商用,还是学术研究使用,可以免费使用,修改和分发。
- SQLite: 是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。
- H2: 是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中
关系型数据库:
- MySQL、Oracle、Sql Server、DB2、SQLlite
- 通过表和表之间,行和列之间的关系进行数据的存储
- 通过外键关联来建立表与表之间的关系
非关系型数据库
- Redis、MongoDB
- 指数据以对象的形式存储在数据库中,而对象之间的关系通过每个对象自身的属性来决定
基本使用
MySQL安装
前面一章我有讲解centos7 安装与卸载 感兴趣的伙伴可以去看一下:(30条消息) centos7 安装与卸载 Mysql 5.7.27(详细完整教程)
连接服务器
输入:
mysql -h 127.0.0.1 -P 3306 -u root -p
输出:
如果没有写-h 127.0.0.1默认是连接本地
如果没有写-P 3306默认是连接3306端口号
服务器管理
- 执行 win+r 输入 services.msc 打开服务管理器
- 通过下图左侧停止,暂停,重启动按钮进行服务管理
服务器,数据库,表关系
- 所谓安装数据库服务器,只是机器安装了一个数据库管理系统程序,这个管理程序可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。
- 为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据。
- 数据库服务器,数据库和表的关系如图所示:
- 下面我们来查看mysql的配置:
输入:
vim /etc/my.cnf
输出:【mysql】下面是客户端配置,【mysqld】下面是服务端配置。
这里挑几个重要的来讲:
datadir=/var/lib/mysql
数据库中的表+表全部都会在该路径下!
进入到root来查看该路径下到底有什么。
使用案例
创建数据库
输入:
create database helloworld;
输出:
下面我们通过指令来查看是否创建成功:
show databases;
出于好奇心,cd下查看这个数据库中有什么:
下面会进行详解。
所谓的创建数据库,就是创建目录。
使用数据库
输入:
use 1122_db;
输出:
创建数据库表
create table student( id int, name varchar(32), gender varchar(2) );
查看一下表:
show tables;
输出:
所谓的创建数据库表,本质就是在特定目录下创建特定的文件.
查看表的结构:
desc student;
表中插入数据
输入
insert into student (id, name, gender) values (1, '张三', '男');
输出
查询表中的数据
输入:
select* from hello;
输出:













