MySQL 运维 - 从零开始学习

  • 一、数据库类型
    • ► 常见的数据库类型
  • 二、数据库管理系统 DBMS
    • ►数据库系统
    • ►关系型数据库
    • ►非关系型数据库 Not Only SQL
  • 三、安装MySQL
    • ► Linux的RPM包功能
  • 四、MySQL数据库基础操作命令
    • ► 常用的数据类型
    • ► 常用的基础指令
      • 登录mysql数据库
      • 选中[使用]数据库
      • 查看数据库
      • 查看数据表
      • 查看库的字符集
      • 查看数据表的数据类型
      • 创建数据库
      • 创建UT8编码的数据库
      • 创建数据表
      • 向数据表插入数据
      • 查看数据表内容
      • 数据表内容纵向列出
      • 显示数据表内容的第二行
      • 显示数据表内容从第二行开始的一行
      • 查询多表内容
      • IN显示指定范围内的重复内容
      • 修改表名
      • 扩展表结构(增加字段)
      • 修改字段
      • 删除数据库
      • 删除数据表
      • 删除数据表字段
      • 删除数据表主键
      • 删除数据表所有记录
      • 删除数据表指定内容
      • 清空数据表数据
      • 全局修改数据表内数据
      • 修改表内指定内容的数据
      • 修改表内指定数据类型
      • 将字段至于首位
      • 将字段名临时修改并显示
      • 判断查询
      • 多重判断查询
      • 排序查询内容
      • 反向排序查询内容
      • 表内容加盐
      • 克隆表
      • 复制备份
      • 创建临时表
      • 创建用户
      • 生成密文
      • 使用密文创建用户
      • 重命名指定
      • 删除用户
      • 修改当前登录用户的密码
      • 修改其他用户密码
      • 忘记root密码的解决办法
      • 修改密码
      • 数据库用户提权
      • 查看权限
      • 删除权限
      • 查询数据去重
    • ► MySQL中6常见的约束
      • 非空约束
      • 唯一性约束
        • 列级约束
        • 表级约束
        • 联合约束
      • 主键约束
        • 列级定义
        • 表级定义
      • 外键约束

MySQL是一款免费开源的关系型数据库管理系统,关系型数据库将数据保存在不同的表中,有效的提高了灵活性


一、数据库类型

► 常见的数据库类型

关系型数据库:用于存储字符、字符串、数值以及布尔值等
MySQL SQL_Server access Oracle DB2 sybase

非关系型数据库:用于存储图片、视频、语言等
MongoDB Redis(内存/缓存数据库) Memcache
Redis和Memcache对比
相同点:存储高热数据(在内存中高速运行)
不同点:Redis可以做持久化保存,可以存储对象


二、数据库管理系统 DBMS

项目架构,不是只有服务,还有一些通用的管理系统
比如BOSS CRM OA

►数据库系统

它的处理比直接作用在数据库中操作要简单一些
目前主流的运行方式是关系型数据库+非关系型数据库集成为一个完整的架构
SQL+NoSQL保存数据并用分压

►关系型数据库

E-R 关系模型三要素
实体
可以是事物本身
关系
实体集之间对应的关系
属性
一个实体可以有多个属性,描述实体的特征

主键
唯一且非空
唯一键
可以为空(空值只能出现一次)
主键包含唯一键的部分属性

►非关系型数据库 Not Only SQL

存储海量数据,给与大数据进行分析,筛选出有价值的部分
redis 数据保存在内存中,也会定期将数据写入磁盘

Not Only SQL 不限于SQL
不需要遵循关系数据库模型
也不使用SQL作为查询语言


三、安装MySQL

►官方下载地址
►国内源下载地址

► Linux的RPM包功能

  • MySQL 只用于连接MySQL服务器
  • MySQL-client 顾名思义(客户端),用于控制MySQL服务器
  • MySQL-devel 用于编译客户端
  • MySQL-shared 动态装载的共享库(libmysqlclient.so*)
  • MySQL-bench 性能测试工具

四、MySQL数据库基础操作命令

► 常用的数据类型

变量 介绍
int 整型
float 单精度浮点 4字节32位
double 双精度浮点 8字节64位
char 固定长度的字符类型
varchar 可变长度的字符类型
text 文本
image 图片
decimal (3,2) 3个有效长度数字,小数点后面有2位

► 常用的基础指令

登录mysql数据库

mysql -u 用户名 -p

选中[使用]数据库

use 数据库名;

查看数据库

show databases;

查看数据表

show tables;

查看库的字符集

show character set;

查看数据表的数据类型

desc 数据表名;

创建数据库

create database 数据库名;

创建UT8编码的数据库

create datebase 表名 default characret set utf8 collate utf8_general_ci

创建数据表

create table 数据表名 (字段名 字段值(number));

举例:

create table info (uid int(50),name varchar(100),sex varchar(2),status varchar(100));

向数据表插入数据

insert into 数据表名 (字段名1,字段名2...) values (字段值1,字段值2...)

