精华内容
下载资源
问答
  • 数据:(《数据库系统概论(第五版)》Page 4 上的提炼后) 描述事物的符号记录 可数据化存入计算机 与语义密不可分 **理解:好像啥玩意都能当数据。。。。 eg:记录某一公司的所有数据,公司名称、公司地点...

    数据  

    第一数据

    数据:(《数据库系统概论(第五版)》Page 4 上的提炼后)

    1. 描述事物的符号记录
    2. 可数据化存入计算机
    3. 与语义密不可分

    **理解:好像啥玩意都能当数据。。。。

    eg:记录某一公司的所有数据,公司名称、公司地点(怎么表示这个地点无所谓,坐标或者某某路多少号都行)、公司人员(有多少人,这些人的姓名,年龄等等,你觉得算是公司该记录的东西),公司收入支出数据、公司创建时间、法人是谁。。。。。等等等等,这些都算数据

    数据库

    第二数据库

    度娘的解释

     

    同一本书的解释:

     数据库是长期存储在计算机内、有组织、可共享的大量数据集合,数据库中的数据按一定的数据模型、描述、存储、具有较小的亢余度(redundancy)、较高的数据独立性(data independency)和易扩展性(scalability),并可为各种用户共享

    ***的理解:

    数据库可以类比为粮仓,玉米堆一堆,大米堆一堆,黑米堆一堆;

    其中,你可以按照年份堆,也可以按照产地堆,也可以按照颜色堆...............等等

    具体怎么堆就是你怎么构造这个你要的数据库,怎么放你的数据

    数据库系统的特点

    (大概看看就好)

    1.数据结构化

    数据库系统实现整体数据的结构化,这是数据库的主要特征之一,也是数据库系统与文件系统的本质区别

    2.数据的共享性高、冗余度低且易扩充

    数据共享可以大大减少数据冗余,节约存储空间。数据共享还能够避免数据之间的不相容性与不一致性

    3.数据独立性高

    数据独立性包含物理独立性和逻辑独立性

    物理独立性:是指用户的应用程序与数据库中数据的物理存储是相互独立的

    逻辑独立性:是指用户的应用程序与数据库的逻辑结构是相互独立的

    4.数据由数据库管理系统统一管理和控制

    (1)数据的安全性(security)保护

    数据的安全性是指保护数据以防不合法使用造成的数据泄露和破坏

    (2)数据的完整性(integrity)检查

    数据的完整性指数据的正确性、有效性和相容性

    (3)并发(concurrency)控制

    (4)数据库恢复(recovery)

     

    数据库管理系统

    首先,它是个软件,而且还是和操作系统都是基础软件

    包括以下几个方面:(部分摘自《数据库系统概论》)

    1. 数据定义功能

            数据库管理系统提供数据定义语言(Data Definition Language,简称DDL),用户通过它可以方便地对数据库中数据对象的组成与结构定义

      (说白了就是,它提供工具比如笔,你自己随便画)

    2. 数据组织、储存和管理

            数据库管理系统要分类组织、存储和管理各种数据,包括数据字典*用户数据数据的存取路径*等。要确定以何种文件结构和存取方式在存储级上组织这些数据,如何实现数据之间的联系。数据组织和存储的基本目标是提高存储空间率和方便存取,提供多种存取方法(eg:索引查找、hash查找、顺序查找等)来提高存取效率。                                    数据字典: (度娘解释)

    3. 数据操纵
    4. 数据库的建立和维护功能
    5. 数据库的事务管理和运行管理
    6. 其他功能

    小白打卡!

    2019-4-25

    展开全文
  • mysql 数据库快速入门 数据库的发展

    千次阅读 2019-01-03 09:58:04
    数据库技术是通过研究数据库的结构、存储、设计、管理以及应用的基本理论和实现方法,并利用这些理论来实现对数据库中的数据进行处理、分析和理解的技术。即:数据库技术是研究、管理和应用数据库的一门软件科学。 ...

    数据库概述

    数据库技术是通过研究数据库的结构、存储、设计、管理以及应用的基本理论和实现方法,并利用这些理论来实现对数据库中的数据进行处理、分析和理解的技术。即:数据库技术是研究、管理和应用数据库的一门软件科学

    数据库的目的

    其主要目的是有效地管理和存取大量的数据资源.数据库技术主要研究如何存储,使用和管理数据

    数据库基本概念

    • 主要包括:信息,数据,数据处理,数据库,数据库管理系统以及数据库系统等。
    • 数据库技术研究和解决了计算机信息处理过程中大量数据有效地组织和存储的问题,在数据库系统中减少数据存储冗余、实现数据共享、保障数据安全以及高效地检索数据和处理数据。数据库技术的根本目标是要解决数据的共享问题。

    数据库的发展

    数据管理技术是对数据进行分类,组织,编码,输入,存储,检索,维护和输出的技术.数据管理技术的发展大致经过了以下三个阶段:

    1. 人工管理阶段
    2. 文件系统阶段
    3. 数据库系统阶段

    数据库的数据模型

    数据模型的概念及要素数据模型是现实世界在数据库中的抽象,也是数据库系统的核心和基础.数据模型通常包括3个要素。

    1. 数据结构 :数据结构主要用于描述数据的静态特征,包括数据的结构和数据间的联系。
    2. 数据操作 : 数据操作是指在数据库中能够进行的查询,修改,删除现有数据或增加新数据的各种数据访问方式,并且包括数据访问相关的规则。
    3. 数据完整性约束 : 数据完整性约束由一组完整性规则组成。

    常见数据库数据模型

    1. 层次模型(Hierarchical Model).层次模型使用树形结构来表示数据以及数据之间的联系。
    2. 网状模型(Network Model).网状模型使用网状结构表示数据以及数据之间的联系。
    3. 关系模型(Relational Model).关系模型是一种理论最成熟,应用最广泛的数据模型.在关系模型中,数据存放在一种称为二维表的逻辑单元中,整个数据库又是由若干个相互关联的二维表组成的

    补充:

    比较成熟的软件产品能够很好地支持关系型数据模型,这些产品也因此称为关系型数据库管理系统(Relational DataBase Management System,RDBMS)

    • 微软公司的Microsoft Access 、MS-SQL Server
    • Sybase公司的Sybase
    • 甲骨文公司的Oracle
    • IBM公司的DB2

    数据库的发展历史

    数据库的发展和数据模型的发展不可分开,以数据模型为径,数据库发展可以这么说:

    1. 第一代 : 网状和层次数据库系统。
    2. 第二代 : 关系数据库系统。
    3. 第三代 : 以面向对象数据模型为主要特征的数据库系统。

    基本名词

    • 数据(Data)是用于描述现实世界中各种具体事物或抽象概念的,可存储并具有明确意义的符号,包括数字,文字,图形和声音等。
    • 数据处理是指对各种形式的数据进行收集,存储,加工和传播的一系列活动的总和.其目的之一是从大量的,原始的数据中抽取。
    • 数据库(DataBase,DB)是存储在计算机辅助存储器中的,有组织的,可共享的相关数据集合。
    • 数据库管理系统(DataBase Management System,DBMS)是对数据库进行管理的系统软件,它的职能是有效地组织和存储数据,获取和管理数据,接受和完成用户提出的各种数据访问请求.能够支持关系型数据模型的数据库管理系统,称为关系型数据库管理系统(Relational DataBase Management System,RDBMS)。
    • 结构化查询语言(Structured Query Language,SQL)来实现的,SQL是关系数据库中的一种标准语言,在不同的RDBMS产品中,SQL中的基本语法是相同的.此外,DDL,DML,DQL和DCL也都属于SQL

    RDBMS的基本功能

    • 数据定义功能:RDBMS提供了数据定义语言(Data Definition Language,DDL),利用DDL可以方便地对数据库中的相关内容进行定义.例如,对数据库,表,字段和索引进行定义,创建和修改。
    • 数据操纵功能:RDBMS提供了数据操纵语言(Data Manipulation Language,DML),利用DML可以实如今数据库中插入,修改和删除数据等基本操作。
    • 数据查询功能:RDBMS提供了数据查询语言(Data Query Language,DQL),利用DQL可以实现对数据库的数据查询操作。
    • 数据控制功能:RDBMS提供了数据控制语言(Data Control Language,DCL),利用DCL可以完成数据库运行控制功能,包括并发控制(即处理多个用户同时使用某些数据时可能产生的问题),安全性检查,完整性约束条件的检查和执行,数据库的内部维护(例如索引的自动维护)等。
    展开全文
  • 数据库入门理论知识介绍以及编译安装MySql  作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任。       前言: 1.目前90%以上的公司面临的运维的瓶颈都在后端 最常见的2大瓶颈就是:  1>....

                                          数据库入门理论知识介绍以及编译安装MySql

                                                    作者:尹正杰

    版权声明:原创作品,谢绝转载!否则将追究法律责任。

     

     

     

    前言:
    1.目前90%以上的公司面临的运维的瓶颈都在后端
    最常见的2大瓶颈就是:
      1>.数据库(极难扩展);
      2>.存储;
    所以说做互联网的运维工程师要是把以上两点问题解决就可以轻松的搞定整个架构
     
    2.什么是数据库:
      查百度上有长篇大论了一下数据库特点,我们可以简单的理解:
      数据库就是一个存放数据的仓库,这个仓库按照一定的数据结构(数据结构是指数据的组织形式或数据之间的联系)来组织,存储的,我们可以通过数据库提供的多种方法来管理数据库里的数据
     
    一.数据库的种类:
    1.关系型数据库:
    1>.关系型数据库的由来
      虽然网状数据库和层次数据库已经很好的解决了数据的集中和共享的问题,但是在数据独立性和抽象级别上仍有很大缺陷。用户在对这两种数据库进行存取时,仍然需要明确数据的结构,指出存取路径,而关系数据库就可以较好的解决这些问题。
    2>.关系型数据库介绍
      关系型数据库模型是把复杂的数据结构归结为简单的二元关系(即二维表格形式)。例如在新员工入职的时候公司都会给你一个编号,这个编号和该员工是一一对应的,这就是一个二元关系,在关系数据库中,对数据的操作几乎全部建立在一个或多个关系表格上,通过对这些关联的表格分类,合并,连接或者选取等运算实现数据的管理(结构化查询语言,sql语句来对数据进行处理)。
    关系型数据库诞生至今已经已有40多年了(数据库诞生已经60多年了),从理论产生发展到现实产品,例如:大家最常见的myql和oracle数据库,oracle在数据库领域里上升到了霸主地位,形成每年高达数百亿美元的庞大产业市场,而mysql也会不容忽视的数据库,以至于被oracle重金收购了。(2008年mysql【10亿美金】被sun收购了,之后sun公司又被oracle收购了)
     
    3>.关系型数据库表格之间的关系举例:
    员工信息表:
    员工ID   姓名   年龄   所在部门
    520     尹正杰   25    内部运维
     
    2.非关系型数据库(NOSQL):
      非关系型数据库也被称为NOSQL数据库,请读者注意,nosql的本意是“not only sql”,指的是非关系型数据库,而不是no sql的意思,因此。Nosql数据库产生并不是要彻底的否定关系型数据库,而是作为传统关系型数据库的一个有效的补充,NoSql传统数据库在特定的场景下可以发挥出难以想象的高效率和高性能。
    随着互联网web2.0(以用户为主体,上传下载,发布帖子,博客等动态应用不较多。)网站的兴起,传统的关系型数据库在应付web2.0网站,特别是对于规模日益扩大的海量数据,超大规模的高并发的微博,微信,SNS类型的wen2.0纯动态网站已经显得力不从心,暴露了很难克服的问题,例如:传统的关系型数据库IO瓶颈,性能瓶颈都难以有效突破,于是开始了大批针对特定场景,以高性能和使用便利为目的的功能特异化数据库产品,Nosql类的数据库就是这样的情景中诞生并得到非常迅速的发展。
      Nosql是非关系型数据库的广义定义。它打破了长久以来关系型数据库与ACID理论大一统局面。Nosql数据库存储不需要固定的表结构,通常也不存在连接操作,在大数据存取上具备关系型数据库无法比拟的性能优势,还术语(Nosql)在2009年初得到了广泛的认同。
      当今应用体系结构需要数据存储在横向伸缩性上有能够满足需求。而Nosql存储就是为了实现这个需求而诞生的。googel的bigtable与amazon(亚马逊)的dynamo是非常成功的商业nosql实现。一些开源的nosql体系,如facebook的Cassandra,apache的HBase,也得到了广泛认同,Redis,mongodb也逐渐的越来越受到各大类中小型公司的欢迎和追捧。
     
    二.非关系型数据库的种类:
     
    1>.键值(key—value)存储数据库
      键值数据库就类似传统中语言中使用的哈希表。开源通过key来添加,查询,或者删除数据,因为Key使用主键访问。所以会获得很高的性能及扩展性。
    键值数据库主要是使用一个哈希表,这个表中有定义的一个而定的键和一个指针指向特定的数据,key/value模型对于iT系统来说的优势在于简单,易部署,高并发。
    典型产品:Memcached(支持内存); Redis(持久化的数据库,支持内存数据,也支持磁盘的数据); MemchedDB; Berkeley DB
     
    2>.列存储(column-oriented)数据库
      列存储数据库将数据库存储的列族(column family)中,一个列族存储经常被一起查询的相关数据,举个例子,比如我们又一个公司员工信息的类,我们通常会一起查他们的姓名和年龄而不是工资,这种情况下,姓名和年龄就是会被存放人一个列族中。而薪资则在另一个列族中
    这部分数据库通常是用来应付分布式存储的海量数据。键值仍然存在,但是他们的特点是指向了多个列。这些列是由列家族带来的安排的、
      典型产品:Cassandra【360公司用】; HBase【新浪】(月薪低于1.5万的运维就没有必要玩他了),一般的中小型也用不了
     
    3>.面向文档(Document-Oriented)数据库
      文档型数据库的灵感来自于lotus notes办公软件的。而且它同第一种键值存储相类似。该类型的数据库模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON,文档型数据库可以看作是键值数据库的升级版本,允许之间嵌套键值。而且文档型数据库逼键值数据库的查询效率更好。
      典型产品:MongoDB(建议了解下),CouchDB
     
    4>.图像(Graph)数据库
      图形数据库允许我们将数据库以图的方式存储。实体被称作为顶点,而实体之间的关系则会被作为边。比如我们又三个实体, steve,jobs,apple和next。则会有两个"Founded by"的边将apple和next连接到steve jobs。
      典型产品:Neo4J,infoGrid
     
    三.常用关系型数据库产品介绍
    1.Oracle数据库
      Oracle前身叫SDL,由Larry Ellison 和另外两个编程人员在1977创办,他们开发了自己的拳头产品,在市场上大量销售,1979年,Oracle公司引入了第一个商用SQL关系数据库管理系统。Oracle公司是最早开发关系数据库的厂商之一,其产品支持最广泛的操作系统平台。目前Oracle关系数据库产品的市场占有数一数二。
    Oracle公司是目前全球最大的数据库软件公司,也是近年业务增长极为迅速的软件提供商与服务商。
    2007年7月12日,甲骨文公司在美国纽约宣布推出数据库Oracle 11g,这是Oracle数据库的最新版本。Oracle介绍说,Oracle 11g有400多项功能,经过了1500万个小时的测试,开发工作量达到了3.6万人/月。Oracle 11g在安全,XML DB,备份等方面得到了很大提升。
    主要应用范围:传统大企业,大公司,政府,金融,证券等等。(互联网公司一般不用,如果入职互联网公司的话建议不要学习它,而且会这个数据库的人员几乎已经饱和。)
    版本升级:Oracle8i,Oracle9i,Oracle10g,Oracle11g
    2.MySQL数据库
      MySQL数据库是一个中小型关系型数据库管理系统,软件开发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收购,后Sun公司又被oracle公司收购。目前MySQL被广泛应用在Internet上的大中小行网站中。由于其体积小,速度快。总体拥有成本低。尤其是开源代码这一特点,许多大中小型网站为了降低网站总体拥有成本而选择了MySQL。
    MySQL数据库主要应用范围:互联网领域,大中小型网站,游戏公司,电商平台等等。
    3.MariaDB数据库
      MariaDB数据库管理系统是MySQL数据库的一个分支,主要由开源社区维护,采用GPL授权许可。开发这个MariaDB数据库分支的可能原因之一是:甲骨文公司被收购了MySQL后,有将MySQL闭源的潜在风险,因此MySQL开源社区采用分支的方式来避开这个风险。
      开发MariaDB数据库的目的是完全兼容MySQL数据库,包括API和命令行,使之能轻松成为MySQL的 替代品。在存储引擎方面,使用XtraDB来代替MySQL的innoDB。MariaDB由MySQL的创始人Michael Widenius主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入了Oracle的手中。MariaDB数据库的名称来自MySQL的创始人Michael Widenius的女儿Maria的名字。
      MariaDB基于事务的Maria存储引擎,替换了MySQL的MyISAM存储引擎,它使用了Percona的XtraDB(InnoDB的变体)。这个版本还包括了PrimeBase XT(PBXT)和Federated存储引擎。
      MariaDB数据库直到5.5版本,均依照MySQL的版本发行。因此,使用MariaDB5.5的人会从MySQL5.5中了解到MariaDB的所有功能。
     
    4.SQL Server数据库
      Microsoft SQL Server 是微软公司开发的大型关系型数据库系统。SQL Server的功能比较全面,效率高。可以作为中型企业或单位的数据库平台。SQL Server可以与Windows操作系统紧密集成,不论是应用程序开发速度还是系统事物处理运行速度,都能得到较大的提示。对于在Windows平台上开发各种企业级信息管理系统来说,不论是C/S(客户接/服务器)架构还是B/S(浏览器/服务器)架构, SQL Server都是一个很好的选择。SQL Server的缺点是只能在Windows系统下运行。
      1987年。微软和IBM合作开发完成OS/2,IBM在其销售的OS/2 ExtendedEdition 系统中绑定了 OS、2 Database Manager,而微软产品线中缺少数据库产品,为此,微软将项目投向Sybase,同Sybase签订了合作协议,使用Sybase的技术开发基于OS/2平台的关系型数据库。1989年,微软发布了SQL Server1.0版。Microsoft在与Sybase分道扬镳后,随后在其6.05与7.0版本中重写了核心数据库系统,如今SQL Server 2008已经到来。
    主要应用范围:部分企业电商(央视购物),使用weindows服务器平台的企业。
      windows开发平台:".net","c#","Sql Server“
      web服务器:“IOS”
      linux平台:“apache”,“nginx”,“php”,“java”,”MySQL“,”Oracle“
    5.Access数据库
      美国Microsoft公司与1994年推出的微机数据库管理系统。它具有界面友好,易学易用,开发简单,接口灵活等特点。是典型的新一代桌面关系型数据库管理系统。它结合了Microsoft Jet Database Engine 和图形用户界面两项特点,是Microsoft Office的成员之一。
      Access能够存取Access/Jet,Microsoft SQL Server,Oracle,或者任何ODBC兼容数据库的资料。Access界面友好而且易学易用,作为Office套件的一部分,可以与Office集成,实现无缝连接Access提供了表(Tables),查询(Query),窗体(From),报表(Report),宏(Macro),模块(Module)等用来建立数据库系统的对象。提供了多种想到,生成器,模板,把数据存储,数据查询,界面设计,报表生成等操作规范化。
    Access是入门小型左面数据库,性能安全性都很一般,可供个人管理小型网站之用。Access部署数据库语言,只是一个数据库程序。目前最新版本是Office2007.其主要特点如下:
      1>.完善的管理各种数据库对象,具有强大的数据组织,用户管理,安全检查等功能。
      2>.强大的数据处理功能,在一个工作组级别的网络环境中,使用Access开发的多用户数据库管理系统具有传统的XBASE(DBASE,FoxBASE的统称)数据库系统无法实现的客户服务器(Client/Server)结构和相应的数据库管理安全机制,Access具备了许多先进的大型数据库管理系统所具备的特征,如事务处理/出错回滚能力等。
      3>.可以方便的生成各种数据对象,利用存储的数据建议窗体和报表,可视性好。
      4>.作为Office套件的一部分,可以与Office集成,实现无缝连接。
      5>.能够利用Web检索和发布数据,实现与Intetnet的连接,Access主要适用于中小型应用系统,或作为客户机、服务器系统的客户端数据库。
    早期应用领域:小型程序系统asp+access系统,留言板,校友录等等。
    6.其他不常用关系型数据库
      DB2,PostgreSQL,Informix,Sybase等。这些关系型数据库逐步的淡出了普通运维的实现,特别是互联网公司几乎见不到,因此我们这里就不多介绍了。
     
    四.非关系型数据库产品介绍。
    1.Memcached(key-value)
      Memcached是一个开源的,高性能的,具有分布式内存对象的缓存系统。通过它可以减轻数据库负载,加速动态的web应用,最初版本由LiveJornal的Brad Fitzpatrick在2003年开发完成。目前全球有非常多的用户都在使用它来构建自己的大负载网站或提高自己的高访问网站的响应速度。注意:Memcache是这个项目的名称,而Memchched是服务器端的主程序文件名。
    缓存一般用来保存一些经常被存取的对象或数据(例如:浏览器会把经常访问的网页缓存起来一样),通过缓存来存取对象或数据要比在磁盘上存取快很多,前者是内存,后者是磁盘,Memcached是一种纯内存缓存系统,把经常存取的对象或数据缓存存在memcached的内存中,这些被缓存的数据被程序通过API的方式被存取,memcached里面的数据就像一张巨大的HASH表,数据以key-value对的方式存在,Memcached通过缓存经常被存取的对象或数据,从而减轻频繁读取数据库的压力,提高网站的响应速度,构建出速度更快的可扩展的web应用。(官方网站:http://memcached.org/
    由于memcached为纯内存缓存软件,一旦重启所有数据都会丢失,因此,新浪网基于Memcached开发了一个开源项目Memcachedb。通过为Memcached增加Berkeley DB的持久化存储机制和异步主辅复制机制,使Memcached具备了事物恢复能力,持久化数据存储能力和分布式复制能力,Memcached非常适合需要超高性能读写速度,持久化保存的应用场景,但是最近几年逐渐被其他的持续化产品替代例如:redis。(所以如果你想要去新浪面试话,这个东西是你和面试官必须提到的东西哟~不然你可能进不去~哈哈~)
    2.redis(key-value)
      Memcached类似,redis也是一个key-value型存储系统。但redis支持的存储value类型想对更多,包括string(字符串),list(列表),set(集合)和zset(有序集合)等。这些数据类型都支持push/pop,add/remove及取交集,并集和差集更丰富的操作,而且这些操作都是原子性的。在此基础上。redis支持各种不同方式的排序。与memcached一样。为了保证效率,redis的数据都是缓存在内存中。区别会周期性的把更新的数据写入磁盘或者把修改操作写入追加记录文件,并且在此基础上实现了master-slave(主从)同步。
    Redis是一个高性能的key-value数据库。redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系型数据库起到很好的补充作用。它提供了Python.Ruby,Rrlang,PHP客户端,使用很方便.(官网:https://redis.io/documentation
    redis特点:
      1>.支持内存缓存,这个功能相当于memched。
      2>.支持持久化,这个功能相当于memcachedb,ttserver。
      3>.数据类型更丰富。比其他key-value库功能更强。
      4>.支持集群,分布式。
      5>.支持队列等特殊功能。
    应用:缓存从存取memcached更改存取redis.
    3.MongoDB(Document-oriented)
      MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最想关系数据库的。他支持的数据结构非常松散,类似json和bjson格式,因此可以存储比较复杂的数据类型,Mongodb最大的特点是他支持的查询语言非常强大,其语法有类似于面向对象的查询语言,几乎可以实现类似关系数据库单标查询的绝大部分功能,而且还支持对数据建立索引。它的特点是高性能,易部署,易使用,存储数据非常方便。
    主要功能特性:
    1>.面向集合存储,易存储对象类型的数据;
        “面向集合”(Collenction-Orented),意思是数据被分组存储在数据集中,被称为一个集合(Collenction)。每个集合在数据库中都有一个唯一的标识名,并且可以包含无限数目的文档。集合的概念类似关系型数据库(RDBMS)里的表(table),不同的是它不需要定义任何模式(schema),
    2>.模式自由;
        模式自由(schema-free),意味着对于存储在mogodb数据库中的文件,我们不需要知道他的任何结构定义。如果需要,你完全可以把不同结构的文件存储在同一个数据库里。
    3>.支持动态查询;
    4>.支持完全索引,包含内部对象
    5>.支持查询;
    6>.支持复制和故障恢复;
    7>.使用高效的二进制数据存储,包括大型对象(如视频等);
    8>.自动处理碎片,以支持云计算层次的扩展性;
    9>.支持Ruby,Python,Jave,C++,Php等多种语言;
    10>.文件存储格式为BSON(一种JSON的扩展);
        BSON(Binary Serialized document Format)存储形式是指:存储在集合中的文档,被存储为键-值对的形式。键用于唯一表示一个文档,为字符串类型,而值则可以是各种复杂的文档类型。
    11>可以通过网络访问
        MongoDB服务端可运行在Linux,Windows或OS X平台,支持32位和64位应用,默认端口为27017.推荐运行在64位平台。
        MogoDB把数据存储在文件中(默认路径为:/data/db),为提高效率使用内存映射文件进行管理。(官网:https://docs.mongodb.com/manual/contents/)
     
    4.Cassandra(column-oriented)
        Apache Cassandra是一套开源分布式Key-Value存储系统。它最初由Facebook开发,用于存储特别大的数据,Facebook,360目前在使用此系统。
    主要特性:
    1>.分布式;
    2>.基于colum的结构化;
    3>.高伸展性;
      Cassandra的主要忒单就是他不是一个数据库,而是由一堆数据库节点共同构成的一个分布式网络服务,对Cassandra的一个写操作,会被复制到其他节点上去,对Cassandra的读操作,也会被路由到某个节点上面去读取,对于一个Cassandra集群来说,扩展性嫩是比较简单的事情。只管在集群里面添加节点就可以了。
      Cassandra是一个混合型的非关系的数据库,类似于google的BigTable。其主要功能比Dynomite(分布式的Key-Value存储系统)更丰富,Cassandra最初由Facebook开发,后转变成了开源项目,它是一个网社交与计算方面理想的数据库,以Amazon专有的完全分布式的Dynamo为基础,结合了Google BigTable基于列族(Column Family)的数据模型。P2P去中心话的存储。很多方面都可以称职为Dynamo2.0(官方网站:http://www.cassandra.org/
      其他不常用的非关系型数据库:HBase,MemcacheDB,Berkeley DB,Tokyo Cabinet\Tokyo Tyrant(ttserver)
      
     
    五.数据库相关知识
    1.数据库发展历史大事记
    1951:Univac系统使用磁带和穿孔卡片作为数据存储。
    1956:IBM公司在其Model 305 RAMAC中第一次引入了磁盘驱动器
    1961:通用电气(GE)公司的Charles Bachman开发了第一个数据库管理系统——IDS
    1969: E.F. Codd发明了关系数据库。
    1973:由John J.Cullinane领导Cullinane公司开发了 IDMS——一个针对IBM主机的基于网络模型的数据库。
    1976:Honeywell公司推出了Multics Relational Data Store——第一个商用关系数据库产品。
    1979:Oracle公司引入了第一个商用SQL关系数据库管理系统
    1983:IBM推出了DB2数据库产品。
    1985:为Procter & Gamble系统设计的第一个商务智能系统产生。
    1991:W.H.“Bill” Inmon发表了”构建数据仓库”。
    2.数据库产品排名
    DB-Engines 发布了 2016 年 12 月份的数据库排名。
    本月排名对比于11月份,前十名的排位都没有发生变化,但对比于去年,除了稳坐三甲宝座的Oracle 、MySQL 和 Microsoft SQL Server ,以及排在第六名的DB2外,其他的数据库的排名都发生了变化。其中 PostgreSQL 超越 MongoDB 成为第四,Cassandra 超越 Microsoft Access 成为第七,Redis  超越 SQLite 成为第九。而第11-20名的数据库排名几乎都发生了变化。
    具体情况请看前 20 名排名情况:
    六.MySQL数据库产品介绍
    1.MySQL数据库介绍
      MySQL 是瑞典的MySQL AB公司开发的一个可用于各种流行操作系统平台的关系数据库系统,它具有客户机/服务器体系结构的分布式数据库管理系统。MySQL 完全适用于网络,用其建造的数据库可在因特网上的任何地方访问,因此,可以和网络上任何地方的任何人共享数据库。MySQL具有功能强、使用简单、管理方 便、运行速度快、可靠性高、安全保密性强等优点。MySQL用C和C++编写,它可以工作在许多平台(Unix,Linux,Windows)上,提供了 针对不同编程语言(C,C++,JAVA等)的API函数;使用核心线程实现多线程,能够很好的支持多CPU;提供事务和非事务的存储机制;快速的基于线 程的内存分配系统;MySQL采用双重许可,用户可以在GNU许可条款下以免费软件或开放源码软件的方式使用MySQL软件,也可以从MySQL AB公司获得正式的商业许可。
    除了以上特点,MySQL 还有一个最大的特点,那就是在诸如 UNIX 这样的操作系统上,它是免费的,可从因特网上下载其服务器和客户机软件。并且还能从因特网上得到许多与其相配的第三方软件或工具。而在 Windows 系统上,其客户机程序和客户机程序库是免费的。
    2.MariaDB数据库介绍
      MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB(英语:XtraDB)来代替MySQL的InnoDB。 MariaDB由MySQL的创始人Michael Widenius(英语:Michael Widenius)主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。MariaDB名称来自Michael Widenius的女儿Maria的名字。
    MariaDB基于事务的Maria存储引擎,替换了MySQLMyISAM存储引擎,它使用了Percona的 XtraDB,InnoDB的变体,分支的开发者希望提供访问即将到来的MySQL 5.4 InnoDB性能。这个版本还包括了 PrimeBase XT (PBXT) 和 FederatedX存储引擎
    3.为什么选用 MySQL
      如果您正在寻找一种免费的 或不昂贵的数据库管理系统,可以有几个选择,如,MySQL、mSQL、Postgres(一种免费的但不支持来自商业供应商引擎的系统)等。在将 MySQL 与其他数据库系统进行比较时,所要考虑的最重要的因素是性能、支持、特性(与 SQL 的一致性、扩展等等)、认证条件和约束条件、价格等。相比之下,MySQL 具有许多吸引人之处:
    1>.速度。MySQL 运行速度很快。开发者声称 MySQL 可能是目前能得到的最快的数据库。可访问 http://www.mysql.com/benchmark.html (MySQL Web 站点上的性能比较页),调查一下这个性能。
    2>.容易使用。MySQL 是一个高性能且相对简单的数据库系统,与一些更大系统的设置和管理相比,其复杂程度较低。
    3>.价格。MySQL 对多数个人用户来说是免费的。
    4>.小巧。4.1.1的数据库发行版仅仅只有21M,安装完成也仅仅51M。
    5>.支持查询语言。MySQL 可以利用 SQL(结构化查询语言),SQL 是一种所有现代数据库系统都选用的语言。也可以利用支持 ODBC(开放式数据库连接)的应用程序,ODBC 是 Microsoft 开发的一种数据库通信协议。
    6>.性能。许多客户机可同时连接到服务器。MySQL数据库没有用户数的限制,多个客户机可同时使用同一个数据库。可利用几个输入查询并查看结果的界面来交互 式地访问 MySQL。这些界面为:命令行客户机程序、Web 浏览器或 X  Window System 客户机程序。此外,还有由各种语言(如C, C++, Eiffel, Java, Perl, PHP, Python, Ruby, and Tcl)编写的界面。因此,可以选择使用已编好的客户机程序或编写自己的客户机应用程序。
    7>.连接性和安全性。MySQL 是完全网络化的,其数据库可在因特网上的任何地方访问,因此,可以和任何地方的任何人共享数据库。而且 MySQL 还能进行访问控制,可以控制哪些人不能看到您的数据。
    8>. 可移植性。MySQL 可运行在各种版本的 UNIX 以及其他非 UNIX 的系统(如 Windows 和 OS/2)上。MySQL 可运行在从家用 PC 到高级的服务器上。
    9>.开放式的分发。MySQL 容易获得;只要使用 Web 浏览器即可。如果不能理解某样东西是如何起作用的,或者对某个算法感到好奇,可以将其源代码取来,对源代码进行分析。如果不喜欢某些东西,则可以更改它。
    4.MySQL社区办与MySQL企业版区别
    如果仅仅是从学习角度,直接使用社区版就可以了,两者没有本质区别。只有在需要官方的商业服务的时候才会看出很大区别。
    主要的区别有以下两点。
    1.企业版只包含稳定之后的功能,社区版包含所有Mysql的最新功能。 也就是说,社区版是企业版的测试版,但是,前者的功能要比后者多。
    2.官方的支持服务只针对企业版,用户在使用社区版时出现任何问题,Mysql官方概不负责。
    至于管理工具,Mysql官方提供的工具都是免费的,从官方网站都可以下载到,同样可以用在社区版的Mysql上。
     
    七.MysSQL数据库的四种发布版本
      alpha版:内部测试版。α是希腊字母的第一个,表示最早的版本,一般用户不要下载这个版本,这个版本包含很多BUG,功能也不全,主要是给开发人员和 测试人员测试和找BUG用的。
      beta版:公开测试版。β是希腊字母的第二个,顾名思义,这个版本比alpha版发布得晚一些,主要是给“部落”用户和忠实用户测试用的,该版本任然存 在很多BUG,但是相对alpha版要稳定一些。这个阶段版本的软件还会不断增加新功能。如果你是发烧友,可以下载这个版本。(阿里巴巴,去哪网这些公司敢用,因为他们公司内部有高手可以评估这个风险!)
      rc版:全写:Release Candidate(候选版本),该版本又较beta版更进一步了,该版本功能不再增加,和最终发布版功能一样。这个版本有点像最终发行版之前的一个类似 预览版,这个的发布就标明离最终发行版不远了。作为普通用户,如果你很急着用这个软件的话,也可以下载这个版本。
      GA版本:GA版是软件产品正式发布的版本,也称生产版本的产品。一般情况下。企业的生产环节都会选择GA版本的MySQL软件,用于真实的生产环境中。偶尔有个别大型企业会追求新功能驱动而牺牲稳定性使用其他版本,但这是个例。
     
    扩展小知识:
      很多软件在正式发布前都会发布一些预览版或者测试版,一般都叫“beta版”或者 “rc版”,特别是开源软件,甚至有“alpha版”,下面来解释一下各个版本的意思。
      alpha版:内部测试版。α是希腊字母的第一个,表示最早的版本,一般用户不要下载这个版本,这个版本包含很多BUG,功能也不全,主要是给开发人员和 测试人员测试和找BUG用的。
      beta版:公开测试版。β是希腊字母的第二个,顾名思义,这个版本比alpha版发布得晚一些,主要是给“部落”用户和忠实用户测试用的,该版本任然存 在很多BUG,但是相对alpha版要稳定一些。这个阶段版本的软件还会不断增加新功能。如果你是发烧友,可以下载这个版本。
      rc版:全写:Release Candidate(候选版本),该版本又较beta版更进一步了,该版本功能不再增加,和最终发布版功能一样。这个版本有点像最终发行版之前的一个类似 预览版,这个的发布就标明离最终发行版不远了。作为普通用户,如果你很急着用这个软件的话,也可以下载这个版本。
      stable版:稳定版。在开源软件中,都有stable版,这个就是开源软件的最终发行版,用户可以放心大胆的用了。
      另外,对于商业软件,还有一下版本:
      RTM版:全称为Release to Manufacture。工厂版。改版程序已经固定,就差工厂包装、光盘印图案等工作了。
      OEM版:厂商定制版。
      EVAL版:评估版。就是有30或者60天等使用期限的版本。
      RTL版:Retail.(零售版),这个版本就是真正发售的版本,有漂亮的包装、光盘、说明书等东西和高昂的价格。
     
    八.MySQL产品三条路线
    第一条-5.0.xx到5.1.xx产品线系列介绍 
      MySQL 5.1是当前稳定(产品质量)发布系列。只针对漏洞修复重新发布:没有增加会影响稳定性的新功能。 MySQL 5.1:Previous stable(production-quality)release MySQL 5.0是前一稳定(产品质量)发布系列。只针对严重漏洞修复和安全修复重新发布:没有增加会影响该系列的重要功能。 
      MySQL 5.0:Older stable release nearing the end of the product lifecycle
      即使是最正宗的,但也很少人用了,MySQL.5.1
    第二条-5.4.xx开始-到了5.7.xx产品线系列介绍 
      为了更好地整合MySQL AB公司社区和第三方公司开发的新存储引擎,以及吸收新的实现算法等,从而更好地支持SMP架构,提高性能而做了大量的代码重构,版本编号从5.4.xx开始,目前发展到了 5.6.x 
      MySQL 5.5:LatestGeneral Availability(Production)release 
      主流:互联网公司用MySQL.5.5
    第三条-6.0.xx到7.1.xx产品线系列介绍 
      为了更好地推广MySQL Cluster版本,以及提高MySQL Cluster的性能和稳定性,以及功能改进和增加,以及改动MySQL基础功能,使其对Cluster存储引擎提供更有效的支持与优化。版本号为6.0.xx开发。目前发展到7.1.xx 
     
    九.MySQL数据库软件命名介绍
    例如,像mysql-5.7.16.tar.gz 的版本号解释: 
      1>. 第1个数字(5)是主版本号,描述了文件格式。所有版本5发行都有相同文件格式 
      2>. 第2个数字(0)是发行级别。主版本号和发行级别组合到一起便构成了发型序列号。 
      3>. 第3个数字(56)是在此系列的版本号,随每个新分发递增,通常你需要已经选择的发行(release)的最新版本 
      4>. 后缀显示发行的稳定级别,通过一系列后缀显示如何改进稳定性,可能的后缀有:*alpha版.
     
    十.MySQL版本选择最终建议
    企业生产场景选择MySQL数据库建议: 
      1>. 稳定版:选择开源的社区版的稳定版GA版本 
      2>. 产品线:可以选择5.1或5.5 互联网公司主流5.5,其次是5.1和5.6 
      3>. 选择MySQL数据库GA版发布后6个月以上的GA版本。 (让别人先去帮你实验,等别人使用了半年左右发现稳定了再去使用,如果你不是数据库大牛的建议不要选择最新的!)
      4>.要选择前后几个月没有大的BUG修复的版本,而不是大量修复BUG的集中版本 (选择的时候还要看是否频繁的更新发布版本,如果每个月都更新的话说明是有问题的,建议这连续的版本都不要选择,都存在风险!)
      5>.最好向后较长时间没有更新发布的版本 
      6>.要考虑开发人员开发程序使用的版本是否兼容你选的版本 (因为是先有程序再有公司才会请运维的,他们开发的程序以及确定好了数据库的版本啦!)
      7>.作为内部开发人员开发测试数据库环境,跑大概3-6个月的事件 
      8>.优先企业非核心业务采用新版本的数据库GA版本软件 
      9>.向DBA高手请教,或者在及技术氛围好的群里和大家一起交流,使用真正的高手们用过的好用的GA版本产品
      10>.经过上述工序之后,若是没有重要的功能BUG或性能瓶颈,则可以开始考虑作为任何任务数据服务的后端数据库件。
     
    十一.MySQL数据库企业生产常用5种安装方法介绍
    1>.yum/rpm方式安装mysql
      yum/rpm方式安装mysql安装极其简单,只要执行 yum -y install mysql-server即可。
      yum/rpm安装方式安装MySQL应用场景:
      适合对数据库要求不太高的场合,例如并发不大,公司内部,企业内部的一些应用场景。
      大的门户网站公司他们把源码根据企业的需求制作出rpm,搭建yum仓库,yum -y install xxx
     
    2>.源码安装mysql
      此种方法适合所有的MySQL5.0.xx-5.1.xx产品系列,是最常规的编译方式。
     
    3>.采用cmake方式编译安装MySQL
    由于MySQL5.5-5.6.xx产品系列特殊性,所以编译方式也和早期的产品安装方式不同,采用cmake或gmake方式编译安装。即./cmake;make;make install,(提示:需要安装cmake软件),身材环境中的参数如下:
    tar zxf mysql-5.5.32.tar.gz
    cd mysql-5.5.32
    cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.5.32 \
    -DMYSQL_DATADIR=/application/mysql-5.5.32/data \
    -DMYSQL_UNIX_ADDR=/application/mysql-5.5.32/tmp/mysql.sock \
    -DDEFAULT_CHARSET=utf8 \
    -DDEFAULT_COLLATION=utf8_general_ci \
    -DEXTRA_CHARSETS=gbk,gb2312,utf8,ascii \
    -DENABLED_LOCAL_INFILE=ON \
    -DWITH_INNOBASE_STORAGE_ENGINE=1 \
    -DWITH_FEDERATED_STORAGE_ENGINE=1 \
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
    -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
    -DWITHOUT_PARTITION_STORAGE_ENGINE=1 \
    -DWITH_FAST_MUTEXES=1 \
    -DWITH_ZLIB=bundled \
    -DENABLED_LOCAL_INFILE=1 \
    -DWITH_READLINE=1 \
    -DWITH_EMBEDDED_SERVER=1 \
    -DWITH_DEBUG=0
    #-- Build files have been written to: /home/oldboy/tools/mysql-5.5.32
    提示,编译时可配置的选项很多,具体可参考结尾附录或官方文档:
    make
    #[100%] Built target my_safe_process
    make install
    ln -s /application/mysql-5.5.32/ /application/mysql
    如果上述操作未出现错误,则MySQL5.5.32软件cmake方式的安装就算成功了。
     
    4>.采用二进制方式免编译安装MySQL
      这种方法和yum /rpm 包安装方式类似,适合各类MySQL产品系列,不需要复杂的编译设置及编译时间的等待,直接解压下载的软件包,初始化即可完成MySQL的安装启动
     
    5>. 如何选择MySQL的安装方式
      yum/rpm方式安装MySQL适合于对数据库要求不太高的场合,例如开发不大,公司内部,企业内部的一些应用场景。
    二进制免安装比较简单方便,适合5.0-5.1和5.5-5.6系列,是很多DBA的选择,普通Linux运维人员多采用编译的方式,5.0-5.1系列就是常规编译方式,5.5-5.6系列就是cmake编译方式。
      推荐:MySQL5.5及以上的版本;安装方式机器数量少的话,使用cmake编译方式;数量多的话采用二进制免安装。

     

    十二.编译安装MySql

      1 CentOS 6.x下通过yum安装的MySQL是5.1版的,用户只需要通过一条命令就可以完成数据库的安装,但是在实际生产环节中,yum安装的版本有的时候回不适合我们当下的环境,这个适合就可以自定义安装,即是我特别喜欢源码安装,他可以指定安装路径,配置我们自己需要的参数等等。源码安装是运维必回的基本要素之一。接下来跟我一起来手把手安装一下MySql吧。
      2 
      3 一.操作环境;
      4 [root@yinzhengjie ~]# cat /etc/redhat-release 
      5 CentOS release 6.6 (Final)
      6 [root@yinzhengjie ~]# 
      7 [root@yinzhengjie ~]# uname -r
      8 2.6.32-504.el6.x86_64
      9 [root@yinzhengjie ~]# 
     10 
     11 二.检查服务器现有的数据库;
     12 刚刚给宿主机重装的操作系统,为了方便我只修改了部分参数,让虚拟机自动帮我生成了一台虚拟机,里面默认是安装的有MySQL版本的,如果您的服务器是手动安装的话建议不要勾选Mysql相关的包,因为便于做实验,不过您如果勾选了的话也没有太大关系。我们可以手动将其卸载。
     13 [root@yinzhengjie ~]# rpm -qa | grep mysql      #找到相应的软件包名
     14 mysql-libs-5.1.73-3.el6_5.x86_64
     15 [root@yinzhengjie ~]# 
     16 [root@yinzhengjie ~]# rpm -e --nodeps mysql-libs-5.1.73-3.el6_5.x86_64   #讲找到的包名强行卸载
     17 [root@yinzhengjie ~]# 
     18 [root@yinzhengjie ~]# rpm -qa | grep mysql           #检查是否成功卸载
     19 [root@yinzhengjie ~]# 
     20 
     21 三.安装MySQL
     22 1.安装编译代码需要的安装包;
     23 [root@yinzhengjie ~]# yum -y install make gcc-c++ cmake bison-devel  ncurses-devel
     24 [root@yinzhengjie ~]# echo $?   #查看上条命令是否正确执行结束。
     25 0
     26 [root@yinzhengjie ~]#
     27 
     28 2.下载MySQL安装包
     29 安装包我已经下载好了:链接:http://pan.baidu.com/s/1geG3nbX 密码:40ie
     30 [root@yinzhengjie ~]# mkdir -pv /home/yinzhengjie/tools
     31 [root@yinzhengjie ~]# cd /home/yinzhengjie/tools/
     32 [root@yinzhengjie tools]#
     33 [root@yinzhengjie tools]# yum -y install lrzsz       #用“rz”命令讲软件包上传至该目录
     34 
     35 3.解压安装包
     36 [root@yinzhengjie tools]# ll
     37 total 35164
     38 -rw-r--r--. 1 root root 36005278 Jul 11 07:37 mysql-5.6.14.tar.gz
     39 [root@yinzhengjie tools]#
     40 [root@yinzhengjie tools]# tar xf mysql-5.6.14.tar.gz -C /home/yinzhengjie/tools
     41 [root@yinzhengjie tools]# ll
     42 total 35168
     43 drwxr-xr-x. 33 7161 wheel     4096 Sep 10  2013 mysql-5.6.14
     44 -rw-r--r--.  1 root root  36005278 Jul 11 07:37 mysql-5.6.14.tar.gz
     45 [root@yinzhengjie tools]#
     46 
     47 4.cmake安装MySQL
     48 整个过程可能要花费10分钟左右,可以适当的把您的虚拟机配置调高一点,这样相对来说会比较节省时间。
     49 [root@yinzhengjie tools]# cd mysql-5.6.14
     50 [root@yinzhengjie mysql-5.6.14]# cmake \
     51 > -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
     52 > -DMYSQL_DATADIR=/usr/local/mysql/data \
     53 > -DSYSCONFDIR=/etc \
     54 > -DWITH_MYISAM_STORAGE_ENGINE=1 \
     55 > -DWITH_INNOBASE_STORAGE_ENGINE=1 \
     56 > -DWITH_MEMORY_STORAGE_ENGINE=1 \
     57 > -DWITH_READLINE=1 \
     58 > -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
     59 > -DMYSQL_TCP_PORT=3306 \
     60 > -DENABLED_LOCAL_INFILE=1 \
     61 > -DWITH_PARTITION_STORAGE_ENGINE=1 \
     62 > -DEXTRA_CHARSETS=all \
     63 > -DDEFAULT_CHARSET=utf8 \
     64 > -DDEFAULT_COLLATION=utf8_general_ci
     65 [root@yinzhengjie mysql-5.6.14]# echo $?
     66 0
     67 [root@yinzhengjie mysql-5.6.14]# make -j 4 && make install
     68 [  1%] Built target zlib
     69 [  1%] Built target INFO_SRC
     70 [  3%] Built target taocrypt
     71 [  4%] Built target yassl
     72 [  5%] [  6%] Built target edit
     73 Built target INFO_BIN
     74 [  6%] Built target gen_lex_hash
     75 [  6%] Built target regex
     76 [ 10%] Built target strings
     77 [ 11%] Built target vio
     78 [ 11%] Built target mysqlservices
     79 [ 11%] Built target my_safe_process
     80 [ 11%] Built target comp_sql
     81 [ 11%] Built target GenServerSource
     82 [root@yinzhengjie mysql-5.6.14]# echo $?
     83 0
     84 [root@yinzhengjie mysql-5.6.14]# 
     85 
     86 四.配置MySQL
     87 1.创建MySQL账户
     88 [root@yinzhengjie ~]# cat /etc/passwd | grep mysql
     89 [root@yinzhengjie ~]# cat /etc/group | grep mysql
     90 [root@yinzhengjie ~]# useradd mysql
     91 [root@yinzhengjie ~]# cat /etc/group | grep mysql
     92 mysql:x:501:
     93 [root@yinzhengjie ~]# cat /etc/passwd | grep mysql
     94 mysql:x:501:501::/home/mysql:/bin/bash
     95 [root@yinzhengjie ~]# 
     96 
     97 2.修改MySQL目录权限
     98 [root@yinzhengjie ~]# ll /usr/local/mysql/
     99 total 156
    100 drwxr-xr-x.  2 root root  4096 Jul 11 15:59 bin
    101 -rw-r--r--.  1 root root 17987 Sep 10  2013 COPYING
    102 drwxr-xr-x.  3 root root  4096 Jul 11 15:58 data
    103 drwxr-xr-x.  2 root root  4096 Jul 11 15:58 docs
    104 drwxr-xr-x.  3 root root  4096 Jul 11 15:58 include
    105 -rw-r--r--.  1 root root 88388 Sep 10  2013 INSTALL-BINARY
    106 drwxr-xr-x.  3 root root  4096 Jul 11 15:58 lib
    107 drwxr-xr-x.  4 root root  4096 Jul 11 15:59 man
    108 drwxr-xr-x. 10 root root  4096 Jul 11 15:59 mysql-test
    109 -rw-r--r--.  1 root root  2496 Sep 10  2013 README
    110 drwxr-xr-x.  2 root root  4096 Jul 11 15:59 scripts
    111 drwxr-xr-x. 28 root root  4096 Jul 11 15:59 share
    112 drwxr-xr-x.  4 root root  4096 Jul 11 15:59 sql-bench
    113 drwxr-xr-x.  3 root root  4096 Jul 11 15:59 support-files
    114 [root@yinzhengjie ~]# chown -R mysql:mysql /usr/local/mysql/
    115 [root@yinzhengjie ~]# ll /usr/local/mysql/
    116 total 156
    117 drwxr-xr-x.  2 mysql mysql  4096 Jul 11 15:59 bin
    118 -rw-r--r--.  1 mysql mysql 17987 Sep 10  2013 COPYING
    119 drwxr-xr-x.  3 mysql mysql  4096 Jul 11 15:58 data
    120 drwxr-xr-x.  2 mysql mysql  4096 Jul 11 15:58 docs
    121 drwxr-xr-x.  3 mysql mysql  4096 Jul 11 15:58 include
    122 -rw-r--r--.  1 mysql mysql 88388 Sep 10  2013 INSTALL-BINARY
    123 drwxr-xr-x.  3 mysql mysql  4096 Jul 11 15:58 lib
    124 drwxr-xr-x.  4 mysql mysql  4096 Jul 11 15:59 man
    125 drwxr-xr-x. 10 mysql mysql  4096 Jul 11 15:59 mysql-test
    126 -rw-r--r--.  1 mysql mysql  2496 Sep 10  2013 README
    127 drwxr-xr-x.  2 mysql mysql  4096 Jul 11 15:59 scripts
    128 drwxr-xr-x. 28 mysql mysql  4096 Jul 11 15:59 share
    129 drwxr-xr-x.  4 mysql mysql  4096 Jul 11 15:59 sql-bench
    130 drwxr-xr-x.  3 mysql mysql  4096 Jul 11 15:59 support-files
    131 [root@yinzhengjie ~]# 
    132 [root@yinzhengjie ~]# chmod -R 1777 /tmp/        #调整/tmp权限,否则初始化会出错。
    133 
    134 3.初始化配置
    135 [root@yinzhengjie ~]# cd /usr/local/mysql/
    136 [root@yinzhengjie mysql]# scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql    #指定数据库的安装目录和存放数据的目录。
    137 [root@yinzhengjie mysql]# echo $?
    138 0
    139 [root@yinzhengjie mysql]#
    140 
    141 4.启动MySQL
    142 [root@yinzhengjie mysql]# cp support-files/mysql.server /etc/init.d/mysql   #将启动脚本移动到系统环境变量下。
    143 [root@yinzhengjie mysql]# chmod +x /etc/init.d/mysql 
    144 [root@yinzhengjie mysql]# chkconfig mysql on     #让其开机自启
    145 [root@yinzhengjie mysql]# service mysql start    #启动MySQL服务
    146 Starting MySQL.. SUCCESS! 
    147 [root@yinzhengjie mysql]#
    148 [root@yinzhengjie mysql]# lsof -i :3306              #检查服务是否启动成功。
    149 COMMAND   PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
    150 mysqld  63150 mysql   10u  IPv6 165718      0t0  TCP *:mysql (LISTEN)
    151 [root@yinzhengjie mysql]# 
    152 
    153 5.配置环境变量
    154 [root@yinzhengjie ~]# echo "PATH=/usr/local/mysql/bin:$PATH" >> /etc/profile
    155 [root@yinzhengjie ~]# echo "export PATH" >> /etc/profile
    156 [root@yinzhengjie ~]# source /etc/profile
    157 
    158 6.初始化管理员密码以及远程管理
    159 [root@yinzhengjie ~]# mysql -uroot
    160 Welcome to the MySQL monitor.  Commands end with ; or \g.
    161 Your MySQL connection id is 1
    162 Server version: 5.6.14 Source distribution
    163 
    164 Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
    165 
    166 Oracle is a registered trademark of Oracle Corporation and/or its
    167 affiliates. Other names may be trademarks of their respective
    168 owners.
    169 
    170 Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    171 
    172 mysql>  SET PASSWORD = PASSWORD('yinzhengjie');
    173 Query OK, 0 rows affected (0.01 sec)
    174 
    175 mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.%' IDENTIFIED BY 'yinzhengjie' WITH GRANT OPTION;      #这个是授权root用户可以用192.168.0.0网段远程登录密码是“yinzhengjie”
    176 Query OK, 0 rows affected (0.00 sec)
    177 
    178 mysql> quit
    179 Bye
    180 [root@yinzhengjie ~]# 

     

    展开全文
  • 数据库入门

    2019-07-09 19:08:23
    理论 关系型数据库: 概念:一列数据表示实体的一个属性,属性在数据库也称为字段。一行数据表示一个实体 主键:用于表示两个实体不同的列 外键:表示两个表之间的关系的那一个列 主表:被引用的表; 从表:...

    理论

    关系型数据库:

    概念:一列数据表示实体的一个属性,属性在数据库也称为字段。一行数据表示一个实体
    在这里插入图片描述
    主键:用于表示两个实体不同的列
    外键:表示两个表之间的关系的那一个列
    主表:被引用的表;
    从表:引用别人的表
    在这里插入图片描述
    关系型数据库中的三种关系:
    1.一对一建表(主键对外键)
    2.一对多建表(外键建对方)
    3.多对多建表了(需要衍生出第三张表)
    判断关系:看两边并根据业务需求而定
    由四个部分:
    1.数据定义语言:DDL(用于定义数据库、定义数据表、定义视图与索引等)
    2.数据操作语言:DML(对数据进行增删改)
    3.数据库查询语言:DQL(查询数据)
    4.数据控制语言:DCL(对数据库进行设置权限);

    drop和delete的区别:
    drop用于删除数据库(表单),delete用于删除表单中的数据
    CHAR(n)和VARCHAR(n)的区别:
    CHAR是定长,VARCHAR是变长,定长无论多少个数都会以n数计算,变长是在n以内的数,定长比变长效率高但不节约内存

    代码操作

    示例代码(用于解说):

    CREATE TABLE t_stu (
    	s_id INT PRIMARY KEY auto_increment,
    	s_name VARCHAR (10) UNIQUE,
    	s_sex CHAR (2) DEFAULT '男',
    	s_age INT,
    	s_class_id INT 
    );
    insert into t_stu (s_id,s_name,s_sex,s_age,s_class_id) values(null,'刘基','男',20,1);
    insert into t_stu (s_id,s_name,s_sex,s_age,s_class_id) values(null,'刘伯','男',15,2);
    insert into t_stu (s_id,s_name,s_sex,s_age,s_class_id) values(null,'六三','女',22,3);
    insert into t_stu (s_id,s_name,s_sex,s_age,s_class_id) values(null,'长官','男',13,4);
    insert into t_stu (s_id,s_name,s_sex,s_age,s_class_id) values(null,'王博','女',13,5);
    insert into t_stu (s_id,s_name,s_sex,s_age,s_class_id) values(null,'力来','男',18,6);
    insert into t_stu (s_id,s_name,s_sex,s_age,s_class_id) values(null,'天伯','女',19,7);
    insert into t_stu (s_id,s_name,s_sex,s_age,s_class_id) values(null,'黄剑锋','男',16,8);
    insert into t_stu (s_id,s_name,s_sex,s_age,s_class_id) values(null,'建筑','女',17,9);
    insert into t_stu (s_id,s_name,s_sex,s_age,s_class_id) values(null,'指定','女',24,10);
    

    数据库、
    show datebases; 显示数据库
    create database name; 创建数据库
    drop database name; 删除数据库
    管理表、
    use name; 使用xxx数据库
    create table (列名 类型) ; 创建一个表
    show tables; 展示所有表
    drop table name; 删除xxx表
    alter table t_student add age int; 添加一个列

    		数据完整性
    

    一个列可以添加多个约束
    添加主键约束:
    1.表内在列后添加primary key关键字

    例:  create table t_test(
    		stuId int primary key
    );
    

    2.表外在最后加一个primary key(约束名);

    例:alter table t_test add primary key(stuId); 
    

    一个表只能包含一个主键约束并且此列必须是唯一不能为空的;
    在primary key后加上auto_increment关键字可以让主键值自动增长(默认从1开始,并且只能用在主键上)

    修改自动增长的初始值:
    使用:alter table name auto_increment=值;

    添加唯一约束(去重,唯一的):
    在列后添加一个unique关键字;

    主键约束和唯一约束的区别:
    主键约束不能为空,唯一约束可以为空。一张表只能有一个主键约束,一张表可以有多个唯一约束;

    设置非空约束:
    在列后添加一个not null关键字;

    设置默认约束:
    在列后添加一个default ‘值’;

    			引用完整性
    

    添加外键约束:
    constraint foreign key(外键名) referencse 引用表名(主键名)

    外键和外键约束的区别:
    外键是用来表示表与表之间的联系,是表中的一个列。外键约束是指在外键列上加一个约束,强制外键列引用数据是正确的;

    				DOL语句
    

    运算符:
    (1)and 和
    (2)or 或者
    (3)in 在某个集合内
    例:in(1,3,5) 表示1或3或5
    (4)not in 不在某个集合内

    通配符:一般需使用like
    (1)_ 表示任何一个字符

    例:select s_name from t_stu where s_name like '_伯';
    

    (2)% 表示包含0个或多个字符
    处理空值数据:
    判断某列的值是否为空: 使用 is null
    判断某列的值是否不为空: 使用 is not null

    1.插入值(设置值,添加列表值)
    使用insert语句

    格式:(推荐使用) insert into 表名 ( 列表列名… ) values ( 列表值 ); 注:列表名与列表值要一致
    可读性高,效率快一点

        例:insert into t_stu (s_id,s_name,s_sex,s_age,s_class_id) values(null,'刘基','男',20,1);
    

    2.inset into 表名 values ( 列表值); 注:列表值须与建表时的字段顺序一致

        例:insert into t_stu  values(null,'刘基','男',20,1);
    

    2.查询值
    表前缀(当多张表一起查询时,列名相同,用于区分): select 表名.列表名… from 表名;

    例:select t_stu.s_name from t_stu where s_name like '_伯';
    

    列别名和表别名:
    使用as关键字(注:as可省略加空格)

    格式:select 列名 as 新名字 from 表名;

    例:select s_name as'学生姓名' from t_stu where s_name like '_伯';
    


    格式:select 列名 from 表名 as 新名字;

    查询使用select语句
    格式:
    1.select 列表名… from 表名; ( 查询列表名中的(常用,效率高) ) select * form 表名 (查询所有)

    2.select distinct 列名 from 表名 (去重查询数据,注当查询多个列时是查询多个列加起来是否唯一)

    3.select 列表名… from 表名 limit 开始行数,返回几行数据 (限定行数的查询,注开始行数默认为0不可为负数但可不写);
    select 列表名… from 表名 limit (当前页数-1)*每页显示条数,每页显示条数(分页查询数据)
    select 列表名… from 表名 where 条件 (单条件选择查询)

    4.select 列表名… from 表名 order by 排序数据列名 asc/desc (单列排序查询 注:asc为升序(默认,可不写),desc为降序)
    select 列表名… from 表名 条件 order by 排序数据列名 asc/desc
    select 列表名… from 表名 order by 排序数据列名1 asc/desc , 排序数据列名2 asc/desc (多列排序查询,先按排序数据列名1进行排序若有相同的值时再按排序数据列名2进行排序)

    聚合函数
    定义:用于对数据进行统计和分析
    分类:
    1.count 统计
    格式:select count (计算规范) from 表名 (注:计算规范可选值:(1). * : 统计所有函数包含null的行数, (2). all 列名 :计数指定列的所有非空值的行数(默认,可不写all),(3).distinct 列名:计数指定列的所有唯一不重复非空值的行数)

    2.sum 记和
    格式:select sum (计算规范) from 表名
    3.avg 求平均值
    格式:select avg(计算规范) from 表名
    注:计算规范可选值: (1). all 列名 :计数指定列的所有非空值的行数(默认,可不写all),(2).distinct 列名:计数指定列的所有唯一不重复非空值的行数
    一般用:ROUND(AVG(IFNULL(score,0)),2) ,取平均值

    4.ifnull(参数1,参数2) 函数:用于判断空值,若参数1为空值则按参数2显示返回,若参数1不为空值则按参数1显示返回(注参数可写列名)

    5。round(数值,保留小数位数)函数:用于把数值舍入为指定小数位数

    6.max 获取最大值
    格式:select max(列名) from 表名

    7.min 获取最小值
    格式:select min(列名) from 表名

    数据分组
    

    投影要求:1.group by 后的列名可以投影

    2.必须是聚合函数
    使用group by语句:
    格式:select 列名 from 表名 group by 列名;(注前一个列名须与后一个一样或者为聚合函数,否则可能会数据错误)
    select 列名 聚合函数 from 表名 where 条件 group by 列名;
    select 列名1,列名2 from 表名 group by 列名1,列名2; (多列分组,将列一值相同并且列二值相同的分到同一组)

    having子句
    

    定义:用于对分组后的数据进行过滤
    格式:select 列名 from 表名 group by 列名 having 聚合条件;

    having和where的区别:
    二者都是过滤条件,
    where运行在分组前,因此不能执行任何聚合函数。
    having是运行在分组后,只能用做聚合函数的过滤。

    sql的执行顺序:

    执行FROM ----> WHERE条件过滤 ----> GROUP BY分组 ----> 执行SELECT投影列 ----> HAVING条件过滤 ----> 执行ORDER BY排序

    3.更改(修改)值
    使用update语句:
    格式: update 表名 set 列名 where 条件

    4.删除:
    使用delete语句
    格式: 1.delete form 表名 where 条件(注:此语句中会删除一行或多行)
    2.truncate table 表名(注:删除表中所有数据,一般用于测试)
    注:delete语句和truncate语句的区别:
    delete(会有记录日志)删除后可恢复,但效率低。删除数据后自动增长的值不会恢复到默认值
    truncate(不会记录日志)删除后不可恢复,但效率高且不能用于有外键约束引用的表,删除数据后自动增长的值会恢复到默认值

    5.备份数据
    格式: create table 赋值到的表名 select *from 原表名;(备份全部数据)
    create table 赋值到的表名 select *from 原表名 where 1=0(假条件);(只复制表结构,不复制数据)
    create table 赋值到的表名 select *from 原表名 where 条件;(按条件复制数据)
    create table 赋值到的表名 select 列名 原表名 ;(复制指定列数据)

    代码练习示例:

    一张表数据如下:

    在这里插入图片描述

    要求

    1.统计每个班的学员的数量
    2.统计每个班的总分
    3.统计每个班的平均分
    4.统计每个班的最高分
    5.统计每个班的最低分
    6.统计每个班学员的数量,总分,平均分,最高分,最低分
    8.统计班级ID为T01的学员的数量,总分,平均分,最高分,最低分
    9.查询平均分上85的班级有哪些?
    10.查询有女生的班级是哪些?

    实现代码:
    --创建表
    CREATE TABLE t_class (
    	name VARCHAR (20),
    	age INT,
    	gender CHAR (2),
    	stuNum VARCHAR (10),
    	score INT,
    	classNum VARCHAR (5)
    );
    
    --向表中添加数据
    insert into t_class(name,age,gender,stuNum,score,classNum)values('Jacky',20,'男','xh1001',90,'T01');
    insert into t_class(name,age,gender,stuNum,score,classNum)values('Simth',30,'男','xh1002',75,'T02');
    insert into t_class(name,age,gender,stuNum,score,classNum)values('Jay',18,'男','xh1003',80,'T01');
    insert into t_class(name,age,gender,stuNum,score,classNum)values('Helen',19,'女','xh1004',75,'T02');
    insert into t_class(name,age,gender,stuNum,score,classNum)values('Liiy',22,'女','xh1005',90,'T03');
    insert into t_class(name,age,gender,stuNum,score,classNum)values('Green',23,'男','xh1006',85,'T02');
    insert into t_class(name,age,gender,stuNum,score,classNum)values('RedChar',18,'男','xh1007',60,'T01');
    insert into t_class(name,age,gender,stuNum,score,classNum)values('Kevin',17,'女','xh1008',45,'T03');
    
    -- 牢记SQL执行顺序:执行FROM ==> WHERE条件过滤 ==>GROUP BY分组 ==>执行SELECT投影列 ==>HAVING条件过滤 ==>执行ORDER BY排序
    --解答
    -- 1.统计每个班的学员的数量
    select classNum as'班级', COUNT(*)  from t_class GROUP BY classNum;
    -- 2.统计每个班的总分
    select  classNum, sum(score) from t_class GROUP BY classNum ;
    -- 3.统计每个班的平均分
    select classNum,ROUND(AVG(IFNULL(score,0)),2)  from t_class GROUP BY classNum;
    -- 4.统计每个班的最高分
    select classNum,MAX(score) from t_class GROUP BY classNum;
    -- 5.统计每个班的最低分
    select classNum,MIN(score)  from t_class GROUP BY classNum;
    -- 6.统计每个班学员的数量,总分,平均分,最高分,最低分
    select classNum as'班级',COUNT(*) as'人数',SUM(score) as'总分',ROUND(AVG(IFNULL(score,0)),2) as'平均值',MAX(score) as'最高分',MIN(score) as'最低分' from t_class GROUP BY classNum;
    -- 8.统计班级ID为T01的学员的数量,总分,平均分,最高分,最低分
    select count(*) as'总人数',sum(score) as'总分',round(avg(IFNULL(score,0)),2) as'平均分',max(score) as'最高分',min(score) as'最低分' from t_class where classNum='T01';
    -- 9.查询平均分上75的班级有哪些?
    select classNum,round(avg(ifnull(score,0)),2) from t_class GROUP BY classNum having round(avg(ifnull(score,0)),2)>=75;
    -- 10.查询有女生的班级是哪些?
    select classNum,COUNT(*) from t_class where gender='女' group by classNum;
    
    
    select * from t_class;
    
    展开全文
  • 知识内容: 1.数据库的关系规范化...关系规范化理论数据库设计的指导理论,将关系划分为不同的规范层级,每一层级规定相应的判别标准,衡量这些层级的概念叫范式(NF:Normal Form) 范式详细情况见下面的解释 ...
  • 本教程的作者具有多年数据库维护与开发工作经验,在本书编写的过程中秉承理论学习与实际开发相结合的原则,力求实现所有技术点和经典案例的完美搭配,帮助RDS数据库初学者轻松入门,并迅速达到熟练程度。
  • 公司里dba人员严重不足,却一直不招人,无奈之下决定帮助运维人员学习下数据库,那些纯理论的东西,在入门之后学习也不晚,我就直接上实战了,今天第一天。 公司有oracle、也有sql server,但是运维接触的系统都是...
  • 数据库入门概略

    2011-11-08 19:36:38
    前段时间由于wince图片浏览器需要一个数据库去存储原图和缩略图的路径等信息,就...数据库理论: 主要熟悉E-R图,关系型数据库,常用SQL语句 E-R图可用于软件设计文档里表示概念数据模型,E-R图元素:实体、属性、联系
  • 规范化用于粒度化和组织在数据库中使用的...在数据模型理论中,表是连续存入数据的存储桶。关系数据库模型和规范化的思想是,特定表中的数据直接与相同表中的所有其他项关联。 相同表中的所有记录具有相同的字段结...
  • MySQL数据库应用快速入门培训课程

    万人学习 2019-12-24 22:11:12
    快速掌握Mysql应用,理论为辅,实践为主,本课程属于精简版,目的是让学员快速上手MySQL 本课程是mysql的入门课程,linux  和 windows 下面两种方式对mysql  进行安装,通过sql语句创建数据库,创建...
  • 数据库入门书籍推荐

    2018-04-23 17:01:36
    数据库系统导论》(第七版)C.J.Date著 机械工业出版社,数据库领域中的权威著作,专业理论书籍出版至第七版,在业界是罕见的,可以想见该书具有多高的水平。《数据库系统概念》(第三版)Silberschatz著 机械工业...
  • NoSQL数据库入门

    2016-08-03 09:57:01
    CAP理论: (1)Consistency一致性,任何一个读操作总能读取到之前完成的写操作结果。 (2)Avaliability 可用性,每一个操作总是能够在确定的时间内返回。 (3)Tolerance of network Partition 分区容忍性,在...
  • 6.关系数据库理论 关系数据库理论, 是针对逻辑设计,就是如果去更好地设计逻辑模型。 6.1问题的提出 关系数据库逻辑设计 问题:针对具体问题, 如何构造一个适合于它的数据模式?这是数据库设计的问题, 确切地将...
  • 01-老男孩运维DBA课程开班02-数据库概念介绍从架构上解决数据库的瓶颈说明了一个道理,有问题不要自己抗,要团队精神,数据库有问题了不要自己扛,让前端memcache扛,把数据静态化,让web服务器扛03-数据库种类介绍...
  • 1、创建数据库 1.1、理论: 1.2、实践 2、修改删除数据库 2.1、理论: 2.2、实践 3、分离附加数据库 3.1、
  • 9.3 理论应用于实践作为本章(以及后3章)的提示,您需要努力地建立一个案例分析示例从而使理论应用到实践中。回忆一下本章开始的内容:案例分析包括一个虚拟的联机拍卖行。本节将完成案例分析的分析阶段。包括数据库...
  • Oracle数据库应用与开发第01章[Oracle入门]理论课;课程目标;目标 ; Oracle 数据库简介 2-1; Oracle 数据库简介 2-2;Oracle 9i 体系结构;Oracle 数据库;Oracle 物理组件;Oracle 实例 ;Oracle 实例内存结构;系统全局区...
  • 本章将会利用之前已经介绍过的所有内容(所有理论)并进行实践。将叙述不同类型数据库模型中,影响数据库性能的各种因素。如果有些内容是明显重复前几章的内容,则表明该内容在数据库建模中显得加倍重要。就目前关心的...
  • 对于数据库初学者来说,数据库是一门博大精深的理论,下面浅尝辄止的介绍一些跟数据库相关的知识,共数据库初级爱好者分享~ 1.什么是数据库学习 侠义讲:存储数据的仓库 广义讲:可以对数据进行存储管理的软件 ...
  • 数据库入门概念篇--01

    2019-08-22 21:04:08
    前言:Microsoft发布的SQLServer 产品是一个典型的关系型数据库管理系统。有三大优点:功能强大,操作简单,可靠的安全性!有这三大优点,使SQLServer 数据库产品使用的非常广泛...范式理论: 1NF 2NF 3NF ER模...
  • 另外一个缺点就是跨片查询的性能问题,当查询条件中没有订单号的时候,会无法定位到数据库表,所以会遍历所有的库表,进行查询,再在内存中合并数据,取最小集返回,在这种情况下,分库分表反而会成为累赘。...
  • 本书的前几章不仅对创建关系数据库模型的理论进行了阐述,而且对这一模型的发展历史及产生原因等主题也进行了讨论。在现阶段,设计关系数据库模型仍然是有意义的。另外,不同的应用程序会对同一主题产生不同的需求,...
  • [color=black]范式:英文名称是 Normal Form,最早是由英国人 E.F.Codd在上个世纪70年代提出关系数据库模型后总结出来的,范式是关系数据库理论的基础,也是我们在设计数据库结构过程中所要遵循的规则和指...
  • Oracle数据库基础教程:入门其实很简单 Oracle数据库系统是目前最流行的客户/服务器数据库之一。本文集从初学者的角度出发,由浅入深、循序渐进地介绍了Oracle数据库开发的基础知识。此外,文集对数据库基本...
  • 数据库高级特性1.事务特性2.SQL语句执行加载顺序3.七种 JOIN 理论4.MySQL 的索引索引的基本概念MySQL 使用的索引MySQL 索引分类索引的创建时机 1.事务特性 shwo engines; 用于查看你的 mysql 提供了什么存储引擎: ...
  • JAVA数据库开发框架MyBatis 框架是什么 框架是部分系统,或者整个系统的可重用设计,是被开发者应用的开发骨架,概述起来就是框架可以减少我们的代码量,方便我们工作的一个更为强大的工具类,他们都是基于基础理论...
  • 1.理论 2.操作 3.安全! 本章重点介绍,操作部分。总结基本的数据库操作语句,select insert update delete 。本次只简单的总结,四大操作语句!稍后总结,稍微复杂一点的四大操作语句!(本实例基于学生信息管理...
  • 开篇主要介绍一些数据库理论知识,不感兴趣的可以向后翻阅;如果你是开发人员可以简单看看基础就够了。废话不多说,开始我们的学习吧! 数据库版本Oracle 11g Oracle 11g提供了多种数据库管...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 526
精华内容 210
关键字:

数据库理论入门