• 欢迎访问我的博客

【转】Mysql基础教程

mysql iJiaxin 7个月前 (03-05) 335次浏览 0个评论 扫描二维码

MySQL 简介

1、什么是数据库 ?

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。

主流的数据库有:sqlserver,mysql,Oracle、SQLite、Access、MS SQL Server 等,本文主要讲述的是 mysql

2、数据库管理是干什么用的?

  • a. 将数据保存到文件或内存
  • b. 接收特定的命令,然后对文件进行相应的操作

PS:如果有了以上管理系统,无须自己再去创建文件和文件夹,而是直接传递 命令 给上述软件,让其来进行文件操作,他们统称为数据库管理系统(DBMS,Database Management System)

MySQL 安装

MySQL 是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL 数据库系统使用最常用的数据库管理语言–结构化查询语言(SQL)进行数据库管理。在 WEB 应用方面 MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。

使用 mysql 必须具备一下条件

  • a. 安装 MySQL 服务端
  • b. 安装 MySQL 客户端
  • c. 【客户端】连接【服务端】
  • d. 【客户端】发送命令给【服务端 MySQL】服务的接受命令并执行相应操作(增删改查等)

1、下载地址:dev.mysql.com/downloads

2、安装

  • windows 安装请参考:cnblogs.com/lonelywolfm
  • linux 下安装:cnblogs.com/chenjunbiao

注:以上两个链接有完整的安装方式,撸主也是参考他的安装的,安装完以后 mysql.server start 启动 mysql 服务

MySQL 操作

一、连接数据库

常见错误如下:

ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2), it means that the MySQL server daemon (Unix) or service (Windows) is not running.

退出连接:

二、查看数据库,创建数据库,使用数据库查看数据库:

默认数据库:

创建数据库:

使用数据库:

显示当前使用的数据库中所有表:

三、用户管理

创建用户

删除用户

修改用户

修改密码

注:用户权限相关数据保存在 mysql 数据库的 user 表中,所以也可以直接对其进行操作(不建议)

四、权限管理

mysql 对于权限这块有以下限制:

对于数据库及内部其他权限如下:

对于用户和 IP 的权限如下:

1、查看权限:

2、授权

3、取消授权

授权实例如下:

MySQL 表操作

一、查看表

二、创建表

来一个实例好详解

注:

  • 默认值,创建列时可以指定默认值,当插入数据时如果未主动设置,则自动添加默认值
  • 自增,如果为某列设置自增列,插入数据时无需设置此列,默认将自增(表中只能有一个自增列)注意:1、对于自增列,必须是索引(含主键)2、对于自增可以设置步长和起始值
  • 主键,一种特殊的唯一索引,不允许有空值,如果主键使用单个列,则它的值必须唯一,如果是多列,则其组合必须唯一。

三、删除表

四、清空表内容

五、修改表

对于上述这些操作是不是看起来很麻烦,很浪费时间,别慌!有专门的软件能提供这些功能,操作起来非常简单,这个软件名字叫 Navicat Premium ,大家自行在网上下载,练练手,但是下面的即将讲到表内容操作还是建议自己写命令来进行

六、基本数据类型

MySQL 的数据类型大致分为:数值、时间和字符串

MySQL 表内容操作

表内容操作无非就是增删改查,当然用的最多的还是查,而且查这一块东西最多,用起来最难,当然对于大神来说那就是 so easy 了,对于我这种小白还是非常难以灵活运用的,下面咱来一一操作一下

一、增

二、删

三、改

四、查

查这块的条件太多太多我给列举出来至于组合还得看大家的理解程度哈

a、条件判断 where

b、通配符 like

c、限制 limit

d、排序 asc,desc

e、分组 group by

好了,以上我们就完成了 MySQL 的入门。经过练习之后,一些简单的增删改查任务已经不成问题,这时候就应该要考虑进阶了。

限于本文的主题和篇幅,在这里我们就不多说了,如果有需要的同学可以前往 MySQL 的官方文档进行查看,英文不太好的同学也可以去菜鸟教程。

MySQL 资源大全

除了一份入门的教程,小编还给大家准备了一份礼物,那就是 MySQL 资源大全。

工欲善其事必先利其器,有了这些工具,我们和大神的差距就会缩小许多,而且很多工具也会为我们的日常提升提供很大帮助——有了工具包,妈妈再也不用担心你的学习!

分析工具

性能,结构和数据分析工具

  • Anemometer – 一个 SQL 慢查询监控器。
  • innodb-ruby – 一个对 InooDB 格式文件的解析器,用于 Ruby 语言。
  • innotop – 一个具备多种特性和可扩展性的 MySQL 版 ‘top’ 工具。
  • pstop – 一个针对 MySQL 的类 top 程序,用于收集,汇总以及展示来自 performance_schema 的信息。
  • mysql-statsd – 一个收集 MySQL 信息的 Python 守护进程,并通过 StatsD 发送到 Graphite。

备份

备份/存储/恢复 工具

  • MyDumper – 逻辑的,并行的 MySQL 备份/转储工具。
  • MySQLDumper – 基于 web 的开源备份工具-对于共享虚拟主机非常有用。
  • mysqldump-secure – 将加密,压缩,日志,黑名单和 Nagios 监控一体化的 mysqldump 安全脚本。
  • Percona Xtrabackup – 针对 MySQL 的一个开源热备份实用程序——在服务器的备份期间不会锁定你的数据库。

