数据库MYSQL学习系列一

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:
             数据库MYSQL学习系列一

一.MYSQL数据库基础
1.1-认识MYSQL
什么是数据库
计算机处理和存储的一切信息都是数据
计算机系统中一种用于存取数据的程序
一种:
计算机系统中有很多种能够存取数据的程序
它们各有特征和长处,有自己的使用范围
存取:
能够保存数据避免丢失
能够按照需求找到符合条件的数据

为什么要使用数据库
数据库帮助我们解决一下数据存取难题:
较大数据量
网络控制
并发访问
高性能要求
事务控制
持久化和和数据安全
查询数据需求逻辑复制

数据库分类
关系型数据库
MYSQL
Oracle
SQL Server
PostgreSQL

非关系型数据库
Hadoop:存放大数据
mongoDB:文档型数据库
Redis:键值型数据库
Cassandra:分布式数据库

最显著的区别:是否使用结构化查询语句(SQL)

为什么学习MYSQL
MYSQL:The world’s most popular open source database
最流行
开源
并不是最先进
前三强中唯一的开源数据库
在互联网企业中占据绝对主流地位
基于GPL协议开放源代码
社区版完全开放免费
代码允许自由的进行修改
易于学习:
MYSQL具备关系型数据库核心功能但是特性并不繁多。
架构设计上趋于精简
非常适合新手学习关系型数据库,入门后可向其他数据库发展

谁需要学习MYSQL
应用开发者
DBA

学习目标-应用开发者
有助于利用MYSQL开发出性能优异的应有程序

学习目标-DBA
为企业提供可靠的数据库技术保障

1.2-轻松安装MySQL
轻松部署MySQL
Windows下安装MySQL
o图形化工具安装, MySQL Installer
Linux(Ubuntu)下安装MySQL
o包管理安装,apt-get

Windows安装时在安装中间starting server时报错解决办法是手动进入服务管理把MySQL服务的登录方式改为用本地账户且允许与桌面交互
在Ubuntu下可以用apt-cache search mysql-server查看可用的软件包
使用sudo apt-get install mysql-server-5.6安装MySQL5.6
启动与停止MySQL服务:

启动

sudo /etc/init.d/mysql start# 或者
sudo service mysql start

停止

sudo /etc/init.d/mysql stop# 或者
sudo service mysql stop

重启

sudo service mysql restart

查看状态

sudo /etc/init.d/mysql status
1.3-MySQL数据库连接
工作中常用到的三种连接方式
Java App + JDBC client(其他语言也有,比如Python的MySQLdb)
MySQL client
"MySQL" utility
使用应用程序连接MySQL
应用程序使用驱动(connector/driver)客户端连接MySQL
MySQL驱动程序涵盖各种主流语言
使用命令行连接MySQL
安装MySQL客户端软件包
设置环境变量(Linux)
如何安装MySQL-client
从软件源安装sudo apt-get install mysql-client
验证MySQL的安装
mysql -V
命令行连接MySQL的两种方式
Socket连接(本地连接)
TCP/IP连接(远程连接)
使用Socket连接

需要指定socket文件和用户名、密码

mysql -S/tmp/mysql.sock -uroot -p
远程连接

需要指定IP和端口

mysql -h127.0.0.1 -P3306 -uroot -p
本地连接VS远程连接
本地连接只能在MySQL服务器上创建,常用作为MySQL状态检查,或程序和MySQL部署在一台机器上。
远程连接在MySQL服务器内外都能生效,适合应用服务器和MySQL部署在不同机器上的场景。
在Windows下用命令行连接MySQL
mysql -hlocalhost -P3306 -uroot -p
连接进入之后可以做什么

数据库状态

status;

展示当前连接

show processlist;
使用命令行连接MySQL的注意事项
socket一般存储路径为:/tmp/mysql.sock

如果找不到文件可以通过tcp连接进来然后通过如下命令查找

