牛掰的[MySQL]数据库介绍

据库基础

数据库(Database,DB)是按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库。

什么是数据库

数据库指的是以一定方式储存在一起、能为多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。简单来说可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作。

数据库系统

  数据库系统有3个主要的组成部分。

  数据库

  数据库(Database System):用于存储数据的地方。

  数据库管理系统

  数据库管理系统(Database Management System,DBMS):用户管理数据库的软件。

  数据库应用程序

  数据库应用程序(Database Application):为了提高数据库系统的处理能力所使用的管理数据库的软件补充。

SQL语言

  SQL,(Structured Query Language)即结构化查询语言,数据库管理系统专门通过SQL语言来管理数据库中的数据,与数据库通信。

SQL的优点:

  • SQL不是某个特定数据库供应商专有的语言。几乎所有重要的 DBMS都支持SQL,所以,学习此语言使你几乎能与所有数据库 打交道。
  • SQL简单易学。它的语句全都是由描述性很强的英语单词组成, 而且这些单词的数目不多。
  • SQL尽管看上去很简单,但它实际上是一种强有力的语言,灵活 使用其语言元素,可以进行非常复杂和高级的数据库操作。

DBMS专用的SQL:SQL不是一种专利语言,而且存在一个标准委员会,他们试图定义可供所有DBMS使用的SQL语法,但 事实上任意两个DBMS实现的SQL都不完全相同。本课讲的 SQL是专门针对MySQL的,虽然所讲的多数语法也适 用于其他DBMS,但不要认为这些SQL语法是完全可移植的。

SQL为数据库管理系统提供的功能

SQL语言是一种数据库查询和程序设计语言,其主要用于存取数据,查询数据,更新数据和管理数据库系统。具体的,SQL分为4个部分,这里只是大概整理一下,详细的后面我会在SQL相关中仔细整理。

  • 数据定义语言(Data Definition Language,DDL):DROP、CREATE、ALTER等语句;数据库定义语言。主要用于定义数据库,表,视图,索引和触发器等。CREATE语句主要用于创建数据库,创建表,创建视图。ALTER语句主要用于修改表的定义,修改视图的定义。DROP语句主要用于删除数据库,删除表和删除视图等。
  • 数据操作语言(Data Manipulation Language,DML):INSERT、UPDATE、DELETE语句;数据库操作语言。主要用于插入数据,更新数据,删除数据。INSERT语句用于插入数据,UPDATE语句用于更新数据,DELETE语句用于删除数据。
  • 数据查询语言(Data Query Language,DQL):SELECT语句。主要用于查询数据。
  • 数据控制语言(Data Control Language ,DCL)语句:数据库控制语言。主要用于控制用户的访问权限。其中GRANT语句用于给用户增加权限,REVOKE语句用于收回用户的权限。

数据库分类

数据库的分类可多了去了,一般咱们分类两类,一类称之为关系型数据库,另一类称之为非关系型数据库.如果想要深入了解各种概念推荐看《数据库系统概论》。

关系数据库

(英语:Relational database),是创建在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。关系模型是由埃德加·科德于1970年首先提出的,并配合“科德十二定律”。现如今虽然对此模型有一些批评意见,但它还是数据存储的传统标准。标准数据查询语言SQL就是一种基于关系数据库的语言,这种语言执行对关系数据库中数据的检索和操作。

  • MySQL
  • SQL Server
  • Oracle
  • Sybase
  • 等等...

  RDBMS:关系数据库管理系统(Relational Database Management System)的特点:

  1. 数据以表格的形式出现
  2. 每行为各种记录名称
  3. 每列为记录名称所对应的数据域
  4. 许多的行和列组成一张表单
  5. 若干的表单组成database

几乎所有的数据库管理系统都配备了一个开放式数据库连接(ODBC)驱动程序,令各个数据库之间得以互相集成。

数据表

关系数据库没有数据表,关键字、主键、索引等也就无从谈起,数据表是关系数据库中一个非常重要的对象,是其它对象的基础,也是一系列二维数组的集合,用来存储、操作数据的逻辑结构。根据信息的分类情况。一个数据库中可能包含若干个数据表,每张表是由行和列组成,记录一条数据数据表就增加一行,每一列是由字段名和字段数据集合组成,列被称之为字段,每一列还有自己的多个属性,例如是否允许为空、默认值、长度、类型、存储编码、注释等

        

非关系型数据库(NoSQL)

NoSQL一词最早出现于1998年,是Carlo Strozzi开发的一个轻量、开源、不提供SQL功能的关系数据库。当代典型的关系数据库在一些数据敏感的应用中表现了糟糕的性能,例如为巨量文档创建索引、高流量网站的网页服务,以及发送流式媒体。关系型数据库的典型实现主要被调整用于执行规模小而读写频繁,或者大批量极少写访问的事务。

  • MongoDB

  MongoDB 是一个高性能,开源,无模式的文档型数据库,开发语言是C++。它在许多场景下可用于替代传统的关系型数据库或键/值存储方式。

  • Redis

  Redis 是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。目前由VMware主持开发工作。

