数据库–MySQL介绍
1. 数据库
1.1数据库介绍
- 数据库系统解决的问题:持久化存储,优化读写,保证数据的有效性。
- 数据分类:
- 关系型数据库:指采用了关系模型来组织数据的数据库。关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。主流的关系型数据库有:Oracle、Microsoft SQL Server、MySQL、PostgreSQL,SQLite、MariaDB(MySQL的一个分支)Microsoft Access、SAP。
- 非关系型数据库:指非关系型的,分布式的,以键值对存储且结构不固定,可以减少一些时间和空间的开销。非关系型数据库都是针对某些特定的应用需求,主要分为以下几类:
- 1). 面向海量数据访问的面向文档数据库:MongoDB、Amazon DynamoDB、Couchbase等。
- 2). 面向高性能并发读写的key-value数据库: Redis、 Memcached等。
- 3). 面向搜索数据内容的搜索引擎:Elasticsearch,Splunk,Solr,MarkLogic和Sphinx等。、
- 4). 面向可扩展性的分布式数据库:Cassandra,HBase等。
1.2 关系型数据库
1.2.1 E-R模型
- 当前物理的数据库都是按照E-R模型进行设计的。
- E表示entry,实体
- R表示relationship,关系
- 一个实体转换为数据库中的一个表
- 关系描述两个实体之间的对应规则,包括: 一对一 ,一对多, 多对多。
1.2.2 范式
范式:三大范式只是一般设计数据库的基本理念,可以建立冗余较小、结构合理的数据库。如果有特殊情况,当然要特殊对待,数据库设计最重要的是看需求跟性能,需求>性能>表结构。所以不能一味的去追求范式建立数据库。
- 经过研究和对使用中问题的总结,对于设计数据库提出了一些规范,这些规范被称为范式。
-
第一范式(1NF):列不可拆分 , 即无重复的域。
- 第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项。
- 符合第一范式的特点就有:有主关键字、主键不能为空、主键不能重复,字段不可以再分。
-
第二范式(2NF):唯一标识 ,即拥有实体的唯一标识(eg: 身份证、id号等)。
- 第二范式是指每个表必须有且仅有一个数据元素为主关键字(Primary key),其他数据元素与主关键字一一对应。这种关系为函数依赖。
- 符合第二范式的特点就有:满足第一范式的前提下,消除部分函数依赖。
-
第三范式(3NF):引用主键 ,即每列数据都与主键直接相关。
- 符合第三范式的特点就有:不存在非主属性对码的传递性依赖以及部分性依赖 。
-
说明:关系型数据库有六种范式。一般说来,数据库只需满足第三范式(3NF)就行了。
-
2.MySQL简介与安装
2.1 MySQL的简介
- MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一。

2.2 MySQL常用存储引擎分析
- 数据库存储引擎是数据库底层软件组织,进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能, MySQL的核心就是存储引擎。MySQL查询存储引擎SQL语句:SHOW ENGINES

2.3 MySQL安装
(1)安装mysql

(2)数据库服务管理
systemctl start mariadb #开启服务
systemctl stop mariadb #终止服务
syatemctl enable mariadb # 设置开机自启
systemctl status mariadb # 查看服务状态

(3)安全性密码设置

3.MySQL用户管理
3.1 用户的作用及定义
(1)用户的作用:
- 用户的登录数据库
- 用于管理数据库及数据
(2)用户的定义:

3.2 创建及删除用户
(1)直接创建用户(创建的用户只有连接权限)

(2)权限介绍
| 代码 | 权限 |
|---|---|
| alter | 修改表和索引 |
| create | 创建数据和表 |
| delete | 删除表中已有的记录 |
| drop | 删除数据库和表 |
| index | 创建或者抛弃索引 |
| insert | 向表中插入新行 |
| reference | 未用 |
| select | 检索表中的记录 |
| updata | 修改现存的记录 |
| file | 读或者写服务器的文件 |
| process | 查看服务器中执行的线程信息或杀死线程 |
| reload | 重载授权表或者清空日志,主机缓存或表缓存 |
| shutdown | 关闭服务器 |
| all | 所有权限,allprivileges同义词 |
| usage | 特殊的无权限权限 |
| with grant option | 表示用户可以为其他用户分配权限 |
-
用户账户包括 “username” 和 “host” 两部分,后者表示该用户被允许从何地接入。’username‘’@‘%'表示任何地址,默认可以省略。还可以是"username@192.168.1.%"、“username@%.abc.com” 等。数据库格式为 db@table,可以是 “test." 或 ".*”,前者表示 test 数据库的所有表,后者表示所有数据库的所有表。
(3)给定权限新建用户

-
特例 --usage表示无权限—和直接创建用户的作用一样。