show global variables like 'socket';
socket文件的权限必须是777
不要将密码直接输入在命令行里,存在安全风险!
命令行连接MySQL的特点
MySQL命令行里有丰富的扩展参数
DBA运维管理工具大多使用命令行方式
多台机器可以同时操作,对于DBA来说非常有效率
使用图形客户端连接MySQL
常用的图形客户端工具
oNavicat
oMySQLWorkBench
图形GUI工具的优势
操作简单易于上手
支持图形化的导入、导出
可视化界面输出,输出可视化
总结
应用程序需要使用API接口连接MySQL
开发工程师可以使用图形工具连接MySQL
命令行客户端才是DBA的最爱
1.4-SQL语言入门
关系型数据库
数据存放在表中
表的每一行被称为记录
表中所有记录都有相同的字段(列)
SQL是什么
Structured Query Language
是一种特殊目的的编程语言,用于关系型数据库中的标准数据存取操作
与数据库进行沟通的钥匙
SQL语言与数据库
用SQL创建表,定义表中的字段
用SQL向表中增加,删除,修改记录
用SQL从表中查询到想要的记录
用SQL操作数据库的一切
SQL语句的分类
SQL语句的分类 大致用途
DDL(Data Definition Language) 创建表,删除表,修改表……
DML(Data Manipulation Language) 向表中插入记录,修改或者删除表中的记录……
select 根据条件从表中查询出想要得到的记录
DCL(Data Control Language) 控制数据库的访问权限等设置
TCL(Transaction Control Language) 控制事务进展
DDL
oCREATE TABLE
oDROP TABLE
oALTER TABLE
DML
oSELECT FROM TABLE
oINSERT INTO TABLE
oUPDATE TABLE SET
oDELETE FROM TABLE
DCL
oGRANT
oREVOKE
TCL
oCOMMIT
oROLLBACK
example:

查看当前有哪些数据库

show databases;# 使用名为test的数据库
use test;# 创建一张学生表create table stu(
id int(10),
name varchar(20),
age int(10),
primary key(id));# 每一张表都需要包含一个主键,主键唯一标识一条记录,唯一的字段,不可重复不能为空,通过primary key关键字来定义。

查看创建好的表

show create table stu;# 新加一个字段alter table stu add column gender varchar(20);# 修改一个字段alter table stu modify column gender varchar(40);# 删除一个字段alter table stu drop column gender;# 删除表drop table stu;# 查看当前数据库中的表
show tables;

向表中插入数据insert into stu(id,name,age) values(1,'pw',28);# 插入全部字段时可以只写表名insert into stu values(2,'nss',29);# 查看刚才添加的数据,""代表查询全部字段select from stu;# 如果只想查询两个字段,则只写要查询的字段名select name, age from stu;# 也可以根据某个条件进行查询,比如只查询id为1的记录select name age from stu where id=1;

更新语句update stu set age=29 where id=1;

删除表中的数据delete from stu where id=1;

1.5-认识DBA
什么是DBA
DBA是数据库管理员,就像是足球队的守门员,是业务最后一道屏障,是业务稳定运行的基石,可以提供更畅快的用户体验
为什么需要DBA
小公司
o没有专职DBA
o但肯定有懂数据库的人
大公司
o专职DBA
o数据存储技术专家
互联网业务有以下严格要求:
高性能(数据库是重要的一环)
高可用(需要业务不中断的运行)
可扩展(支撑海量数据和业务,数据库拓展)
安全性(核心业务数据敏感)
没有DBA,就没有稳定的数据库,请求变慢,数据丢失,安全问题,用户投诉,无穷无尽
DBA要做哪些工作
基础运维工作
o安装部署
o监控
o故障处理
安全运维工作
o数据备份与恢复
o安全访问、安全漏洞
o审计
性能调优
o数据库优化
o容量评估、软硬件升级
开发支持工作
o存储方案制定
o数据库设计
o数据库变更、SQL Review
流程与培训
o数据库开发规范
o运维流程标准化
o业务培训
DBA需要哪些技能
专业技能
o数据库原理
oLinux与Shell
o计算机体系结构
o网络原理
o数据库系统与操作
o服务器硬件
o业务架构设计
软技能
o责任心、执行力
o坚韧、抗压
o学习与沟通能力
o正直、诚信
o耐心,注重细节
o分析能力
o团队协作
DBA如何发展
小公司or大公司
发展通道:
oDBA -> 业务架构师
oDBA -> 运维专家
oDBA -> 数据库研发
小结
认识DBA
o管理好数据库
oDBA工作很重要
o专业技能与软技能并重
o不错的发展前景
o互联网公司很缺优秀的DBA