什么是MySQL

MySQL(官方发音为英语发音:/ma? ??skju???l/ My S-Q-L,但也经常读作英语发音:/ma? ?si?kw?l/ My Sequel)原本是一个开放源代码的关系数据库管理系统(DBMS),原开发者为瑞典的MySQL AB公司,该公司于2008年被昇阳微系统(Sun Microsystems)收购。2009年,甲骨文公司(Oracle)收购昇阳微系统公司,MySQL成为Oracle旗下产品。在本教程中,会让大家快速掌握MySQL的基本知识,并轻松使用MySQL数据库。

MySQL 介绍

MySQL在过去由于性能高、成本低、可靠性好,已经成为最流行的开源数据库,因此被广泛地应用在Internet上的中小型网站中。是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。随着MySQL的不断成熟,它也逐渐用于更多大规模网站和应用,比如维基百科、Google和Facebook等网站。

但被甲骨文公司收购后,Oracle大幅调涨MySQL商业版的售价,且甲骨文公司不再支持另一个自由软件项目OpenS olaris的发展,因此导致自由软件社区们对于Oracle是否还会持续支持MySQL社区版(MySQL之中唯一的免费版本)有所隐忧,因此原先一些使用MySQL的开源软件逐渐转向其它的数据库。例如维基百科已于2013年正式宣布将从MySQL迁移到MariaDB数据库。MySQL的创始人麦克尔·维德纽斯以MySQL为基础,成立分支计划MariaDB

MySQL 发展历史

很多人以为MySQL是最近15年内才出现的数据库,其实MySQL数据库的历史可以追溯到1979年,那时 Bill Gates 退学没多久,微软公司也才刚刚起步,而Larry的Oracle公司也才成立不久。那时有一个天才程序员 Monty Widenius 用 BASIC 设计了一个报表工具,过了不久,又将此工具使用 C 语言重写,一直到 UNIX 平台,当时只是一个底层的面向报表存储引擎名叫Unireg。

  • 1985 年,瑞典的几位志同道合小伙子(David Axmark、Allan Larsson 和Monty Widenius) 成立了一家公司,这就是MySQL AB 的前身。
  • 1990年,TcX公司的客户中开始有人要求为他的API提供SQL支持。当时有人提议直接使用商用数据库,但是Monty觉得商用数据库的速度难以令人满意。于是,他直接借助于mSQL的代码,将它集成到自己的存储引擎中。令人失望的是,效果并不太令人满意,于是,Monty雄心大起,决心自己重写一个SQL支持。
  • 1996年,MySQL 1.0发布,它只面向一小拨人,相当于内部发布。
  • 1996年10月,MySQL 3.11.1发布(MySQL没有2.x版本),最开始只提供Solaris下的二进制版本。一个月后,Linux版本出现了。
  • 1999~2000年,MySQL AB公司在瑞典成立。Monty雇了几个人与Sleepycat合作,开发出了Berkeley DB引擎, 因为BDB支持事务处理,所以MySQL从此开始支持事务处理了。
  • 2003年12月,MySQL 5.0版本发布,提供了视图、存储过程等功能。
  • 2008年1月16日,Sun(太阳微系统)正式收购MySQL。
  • 2009年4月20日,甲骨文公司宣布以每股9.50美元,74亿美元的总额收购Sun电脑公司。
  • 2010年12月,MySQL 5.5发布,其主要新特性包括半同步的复制及对SIGNAL/RESIGNAL的异常处理功能的支持,最重要的是InnoDB存储引擎终于变为当前MySQL的默认存储引擎。
  • 2013年6月18日,甲骨文公司修改MySQL授权协议,移除了GPL。但随后有消息称这是一个bug。

MySQL 版本

MySQL针对不同的用户,分了社区版企业服务器版,还提供一些其它版本,是属于MySQL相关工具。

  1. MySQL Community Server 社区版本,开源免费,但不提供官方技术支持。
  2. MySQL Enterprise Edition 企业版本,需付费,可以试用30天。
  3. MySQL Cluster 集群版,开源免费。可将几个MySQL Server封装成一个Server。
  4. MySQL Cluster CGE 高级集群版,需付费。
  5. MySQL Workbench(GUI TOOL)一款专为MySQL设计的ER/数据库建模工具。