(4)删除用户

3.3 用户权限增加和取消

4.MySQL客户端工具
4.1 mysql客户端命令
- 用于数据库连接管理
- 将用户SQL语句发送到服务器
| 代码 | 意义 |
|---|---|
| mysqladmin | 命令行管理工具 |
| mysqldump | 备份数据库和表的内容 |
- 用于连接服务器
- 用于管理数据可通过以下方式进行管理
| 英文 | 意义 |
|---|---|
| DDL | 数据定义语言 |
| DCL | 数据控制语言 |
| DML | 数据操作语言 |
4.2 mysql命令使用
(1)help :略
(2)source命令(脚本的调用)

(3)mysqladmin命令
mysqladmin -u<name> -p<password> commands #基本语法
| 功能 | 说明 |
|---|---|
| mysqladmin -u username -p password ping | 强制回应服务器 |
| mysqladmin -u username -p password shutdown | 关闭服务器 |
| mysqladmin -u username -p password create databasename | 创建数据库 |
| mysqladmin -u username -p password drop databasename | 删除数据库 |
| mysqladmin -u username -p password version | 显示服务器和版本信息 |
| mysqladmin -u username -p password status | 显示或重置服务器变量 |
| mysqladmin -u username -p password password | 设置口令 |
| mysqladmin -u username -p password flush-privileges | 重新刷新授权表 |
| mysqladmin -u username -p password flush-logs | 刷新日志文件和高速缓存 |
以上信息都可以从mysqladmin --help得到
- 例子

5.SQL基本语句
5.1 DDL语句(数据定义语言)
- 定义范围:
- 库:名字,特性
- 表:表名,列
5.1.1 数据库查看
(1)查看数据库–查看全部
show databases;
(2)查看数据库-模糊匹配

(3)查看相关的帮助

5.1.2 数据库操作

(1)创建一个数据库
create database weoopp;
(2)查看你数据库创建的格式

(3)创建数据库时司仪字符编码
-
GBK编码:是指中国的中文字符,其它它包含了简体中文与繁体中文字符,另外还有一种字符“gb2312”,这种字符仅能存储简体中文字符。
-
UTF-8编码:它是一种全国家通过的一种编码,如果网站涉及到多个国家的语言,那么建议选择UTF-8编码。

(3)修改数据库定义的字符编码

(4)查看支持的字符集和校对规则

(5)查看所载数据库和用户

5.1.3 DDL语句之管理表
- 表属性:
- 字段,数据类型,索引
- 默认:字符集,引擎
- 表定义:
- 表名,列名
- 列属性(数据类型,列约束)

(1) 创建表并查看表结构

(2)修改表名(两种方法)
- 第一种

- 第二种

(3)修改表结构—添加列 - 在最后一行添加

- 在指定位置插入列

- 在表头增加列

- 同时添加多个列

(4)删除表中的结构

(5)修改表的定义

(6)修改列名

5.2 DCL数据库控制语句
| 代码 | 说明 |
|---|---|
| grant | 用户授权 |
| reevoke | 回收权限 |
5.3 DML数据库操作语言
- DML是针对数据行的操作
5.3.1 insert语句
insert into <表名> [( <字段名1>[,..<字段名n > ])] values ( 值1 )[, ( 值n )]
- 创建表的字段类型

- 表的约束

(1)写入第一行数据

(2)选择性插入数据

(3)表的备份
-
备份与恢复

-
备份表结构

-
备份表的结构以及数据

5.3.2 update更改(where)
更改表中数据

5.3.3 delete删除(where)

5.3.4 生产中的伪删除
为表添加一个state列

5.3.5 防止不加条件的误删
(1)备份:

(2)mysql -U 使用update与delete命令的时候不加where 条件不会执行。

5.4 DQL数据查询语言标准语法
select 字段 from 表名 where 表达式


- 查询操作

5.5 字符集说明
- 常用的字符集
- MySQL数据库的字符集:字符集(CHARACTER)、校对规则(COLLATION)
- MySQL中常见的字符集:UTF8、LATIN1、GBK
- 常见校对规则:ci:大小写不敏感、cs或bin:大小写敏感
- 我们可以使用以下命令查看:show charset; 、 show collation;
- 系统字符集说明
cat /etc/sysconfig/i18n

本文详细介绍了MySQL数据库,包括数据库概念、关系型数据库的E-R模型和范式理论。讲解了MySQL的安装过程,重点解析了用户管理,如创建、删除用户及权限设置。此外,还探讨了SQL基本语句,如DDL、DML和DCL,以及数据查询语言。最后,提到了字符集的使用和重要性。
2269

被折叠的 条评论
为什么被折叠?