性能测试

给你的服务器进行压测的工具

  • iibench-mysql -基于 Java 的 MySQL/Percona/MariaDB 索引进行插入性能测试工具。
  • Sysbench – 一个模块化,跨平台以及多线程的性能测试工具。

聊天应用

集成进聊天室的脚本

  • Hubot MySQL ChatOps

配置

MySQL 配置实例及指导

  • mysql-compatibility-config – 使 MySQL 配置起来更像新的(或先前)的 MySQL 版本。

连接器

多种编程语言的 MySQL 连接器

  • Connector/Python – 一个对于 Python 平台和开发的标准化数据库驱动程序。
  • go-sql-driver – 一个 Go 语言的轻量级、极速的 MySQL 驱动程序。
  • libAttachSQL – libAttachSQL 是 MySQL 服务器的一个轻量级,非阻塞的 C 语言 API。
  • MariaDB Java Client – 针对 Java 应用且经过 LGPL 许可的 MariaDB 客户端库。
  • MySQL-Python – 一个 Python 语言的 MySQL 数据库连接器。
  • PHP mysqlnd – 针对 MySQL 的 MySQL 本地驱动,弃用过时的 libmysql 基础驱动。

开发

支持 MySQL 相关开发的工具

  • Flywaydb – 数据库迁移;任意情况下轻松可靠地演变你的数据库版本。
  • Liquibase – 对你的数据库进行源代码控制。
  • Propagator – 集中模式和数据部署在一个多维拓扑上。

GUI

前端和应用的 GUI

  • Adminer – 一个 PHP 编写的数据库管理工具。
  • HeidiSQL – Windows 下的 MySQL 图形化管理工具。
  • MySQL Workbench – 提供给数据库管理员和开发人员进行数据库设计和建模的集成工具环境;SQL 开发;数据库管理。
  • phpMyAdmin – 一个 PHP 写成的开源软件,意图对 web 上的 MySQL 进行管理。
  • SequelPro – 一个 mac 下运行 MySQL 的数据库管理应用程序。
  • mycli – 一个带自动补全和语法高亮的终端版 MySQL 客户端

HA

高可用解决方案

  • Galera Cluster – 一个基于同步复制的多主机集群方案。
  • MHA – 针对 MySQL 的优秀高可用管理器及工具
  • MySQL Fabric – 一个用于管理 MySQL 服务器场(Server Farms)的可扩展框架。
  • Percona Replication Manager – 针对 MySQL 的异步复制管理代理。支持以文件和 GTID 为基础的复制,使用 booth 实现的地理分布式集群。

代理

MySQL 代理

  • MaxScale – 开源,以数据库为中心的代理。
  • Mixer – Go 实现的一个 MySQL 代理,目的为 MySQL 分片提供一个简单的解决方案。
  • MySQL Proxy – 一个处于你的客户端和 MySQL 服务端之间的简单程序,它可以检测、分析或者改变它们的通信。
  • ProxySQL – 高性能的 MySQL 代理。

复制

复制相关的软件

  • orchestrator – 对 MySQL 复制拓扑管理并可视化的工具。
  • Tungsten Replicator – MySQL 的一个高性能、开源、数据复制引擎。

模式

附加模式

  • common_schema – MySQL DBA 的框架, 提供一个具有函数库、视图库和查询脚本的解释器。
  • sys – 一个视图、函数和过程的集合,以帮助 MySQL 管理人员更加深入理解 MySQL 数据库的使用。

服务器

MySQL server flavors

  • MariaDB – MySQL server 的一个由社区开发的分支。
  • MySQL Server & MySQL Cluster – Oracle 官方的 MySQL server 和 MySQL 集群分布。
  • Percona Server – 一个加强版的 MySQL 替代品
  • WebScaleSQL – WebScaleSQL,5.6 版本,基于 MySQL 5.6 社区版本。

分片

分片解决方案/框架

  • vitess – 对于大规模的 web 服务,vitess 提供服务和工具以便于 MySQL 数据库的缩放。
  • jetpants – 一个自动化套件,用于管理大规模分片集群,由 Tumblr 开发。

工具包

工具包,通用脚本

  • go-mysql – 一个纯 go 的库,用于处理 MySQL 的网络协议和复制。
  • MySQL Utilities – 一个命令行实用程序的集合,Python 语言编写,用于维护和管理单一或多层的 MySQL。
  • Percona Toolkit – 一个先进的命令行工具集,用于执行对于 MySQL 服务器和系统过于困难或复杂的任务。
  • openark kit – 一组实用的工具,解决日常的维护工作,包括一些复杂的或需徒手操作的,用 Python 语言编写。
  • UnDROP – 一个用来恢复删除或损坏的 InnoDB 表中数据的工具。

本文转自:http://blog.51cto.com/mageedu/2069324


iJiaxin 个人博客 , 版权所有丨如未注明 , 均为原创丨转载请注明原文链接:【转】Mysql 基础教程

喜欢 (0)
[]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
151 queries in 3.812 seconds, using 11.48MB memory