MySQL 版本命命机制由三个数字组成,例如mysql-5.6.33-osx10.11-x86_64.tar.gz

  • 第一个数字(5)主版本号:当你做了不兼容的 API 修改,
  • 第二个数字(7)次版本号:当你做了向下兼容的功能性新增,合计,主要和次要的数字构成发布系列号。该系列号描述了稳定的特征集。
  • 第三个数字(1)修订号:当你做了向下兼容的问题修正。这是一个新的bugfix释放增加。在大多数情况下,在一系列最新版本是最好的选择。

MySQL 的优势

  • 使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性。
  • 支持AIX、BSDi、FreeBSD、HP-UX、Linux、Mac OS、Novell NetWare、NetBSD、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统。
  • 为多种編程语言提供了API。这些編程语言包括C、C++、C#、VB.NET、Delphi、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。
  • 支持多线程,充分利用CPU资源,支持多用户。
  • 優化的SQL查询算法,有效地提高查询速度。
  • 既能够作为一个单独的应用程序在客户端服务器网络环境中运行,也能够作为一个程序库而嵌入到其他的软件中。
  • 提供多语言支持,常见的编码如中文的GB2312、BIG5 UTF-8,日文的Shift JIS等都可以用作數據表名和數據列名。
  • 提供TCP/IP、ODBC和JDBC等多种数据库连接途径。
  • 提供用于管理、检查、优化数据库操作的管理工具。
  • 可以处理拥有上千万条记录的大型数据库。

如何学习MySQL

如何学习 MySQL 这是一个伪命题,每个人都有适合自己的一套学习方法,各不相同,所以如何学习 MySQL 这个活儿,我没有办法告诉你,我的这个学习方法就是你最好的学习方法,所以在学习 MySQL 数据库之前,需要找准自己学习 MySQL 最舒服的姿势。

培养兴趣和动力

首先得培养兴趣爱好,不论学什么技术和什么知识点,兴趣是可以极大的提高学习效率和提供持久的战斗力。当然还有一种兴趣是被逼出来的.

了解基础知识

  SQL语句的关键字一定要牢记(牢记关键字的作用和使用语法的要求) .

  SQL语句的语法(常用的)没有多少,每天背几个也就记住了,就算你想去背,现实也会逼着你记住的(因为以后每天都要写,邪恶的一笑!!!)

利用好工具

我在学习绘画的时候,老师第一天就告诉你要买绘画笔、水粉、纸、画板、支架子,让你有一个正确的绘画姿势。其实就是准备工具,所以学习前不光要安装好环境,还得安装好工具,比MySql安装以及可视化的视图工具(Navicat)的是使用,利用这些工具的特点来掌握SQL语句,操控数据。除了这些软件工具之外还要正确、有效地利用搜索引擎这个牛逼,刚开始使用百毒,后面使用谷歌(如果你有FQ能力可以一开始使用Google),你可通过搜索引起搜到很多相关的知识点。

多动手实践操作

我个人最不喜欢“纸上谈兵派”,在我学习java的时候,动不动就让我看个底层什么的,我只是写个应用而已,我肩负出活儿的使命,我的宗旨动手实践操作,对于数据库来说它的操作性特别强,如果你不动手操作,在实际应用过程中很难发现问题。你在实际操作中发现问题,并通过各种方法解决问题,这样才能提高实战应用操作能力。在你实战操作的过程中顺带补充基础知识。

记录笔记

你有了上面快速敏捷的学习能力,你还得附带一个技能,才能更好、更快的入门MySQL数据库。这个技能就是做笔记,做笔记在我这里起到三个作用:第一,避免遗忘知识点。知识点太多,知识点偏冷,不常用也容易忘记;第二,知识点分阶段吃透。当你理解的知识点越来越多的时候,还有一些一知半解的知识点,你都需要做一些笔记,记录之后找个时间点好好把这些一知半解的知识点吃透,在每个阶段去看你的笔记你会有一些不同的理解。第三,总结沉淀,当你入门之后总结沉淀很重要,一次总结沉淀很有可能在某个技术上你直接上升一个台阶。

时间: 2024-11-08 21:29:32

牛掰的[MySQL]数据库介绍的相关文章

第一章--MySQL数据库介绍及搭建

1. MySQL数据库介绍 1.1 MySQL介绍 MySQL属于传统关系型数据库产品,它开放式的架构使得用户选择性很强,同时社区开发与维护人数众多.其功能稳定,性能卓越,且在遵守GPL协议的前提下,可以免费使用与修改,也为MySQL的推广与使用带来了更多的利好.在MySQL成长与发展过程中,支持的功能逐渐增多,性能也不断提高,对平台的支持也越来越多. MySQL是一种关系型数据库管理系统,关系型数据库的特点是将数据保存在不同的表中,再将这些表放入不同的数据库中,而不是将所有数据统一放在一个大仓

Mysql数据库介绍、安装和配置文件