本文转自去轻狂书生51CTO博客,原文链接:http://blog.51cto.com/8999a/2044502 ,如需转载请自行联系原作者

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
15天前
|
SQL 数据可视化 关系型数据库
轻松入门MySQL:深入探究MySQL的ER模型,数据库设计的利器与挑战(22)
轻松入门MySQL:深入探究MySQL的ER模型,数据库设计的利器与挑战(22)
|
11天前
|
存储 关系型数据库 MySQL
MySQL基础入门:数据库操作全攻略
MySQL基础入门:数据库操作全攻略
44 0
|
10天前
|
SQL 存储 关系型数据库
6本值得推荐的MySQL学习书籍
本文是关于MySQL学习书籍的推荐,作者在DotNetGuide技术社区和微信公众号收到读者请求后,精选了6本值得阅读的MySQL书籍,包括《SQL学习指南(第3版)》、《MySQL是怎样使用的:快速入门MySQL》、《MySQL是怎样运行的:从根儿上理解MySQL》、《深入浅出MySQL:数据库开发、优化与管理维护(第3版)》以及《高性能MySQL(第4版)》和《MySQL技术内幕InnoDB存储引擎(第2版)》。此外,还有12本免费书籍的赠送活动,涵盖《SQL学习指南》、《MySQL是怎样使用的》等,赠书活动有效期至2024年4月9日。
|
11天前
|
关系型数据库 MySQL 数据库
卸载云服务器上的 MySQL 数据库
卸载云服务器上的 MySQL 数据库
30 0
|
1天前
|
SQL 关系型数据库 MySQL
MySQL环境搭建——“MySQL数据库”
MySQL环境搭建——“MySQL数据库”
|
1天前
|
SQL NoSQL 关系型数据库
初识MySQL数据库——“MySQL数据库”
初识MySQL数据库——“MySQL数据库”
|
4天前
|
关系型数据库 MySQL 数据库
数据库基础(mysql)
数据库基础(mysql)
|
4天前
|
SQL 关系型数据库 数据库
【后端面经】【数据库与MySQL】SQL优化:如何发现SQL中的问题?
【4月更文挑战第12天】数据库优化涉及硬件升级、操作系统调整、服务器/引擎优化和SQL优化。SQL优化目标是减少磁盘IO和内存/CPU消耗。`EXPLAIN`命令用于检查SQL执行计划,关注`type`、`possible_keys`、`key`、`rows`和`filtered`字段。设计索引时考虑外键、频繁出现在`where`、`order by`和关联查询中的列,以及区分度高的列。大数据表改结构需谨慎,可能需要停机、低峰期变更或新建表。面试中应准备SQL优化案例,如覆盖索引、优化`order by`、`count`和索引提示。优化分页查询时避免大偏移量,可利用上一批的最大ID进行限制。
29 3
|
5天前
|
存储 关系型数据库 MySQL
【后端面经】【数据库与MySQL】为什么MySQL用B+树而不用B树?-02
【4月更文挑战第11天】数据库索引使用规则:`AND`用`OR`不用,正用反不用,范围中断。索引带来空间和内存代价,包括额外磁盘空间、内存占用和数据修改时的维护成本。面试中可能涉及B+树、聚簇索引、覆盖索引等知识点。MySQL采用B+树,因其利于范围查询和内存效率。数据库不使用索引可能因`!=`、`LIKE`、字段区分度低、特殊表达式或全表扫描更快。索引与NULL值处理在不同数据库中有差异,MySQL允许NULL在索引中的使用。
10 3
|
6天前
|
关系型数据库 MySQL 数据库连接
Django(四):Django项目部署数据库及服务器配置详解(MySQL)
Django(四):Django项目部署数据库及服务器配置详解(MySQL)
29 11