数据库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

· 常用的图形客户端工具

o Navicat

o MySQLWorkBench

图形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

o CREATE TABLE

o DROP TABLE

o ALTER TABLE

· DML

o SELECT FROM TABLE

o INSERT INTO TABLE

o UPDATE TABLE SET

o DELETE FROM TABLE

· DCL

o GRANT

o REVOKE

· TCL

o COMMIT

o ROLLBACK

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 数据库原理

o Linux与Shell

o 计算机体系结构

o 网络原理

o 数据库系统与操作

o 服务器硬件

o 业务架构设计

· 软技能

o 责任心、执行力

o 坚韧、抗压

o 学习与沟通能力

o 正直、诚信

o 耐心,注重细节

o 分析能力

o 团队协作

DBA如何发展

· 小公司or大公司

· 发展通道:

o DBA -> 业务架构师

o DBA -> 运维专家

o DBA -> 数据库研发

小结

· 认识DBA

o 管理好数据库

o DBA工作很重要

o 专业技能与软技能并重

o 不错的发展前景

o 互联网公司很缺优秀的DBA

原文地址:http://blog.51cto.com/8999a/2044494

时间: 2024-10-04 15:30:28

数据库MYSQL学习系列一的相关文章

数据库MYSQL学习系列二

一.MYSQL数据库对象与应用 2.1-MySQL数据类型 Number不止一种 · 整形 · 浮点型 整形 · INT · SMALLINT · MEDIUMINT · BIGINT type Storage Minumun Value Maximum Value (Bytes) (Signed/Unsigned) (Signed/Unsigned) TINYINT 1 -128 127 0 255 SMALLINT 2 -32768 32767 0 65535 MEDIUMINT 3 -83

MYSQL学习系列--DML语句(二)

引言: 数据操纵语言(Data Manipulation Language, DML)是SQL语言中,负责对数据库对象运行数据访问工作的指令集,以INSERT.UPDATE.DELETE三种指令为核心,分别代表插入.更新与删除,是开发以数据为中心的应用程序必定会使用到的指令 实践操作 这篇是延续于上一篇更新写的,上一篇的文章:MYSQL学习系列--DML语句(一)我们上一次分别说了插入.更新.删除记录,这篇我们来介绍查询的不同玩法(涉及到一些常用函数)4)查询记录select 字段 from 表

MYSQL学习系列--DML语句(一)

引言: 数据操纵语言(Data Manipulation Language, DML)是SQL语言中,负责对数据库对象运行数据访问工作的指令集,以INSERT.UPDATE.DELETE三种指令为核心,分别代表插入.更新与删除,是开发以数据为中心的应用程序必定会使用到的指令. 实践操作 在操作之前,一些数据库的创建,表的创建,这里就不在详说了,不懂得可以看我之前写的文章MYSQL学习系列--DDL语句查询使用select * from 表名; 前提是进入数据库我这边因为什么数据都没有插入,所以查

MySQL学习系列2--MySQL执行计划分析EXPLAIN

1.Explain语法 EXPLAIN SELECT -- 变体:   EXPLAIN EXTENDED SELECT -- 将执行计划"反编译"成SELECT语句,运行SHOW WARNINGS 可得到被MySQL优化器优化后的查询语句 2.执行计划分析和实例 创建员工表Employee create table Employee ( ID int auto_increment, Ename varchar(32), Age int, Salary float, MID int, P

数据库Mysql学习笔记(一)

Mysql 数据库是数据库初学者最佳的选择的,其语法简单,采用的非底层的SQL语言定义(DDL).操作(DML).控制(DCL)数据库. 入门知识:服务器.库.表. (1)安装Mysql服务器.配置文件.数据和路径.Mysqld.exe是服务器端,再安装满足服务器端通信规范的客服端(客服端不唯一)如不同浏览器,基于命令行的Mysql黑窗口,Mysql_fornt,navcat,基于Web的phpMyAdmin.  (初学者建议使用基于命令行的Mysql黑窗口,可熟悉windows中的cmd环境)

MySQL学习系列-MySQL基础

概述 MySQL是一种关系型数据库既存放的实体与实体之间的关系(就是二维表).是Oracle公司提供的开源数据库.其中社区版免费,行业版是收费的.而公司常用的Oracle,Oracle是大型的收费的数据库,它是属于非关系型数据库(存储的是对象). MySQL语言 原文地址:https://www.cnblogs.com/CoderHong/p/9460713.html

我的MYSQL学习心得(九)

我的MYSQL学习心得(九) 我的MYSQL学习心得(一) 我的MYSQL学习心得(二) 我的MYSQL学习心得(三) 我的MYSQL学习心得(四) 我的MYSQL学习心得(五) 我的MYSQL学习心得(六) 我的MYSQL学习心得(七) 我的MYSQL学习心得(八) 这一篇<我的MYSQL学习心得(九)>将会讲解MYSQL的索引 索引是在存储引擎中实现的,因此每种存储引擎的索引都不一定完全相同,并且每种存储引擎也不一定支持所有索引类型. 根据存储引擎定义每个表的最大索引数和最大索引长度.所有

我的MYSQL学习心得(九) 索引

这一篇<我的MYSQL学习心得(九)>将会讲解MYSQL的索引 索引是在存储引擎中实现的,因此每种存储引擎的索引都不一定完全相同,并且每种存储引擎也不一定支持所有索引类型. 根据存储引擎定义每个表的最大索引数和最大索引长度.所有存储引擎支持每个表至少16个索引,总索引长度至少为256字节. 大多数存储引擎有更高的限制.MYSQL中索引的存储类型有两种:BTREE和HASH,具体和表的存储引擎相关: MYISAM和InnoDB存储引擎只支持BTREE索引:MEMORY和HEAP存储引擎可以支持H

Java Web学习系列——Maven Web项目中集成使用Spring、MyBatis实现对MySQL的数据访问

本篇内容还是建立在上一篇Java Web学习系列——Maven Web项目中集成使用Spring基础之上,对之前的Maven Web项目进行升级改造,实现对MySQL的数据访问. 添加依赖Jar包 这部分内容需要以下Jar包支持 mysql-connector:MySQL数据库连接驱动,架起服务端与数据库沟通的桥梁: MyBatis:一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架: log4j:Apache的开源项目,一个功能强大的日志组件,提供方便的日志记录: 修改后的pom.xm