Mysql数据库介绍.安装和配置文件 MySQL数据库介绍 mysql是开源关系型数据库,遵循GPL协议. mysql的特点是性能卓越且服务稳定,开源,无版本限制,成本低,单进程多线程,多用户,基于C/S(客户端/服务端)架构,安全可靠,插入式存储引擎. mysql的另个版本为MariaDB,MariaDB是单进程,多线程的,提供了诸多扩展和新特性,提供了较多测试组件并且同样开源. mysql系统结构 一.逻辑模块组成 MySQL 可以看成是二层架构. 第一层我们通常叫做SQL Layer,在M

SQL——Mysql数据库介绍

声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权:凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记. MySQL: 介绍: 什么是数据库?就是一个软件,能帮我们把数据进行存储和提取,就好比java里存变量数组等东西的时候是存在内存中的,内存速度快,但是不能长时间存储,而硬盘的好处就是存储时间长,但是速度特别慢 优势:能快速找到我们想要的数据,能进行存储的优化 想要长时间保存数据只能是把数据存储到硬盘上,当我们下次启动的时候,在把数据读取上来 数据库的主要目的

Mysql DBA高级运维学习笔记-mysql数据库介绍

本文为我自己学习老男孩MySQL DBA 高级运维课程的学习笔记,内容均出自老男孩MySQL DBA 高级运维课程,老男孩老师讲的很好,非常感谢老男孩老师.我是一个菜鸟刚接触运维,如果我写的文章有不对的地方:请各位行业的精英.老师多多批评指点,呵呵~ 1.1 数据库介绍 1.1.1 什么是数据库?简单的说,数据库就是一个存放数据的仓库,这个仓库是按照一定的数据结构(数据结构是指数据的组织形式或数据之间的联系)来组织.存储的,我们可以通过数据库提供的多种方法来管理数据库里的数据. 1.2 数据库的

MySQL数据库介绍

1.数据的存储形式 内存/文件/第三方服务器/数据库服务器 2.什么是数据库 数据库是按照一定的形式来组织,存储数据,目的是为了对数据操作——增删改查 (1)数据库发展历史 网状数据库->层次型数据库->关系型数据库->非关系型数据库 (2)关系型数据库逻辑结构 Server->Database->Table-> Row->Column 服务器 -> 数据库-> 数据表 ->行 -> 列 3.MySQL数据库 Oracle:  MySQL

mysql数据库介绍及应用

一.数据库定义 数据库系统DataBseSystem=数据库管理系统(DBMS,DateBaseManangementSystem)+数据库(DataBase)+管理员 DBS=DBMS+DB定义:对大量信息进行管理的高效解决方案,按照数据结构来组织.存储和管理数据的库 关系型数据库系统(对应的是非关系型数据库,nosql,如redis)建立在关系模型上的数据库系统, 关系模型:当将日常生活中的实体(学生),和实体的属性(学生的学号,姓名)保存到数据库中时,应该如何处理该实体结构1.数据结构可以

Mysql 数据库 介绍与安装

目录 一.数据库是什么? 二.为什么使用数据库 三.数据库分类 - 关系型数据库 二. 非关系型数据库 最大的区别: 四.MySQL 架构 类似于socket的客户端和服务端 五.mysql的安装: Windows下的安装: 六.初始mysql SQL 指令: 一.数据库是什么? ? 字面意思:存数据的仓库 二.为什么使用数据库 ? 之前使用的是Excel管理数据 ? xcel的缺点: ? 管理不了大量的数据 (10W量级的数据) ? 并发操作同一个数据表格 ? 数据支持高级的操作, 比如:分组

1Python全栈之路系列之MySQL数据库基本操作

Python全栈之路系列之MySQL数据库基本操作 MySQL数据库介绍 MySQL是一种快速易用的关系型数据库管理系统(RDBMS),很多企业都在使用它来构建自己的数据库. MySQL由一家瑞典公司MySQL AB开发.运营并予以支持.它之所以非常流行,原因在于具备以下这些优点: 基于开源许可发布,无需付费即可使用. 自身的功能非常强大,足以匹敌绝大多数功能强大但却价格昂贵的数据库软件. 使用业内所熟悉的标准SQL数据库语言. 可运行于多个操作系统,支持多种语言,包括 PHP.PERL.C.C

MySQL数据库初体验(含MySQL数据库5.7.17手工编译安装)

MySQL数据库初体验 Ram:随机性访问存储器,断电丢失数据 内存Rom:只读访问存储器,不会丢失数据 管理存储的数据,数据的增删改查,数据的迁移,保证数据的私密性 1.数据库的基本概念2.数据库的发展3.主流的数据库介绍4.编译安装mysql5.操作mysql 数据库的基本概念 数据: 1.描述事物的符号记录称为数据(Data)2.包括数字,文字.图形.图像.声音.档案记录等3.以"记录"形式按统一-的格式进行存储 表: 1.将不同的记录组织在一-起,就形成了"表&quo