举例:

insert into info (uid,name,sex,status) values (1,'Frisk','未知','雪镇');

查看数据表内容

select * from 表名

数据表内容纵向列出

select * from 表名\g

显示数据表内容的第二行

select * from 表名 limit 2;

显示数据表内容从第二行开始的一行

select * from 表名 limit 2,1;

查询多表内容

select * from 表名1,表名2

IN显示指定范围内的重复内容

select * from 表名 where 字段名 in (值);

举例:

select * from info where kill in (100);

修改表名

alter table 旧表名 rename 新表名

扩展表结构(增加字段)

alter table 表名 add 字段名 varchar(100) not null default '未填写';

修改字段

alter table 表名 change 旧列名 新列名 字段();

删除数据库

drop database 数据库名;

删除数据表

drop table 数据表名;

删除数据表字段

alter table 表名 drop 字段;

删除数据表主键

alter table 表名 drop primary key;

删除数据表所有记录

一条一条删除速度较慢

delete from 表名;

删除数据表指定内容

delete from 表名 where 字段名=字段值;

清空数据表数据

整体删除速度较快

truncate 表名;

全局修改数据表内数据

update 表名 set 字段名=字段值

举例:

update info set sex='男'

修改表内指定内容的数据

update 表名 set 字段名=字段值 where 字段名=字段值;

举例:

update info set sex='女' where name='Frisk';

修改表内指定数据类型

alter table 表名 modify 字段名 数据类型();

举例:

alter table info modify uid int(10) not null default 'tan90°';

将字段至于首位

alter table 表名 modify 字段名 数据类型() frist;

将字段名临时修改并显示

select 字段名 as 新字段名 from 表名;

举例:

select name as 名字 from info;

判断查询

select * from 表名 where 字段名>字段值;

举例:

select * from info where uid>0;

多重判断查询

关键词AND | OR

select * from 表名 where 字段名>字段值 and (字段名<字段值);

排序查询内容

select * from 表名 order by 字段名 asc;

反向排序查询内容

select * from 表名 order by 字段名 desc;

表内容加盐

update 表名 set 字段名=加密方式('');

常用加密方式

  • password
  • md5
insert into user (password) values (md5('123456'));
  • encode
  • decode

encodedecode有些特殊

update user set pwd=decode('123456','123456');

克隆表

create table 表名 (select * from 克隆的表名)
create table 表名 like 克隆的表名

复制备份

insert into 表名 select * from 表名

创建临时表

临时表在退出后会销毁,show tables无法查看,一般用于测试

create temporary table 表名(字段1 数据类型...);

创建用户

create user '用户名'@'来源地址' IDENTIFIED BY '密码';

生成密文

select password('值');

使用密文创建用户

select password('123456');
create user 'Toby'@'localhost' IDENTIFIED BY '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9';

重命名指定

rename user '用户名'@'来源地址' to '新用户名'@'新来源地址';

来源地址 可指IP、网段192.168.1.%、域名

删除用户

drop user '用户名'@'来源地址';

修改当前登录用户的密码

set password = password('值');

修改其他用户密码

set password for '用户名'@'来源地址' = password('值');

忘记root密码的解决办法

进入MySQL配置文件

vim /etc/my.conf

[mysqld]语句下增加skip-grant-tables

[mysqld]
skip-grant-tables
#登陆时无需密码
systemctl restart mysqld

修改密码

update mysql.user set authentication_string = password('') where user='root'flush privileges;

数据库用户提权

grant 权限列表 on 数据库名.表名 to '用户名'@'location' []

查看权限

show grant for '用户名'@'来源地址'

删除权限

revoke all on *.* from 用户名@地址;

查询数据去重

select distinct 字段 from 表名

► MySQL中6常见的约束

  • 主键约束(primary key)
  • 外键约束(foreign key)
  • 非空约束(not null)
  • 唯一性约束(unique)
  • 默认性约束(default)
  • 自增约束(auto_increment)

非空约束

create table user(-> id int(10) not null,-> name varchar(16)-> );

向表中添加数据

insert into user (name) values('Bob');

拒绝添加

(1364, "Field 'id' doesn't have a default value")

唯一性约束

列级约束

所有语法都支持,但是外建上没有用处

create table user(-> id int(10),-> name varchar(16) not null,-> sex varchar(2) unique-> );

表级约束

除了非空约束以外全部支持

create table user(-> id int(10),-> name varchar(16) not null,-> sex varchar(2),-> unique(sex)-> );

联合约束

同时约束多个目标

create table user(-> id int(10),-> name varchar(16) not null,-> sex varchar(2),-> unique(name,sex)-> );

主键约束

列级定义

create table user(-> id int(10) primary key,-> name varchar(16)-> );

表级定义

create table user(-> id int(10),-> name varchar(16) not null,-> constraint password primary key (id)-> );

外键约束

create table user (-> id int(10),-> name varchar(16) not null-> );
create table password(-> id int(10) primary key auto_increment,-> name varchar(16),-> foreign key(id) references user(uid)-> );

