初识数据库
什么是数据库:
DB的全称是database,即数据库的意思。数据库实际上就是一个文件集合,是一个存储数据的仓库,数据库是按照特定的格式把数据存储起来,用户可以对存储的数据进行增删改查操作;
什么是关系型数据库(SQL)?
-
关系型数据库是依据关系模型来创建的数据库。
-
所谓关系模型就是“一对一、一对多、多对多”等关系模型,关系模型就是指二维表格模型,因而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织。
-
关系型数据可以很好地存储一些关系模型的数据,比如一个老师对应多个学生的数据(“多对多”),一本书对应多个作者(“一对多”),一本书对应一个出版日期(“一对一”)
-
数据的存储形式:
什么是非关系型数据库(NOSQL)?
-
非关系型数据库主要是基于“非关系模型”的数据库(由于关系型太大,所以一般用“非关系型”来表示其他类型的数据库)
-
非关系型模型比如有:
存储的数据是一列列的。关系型数据库以一行作为一个记录,列模型数据库以一列为一个记录。(这种模型,IO很快,主要是一些分布式数据库)一行是一个记录 一列是一个字段,一行是一个实体 一列是一个属性
yum安装MySQL
基础流程: 1.官方获取yum源 • 1.1:yum clean all && yum repolist 2.修改yum源 • 2.1:使用vim交互修改 • 2.2:下载yum install-y yum-utils • 使用yum-config-manager --disable mysql80-community && yum-config-manager --enable mysql57-community • 2.3:临时生效:yum -y install mysql-community-server --disablerepo mysql80-community --enablerepo mysql57-community 3.yum安装MySQL: yum -y install mysql-community-server 4.启动数据库:(第一次启动,初始化) systemctl start mysql 5.配置文件:/etc/my.cnf 数据目录:/var/lib/mysql/ 日志文件: /var/log/mysqld.log 6.获取临时密码: grep password /var/log/mysqld.log 7.修改密码: mysqladmin -uroot -p'初始密码' password '修改的密码'
拓展: 8.修改密码强度策略: vim /etc/my.cnf 添加:validate-passwd-OFF 9.忘记MySQL数据库root用户密码: vim /etc/my.cnf 添加:skip-grant-tables(跳过验证表,它和修改密码强度策略不能同时存在) update mysql.user set authentication_string=password("QianFeng012345") where User='root' and Host="localhost";
MySQL存储引擎:
MySQL引擎:
可以理解为,MySQL的“文件系统”,只不过功能更加强大。
MySQL引擎功能:
除了可以提供基本的存取功能,还有更多功能事务功能、锁定、备份和恢复、优化以及特殊功能。和磁盘打交道,mysql中组织。
1.什么是外键:外键的主要作用是保持数据的一致性、完整性。
2.什么是索引:索引相当于书中的目录,可以提高数据检索的效率,降低数据库的IO。MySQL在300万条记录左右性能开始逐渐下降,虽然官方文档说500~800w记录,所以大数据量建立索引是非常有必要的
3.什么是事务:事务是由一步或几步数据库操作这系列操作要么全部执行,要么全部放弃执行。程序和事务是两个不同的概念。
事务具有四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolatio >)和持续性(Durability)。这四个特性也简称ACID性。
(1)原子性:事务是应用中最小的执行单位,就如原子是自然界最小颗粒,具有不可再分>的特征一样。事务是应用中不可再分的最小执行体。(最小了,不可再分了)
(2)一致性:事务执行的结果,必须使数据库从一个一致性状态,变到另一个一致性状态>。当数据库中只包含事务成功提交的结果时,数据库处于一致性状态。一致性是通过原子性
来保证的。(说罢了就是白狗变成了黑狗,不能出现斑点狗!)
(3)隔离性:各个事务的执行互不干扰,任意一个事务的内部操作对其他并发的事务,都>是隔离的。也就是说:并发执行的事务之间不能看到对方的中间状态,并发执行的事务之间
不能相互影响。(说白了,就是你做你的,我做我的!)
(4)持续性:持续性也称为持久性,指事务一旦提交,对数据所做的任何改变,都要记录>到永久存储器中,通常是保存进物理数据库。(说白了就是一条道跑到黑)
数据库创建与查询:
MYSQL基础命令:
1.查看数据库:show databases;
2.查看表:show tables;
3.查看数据库版本:select version();
4.查看当前所在库:select database();
5.查看当前登录的用户:select user();
6.切换库:use db1
7.创建库:create database db1 default charset 'utf8';
8.显示创建db1数据库的创建过程:show create database db1
9.创建表:create table student(id int);
10.修改表名:在业务高