数据库--MySQL介绍

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

数据库–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 是最流行的关系型数据库管理系统之一。
    1

2.2 MySQL常用存储引擎分析

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

2.3 MySQL安装

(1)安装mysql

3
(2)数据库服务管理

systemctl start mariadb  #开启服务
systemctl stop mariadb  #终止服务
syatemctl enable mariadb  # 设置开机自启
systemctl status mariadb  # 查看服务状态

4
(3)安全性密码设置
5

3.MySQL用户管理

3.1 用户的作用及定义

(1)用户的作用:

  • 用户的登录数据库
  • 用于管理数据库及数据

(2)用户的定义:
6

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)给定权限新建用户
    8

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

    (4)删除用户
    10

3.3 用户权限增加和取消

11

4.MySQL客户端工具

4.1 mysql客户端命令

  • 用于数据库连接管理
  • 将用户SQL语句发送到服务器
代码意义
mysqladmin命令行管理工具
mysqldump备份数据库和表的内容
  • 用于连接服务器
  • 用于管理数据可通过以下方式进行管理
英文意义
DDL数据定义语言
DCL数据控制语言
DML数据操作语言

4.2 mysql命令使用

(1)help :略
(2)source命令(脚本的调用)
12
(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得到

  • 例子
    13

5.SQL基本语句

5.1 DDL语句(数据定义语言)

  • 定义范围:
    • 库:名字,特性
    • 表:表名,列
5.1.1 数据库查看

(1)查看数据库–查看全部

show databases;

(2)查看数据库-模糊匹配
14
(3)查看相关的帮助
15

5.1.2 数据库操作

42

(1)创建一个数据库

create database weoopp;

(2)查看你数据库创建的格式
16
(3)创建数据库时司仪字符编码

  • GBK编码:是指中国的中文字符,其它它包含了简体中文与繁体中文字符,另外还有一种字符“gb2312”,这种字符仅能存储简体中文字符。

  • UTF-8编码:它是一种全国家通过的一种编码,如果网站涉及到多个国家的语言,那么建议选择UTF-8编码。
    17
    (3)修改数据库定义的字符编码
    18
    (4)查看支持的字符集和校对规则
    19
    (5)查看所载数据库和用户
    20

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

(1) 创建表并查看表结构
21
(2)修改表名(两种方法)

  • 第一种
    22
  • 第二种
    23
    (3)修改表结构—添加列
  • 在最后一行添加
    24
  • 在指定位置插入列
    25
  • 在表头增加列
    26
  • 同时添加多个列
    27

(4)删除表中的结构
28
(5)修改表的定义
29
(6)修改列名
30

5.2 DCL数据库控制语句

代码说明
grant用户授权
reevoke回收权限

5.3 DML数据库操作语言

  • DML是针对数据行的操作
5.3.1 insert语句
insert into <表名> [( <字段名1>[,..<字段名n > ])] values ( 值1 )[, ( 值n )]
  • 创建表的字段类型
    46
  • 表的约束
    47

(1)写入第一行数据
31
(2)选择性插入数据
32
(3)表的备份

  • 备份与恢复
    43

  • 备份表结构
    33

  • 备份表的结构以及数据
    34

5.3.2 update更改(where)

更改表中数据
35

5.3.3 delete删除(where)

36

5.3.4 生产中的伪删除

为表添加一个state列
37

5.3.5 防止不加条件的误删

(1)备份:

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

5.4 DQL数据查询语言标准语法

select 字段 from 表名 where 表达式

44

  • 查询操作
    44

5.5 字符集说明

  • 常用的字符集
    • MySQL数据库的字符集:字符集(CHARACTER)、校对规则(COLLATION)
    • MySQL中常见的字符集:UTF8、LATIN1、GBK
    • 常见校对规则:ci:大小写不敏感、cs或bin:大小写敏感
    • 我们可以使用以下命令查看:show charset; 、 show collation;
  • 系统字符集说明
cat  /etc/sysconfig/i18n 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值