MySQL 运维 - 从零开始学习 | 超详细相关推荐

  1. MySQL运维高级课程 - 多位大牛轮番上阵倾力讲解 超多经典PDF 28天MySQL运维课程

    ===============课程目录=============== ├<01 - 掀起MySQL的头盖来> │  ├掀起MySQL的头盖来 - 叶金荣.mp3 │  └掀起MySQL的头 ...

  2. 最新MySQL运维高级课程 - 多位大牛轮番上阵倾力讲解 超多经典PDF 28天MySQL运维课程

    ===============课程目录=============== ├<01 - 掀起MySQL的头盖来> │  ├掀起MySQL的头盖来 - 叶金荣.mp3 │  └掀起MySQL的头 ...

  3. 亲爱的,我是一条Linux运维技术学习路径呀。

    根据我的经验,人在年轻时,最头疼的一件事就是决定自己这一生要做什么.在这方面,我倒没有什么具体的建议:干什么都可以,但最好不要写小说,这是和我抢饭碗.总而言之,干什么都是好的:但要干出个样子来,这才是 ...

  4. mysql 回滚_一个集审核、执行、备份及生成回滚语句于一身的MySQL运维工具

    goInception 一个集审核.执行.备份及生成回滚语句于一身的MySQL运维工具, 通过对执行SQL的语法解析,返回基于自定义规则的审核结果,并提供执行和备份及生成回滚语句的功能 架构图 使用方 ...

  5. 高性能Mysql运维应用实战-高俊峰-专题视频课程

    高性能Mysql运维应用实战-8242人已学习 课程介绍         爱维Linux独家出品,本课程从mysql运维的方方面面进行介绍,主要对mysql版本的选择,mysql平台的部署,优化.调优 ...

  6. mysql系列问答题_(2)MySQL运维基础知识面试问答题

    面试题001:请解释关系型数据库概念及主要特点? 面试题002:请说出关系型数据库的典型产品.特点及应用场景? 面试题003:请解释非关系型数据库概念及主要特点? 面试题004:请说出非关系型数据库的 ...

  7. linux运维工程师学习路线

    一.学习路线: 1.青铜: 1.Linux基础知识.基本命令(起源.组成.常用命令如cp.ls.file.mkdir等常见操作命令) 2.Linux用户及权限基础 3.Linux系统进程管理进阶 4. ...

  8. 20个MySQL运维案例,请查收!

    墨墨导读:日常MySQL运维中,会遇到各种各样的问题,下面分享二十个MySQL运维案例,附有问题的分析和解决办法,希望你遇到同样的问题的时候,可以淡定地处理. 数据技术嘉年华,十周年盛大开启,点我立即 ...

  9. (一)mysql 运维基础篇(Linux云计算从入门到精通)

    学习预览: (一)mysql 运维基础篇(Linux云计算从入门到精通) (二)mysql 索引和视图(数据库运维基础补充) (三)mysql 触发器.存储过程和函数(数据库运维基础补充) (四)My ...

最新文章

  1. matplotlib将图绘制在多福图中
  2. python和c++哪个好找工作-Scratch和Python与C++选哪个合适
  3. WPF自定义控件(四)の自定义控件
  4. 傅里叶变换:周期、非周期 与连续、离散
  5. 转:android git开源项目列表
  6. (CVPR_2021) Center-based 3D Object Detection and Tracking
  7. 云计算与虚拟化技术【课堂笔记】
  8. C++中的delete与delete[]
  9. 标准88 钢琴键代码 html+css+js
  10. JBE、JNBE、JA、JL指令详解(从原理上)
  11. RK3328_LPDDR3D178P132SD4_Template_V11_20170726,RK3328模块原理图和PCB
  12. CityEngine学习资料——
  13. 微信公众号的基本排版设置
  14. matlab lud矩阵分解,MIT线性代数总结笔记——LU分解
  15. C语言转义字符及注意点
  16. 信号与系统_第2章 连续系统的时域分析
  17. 河北金融计算机网络基础在线6.1.3,2016秋大学计算机基础(河北金融学院)
  18. 乐优商城(填坑)——后台登录
  19. python简易计算器教程_python 实现简易计算器
  20. PBR常用贴图及使用事项

热门文章

  1. win10服务器文件夹显示不全,win10电脑为什么只显示部分文件夹该如何处理
  2. php获取汉字的首字母,PHP获取汉字的首字母
  3. NC-Verilog仿真
  4. 领秀d8 android4.5 root,Root神器重大更新 KingRoot V4.5发布
  5. 计算机专业秃顶图片,大学被叫惨的三大专业,计算机秃顶是常事,医学专业这个就惨了!...
  6. 家用计算机手抄报,大学计算机作业手抄报
  7. 给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。
  8. 鸿蒙一青城的对联,8副写景色的对联,风景美如画,令人陶醉!
  9. golang 使用map处理多级json后输出map中的数组
  10. CAN 总线通信 简要概括