数据库MYSQL学习系列一
2017-11-26 21:36
232 查看
数据库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
为企业提供可靠的数据库技术保障
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
· DDLo CREATE TABLEo DROP TABLEo ALTER TABLE· DMLo SELECT FROM TABLEo INSERT INTO TABLEo UPDATE TABLE SETo DELETE FROM TABLE· DCLo GRANTo REVOKE· TCLo COMMITo ROLLBACKexample:# 查看当前有哪些数据库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;
一.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下安装MySQLo 图形化工具安装, MySQL Installer· Linux(Ubuntu)下安装MySQLo 包管理安装,apt-getWindows安装时在安装中间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 Navicato 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) | 控制事务进展 |
1.5-认识DBA
什么是DBA
DBA是数据库管理员,就像是足球队的守门员,是业务最后一道屏障,是业务稳定运行的基石,可以提供更畅快的用户体验为什么需要DBA
· 小公司o 没有专职DBAo 但肯定有懂数据库的人· 大公司o 专职DBAo 数据存储技术专家互联网业务有以下严格要求:· 高性能(数据库是重要的一环)· 高可用(需要业务不中断的运行)· 可扩展(支撑海量数据和业务,数据库拓展)· 安全性(核心业务数据敏感)没有DBA,就没有稳定的数据库,请求变慢,数据丢失,安全问题,用户投诉,无穷无尽DBA要做哪些工作
· 基础运维工作o 安装部署o 监控o 故障处理· 安全运维工作o 数据备份与恢复o 安全访问、安全漏洞o 审计· 性能调优o 数据库优化o 容量评估、软硬件升级· 开发支持工作o 存储方案制定o 数据库设计o 数据库变更、SQL Review· 流程与培训o 数据库开发规范o 运维流程标准化o 业务培训DBA需要哪些技能
· 专业技能o 数据库原理o Linux与Shello 计算机体系结构o 网络原理o 数据库系统与操作o 服务器硬件o 业务架构设计· 软技能o 责任心、执行力o 坚韧、抗压o 学习与沟通能力o 正直、诚信o 耐心,注重细节o 分析能力o 团队协作DBA如何发展
· 小公司or大公司· 发展通道:o DBA -> 业务架构师o DBA -> 运维专家o DBA -> 数据库研发小结
· 认识DBAo 管理好数据库o DBA工作很重要o 专业技能与软技能并重o 不错的发展前景o 互联网公司很缺优秀的DBA相关文章推荐
- 数据库MYSQL学习系列二
- MySql基础数据库管理--学习系列004
- 数据库MYSQL学习系列三
- 数据库MYSQL学习系列二
- 数据库MYSQL学习系列二
- 数据库MYSQL学习系列一
- MySql创建数据库-学习系列003
- mysql学习碎片---数据库查询指定条数数据的方法
- 数据库学习纪要(十七):MySQL简介-1
- MySQL系列:MySQL关系型数据库架构
- MySQL系列课程之一数据库的介绍
- 【WPF学习笔记】之如何把数据库里的值读取出来然后显示在页面上:动画系列之(六)(评论处有学习资料及源码)
- Spark踩坑系列2--数据库(Hbase+Mysql)
- 我的Php学习笔记(六)Mysql简介和创建新的数据库 常用的SQL语句
- mysql学习2-常见数据库操作
- mysql 学习笔记5-- 数据库优化
- MYSQL 学习笔记 之 数据库基本操作2
- 数据库系列学习(零)-写在前面的话
- MySQL5.6.17学习笔记(一)数据库优化思路
- Linux 数据库学习---mysql常用的数据类型