centos7中mysql的安装:https://blog.csdn.net/qq_36582604/article/details/80526287
数据库介绍
数据库(DATA BASE)是可以长久的,按照一定规则组织保存在存储设备上的一种数据集合。
数据库管理系统(DBMS)一种操作并管理数据库的软件。MYSQL数据库就是一个DBMS。
关系数据库特点
优点
- 数据是以表格的形式表现
- 每行为各种记录名称
- 每列为记录名称所对应的数据集
- 行和列组成一个表单
- 若干张表组成database
缺点
- 创建索引和维护索引会耗费时间,随着数据的增加而增加
- 索引会占用物理空间,对数据进行增删改查的时候,会降低数据的维护速度。
关系数据库范式
1NF:即数据库表中的所有字段值都是原子值或者说列不可拆分。
2NF:即数据库表中的每一列的值,都必须和主键相关,不能存在部分相关。即数据表中,只能是一张表存储一种数据。
3NF:在前两项的基础上,数据表中的每一列值必须和主键直接相关,不能存在传递依赖(间接相关)
数据库的数据完整性约束
- 实体完整性:数据库中表的每一行在表中是唯一的实体
-
比如:表中列的非空约束、唯一约束和标的主键约束(起唯一标识作用)
- 域完整性:指表中的列满足特定的数据类型约束(比如精度)
- 参照完整性:是两个表的主键和外键的数据要一致,保证表之间数据的一致性
-
比如:外键约束:指定某一个列或者一组列作为外键。外键取值应是父表中的某一主键或者空值。
- 用户定义完整性:针对某个特定关系数据库的约束条件,反映某一具体应用必须满足的语义要求。
-
比如说:校验约束:用来检查字段所允许的范围或者格式
数据库索引
- 作用:
-
提高数据库的查询速度
-
保证数据的唯一性
-
加速表和表之间的连接,实现表之间的参照完整性
-
减少分组和排序时间
-
对全文搜索字段进行优化
- 分类
-
主键索引
-
数据表中某一属性能唯一标识一条记录,不允许有空值(B+tree)
-
唯一索引
-
避免同一个表中某一列数据重复
-
与主键索引的区别:主键索引一个表中只有一个,唯一索引可存在多个
-
常规索引
-
快速定位特定数据
-
index 和key关键字都可以设置常规索引,但是不能插入太多的常规索引,会印象数据的增删查改。
-
全文索引:
-
定位特定数据,但只能用于MyISAM类型的数据表,只能用于char,vaechar, text数据列类型
-
ALTER TABLE tablename ADD FULLTEXT(column1, column2),有了全文索引,就可以用SELECT查询命令去检索哪些包含一个或者多个给定单词的数据记录:
-
如:ELECT * FROM tablename WHERE MATCH(column1, column2) AGAINST(‘xxx′, ‘sss′, ‘ddd′)
-
组合索引:
-
就是数据库表中包含多个字段但是只有索引名称
-
如:CREATE INDEX 字段名_字段名_.. ON 表名 (‘字段名(length)’,字段名(length)...);
-
在MYSQL中使用时要遵循“最左前缀”,并且它的索引个数遵循1,12,123...形式的排列组合。
- 索引删除:DROP INDEX 索引名称 ON 表名
Ubuntu下的MYSQL的安装与卸载
-
删除MySQL
-
`sudo apt-get autoremove --purge mysql-server-5.0
-
sudo apt-get remove mysql-server
-
sudo apt-get autoremove mysql-server
-
sudo apt-get remove mysql-common`
-
清理残留数据:dpkg -1 | grep ^rc|awk '{print $2} | sudo xargs dpkg -p
-
安装mysql
sudo apt-get install mysql-server
sudo apt-get install mysql-client
sudo netstat -tap | grep mysql