码迷,mamicode.com
首页 > 数据库 > 详细

MySQL

时间:2017-09-07 18:08:41      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:es2017   兼容性   查询   medium   世纪   成功   exec   事务   sel   

MySQL

起源

20世纪70年代末,一位名叫Michael WideniusMonty的还不满20的孩子借了一台计算机,开始学习编程。笨鸟先飞早入林,关键是人家还不笨,所以很快在Tapio Laakso Inc找到了工作。Monty在这家公司除了练好了技术,最大收获就是结识Allan Larssion,两人1986成立了TCX DataKonsult公司(MySQL公司的前身),这是一家外包公司,主要为客户提供数据挖掘方面的业务。

提到数据挖掘,自然而然的想到了数据库。使用数据库时,如果数据库中的数据量不大时一切都不是问题,但是随着数据的增多,不仅性能会出现问题,运算的复杂度等都呈几何级数的增加。而且那时80年代,服务器的处理能力可能还不如现在的智能手机。所以工作难度可想而知。

同时Monty开发了一款名为UNIREG的数据库管理工具,用来利用索引顺序来读取数据这种方式就是ISAM存储引擎算法的前身。但是UNIREG只是数据库内部系统并不具备SQL接口,Monty深刻地理解必要重复发明车轮,于是他选择了一个当时比较流行得商用产品——mSQL数据库用于接收外部请求,同时使用自己开发的ISAM来处理数据,后来发现使用效率并不是很高。当时Monty尝试联系了mSQL的开发者,希望可以使ISAMmSQL做一个深度结合,以提处理性能。但最终并没有达成合作。

Monty一咬牙,干脆重写了一套与mSQL功能类似,性能更好的SQL接口,同时保持了一定的兼容性这样就方便原来那些使用mSQL的第三方代码,很容易就可以切换到使用新的SQL接口上,这套接口后来就演变称为MySQL

1996MontyDavid Axmart一起协作,写出了MySQL的第一个版本,几个月后跳过2.0版本,直接发布了3.11版本

1998MontyAllanDavid人创建MySQL ABMySQL AB负责MySQL软件的核心开发,并且拥有“MySQL”的商标和版权。同年MySQL发布了正式版本。

发展

2000ISAM引擎华丽变身为MyISAM存储引擎。MySQL开放了自己的源代码,不过MySQL数据库并不是简单的开源,而是采用双许可证的方式也就是如果是普通用户可以随便使用MySQL,但是要基于MySQL从事商用行为,就必须先向MySQL支付一定的费用,以获得许可。

2001MySQL数据库中加入了另一个存储引擎InnoDBInnoDB支持事务,支持行级锁定,对于并发用户来说,可谓及时雨。至此MySQL中的MyISAMInnoDB大主力引擎均已就为,而互联网大潮也早就鼓舞起来,MySQL也开始有了自己的市场。

2005MySQL 5.0版本发布,这是个非常重要的版本,提供了众多特性,比如说:存储过程、触发器、视图、游标、分布式事务等它也越来越像是一个企业级的数据库,具备了较为全面的技术指标。

正当一切看起来很顺利的时候,InnoDB存储引擎的版权InnobaseOracle收购童年Oracle有收购了Sleepcat公司,该公司为MySQL提供了支持事务的BDB存储引擎。很明显MySQLOracle盯上了。

2007MySQL的年总收入已经达到了7500没用,照此下去2008非常希望达到1个亿的目标。然而事实难料,SUN公司出价10亿美元,收购MySQL公司,及其拥有的MySQL产品、商标及版本。

后来由于种种原因MySQL创始人:Michael WideniusAllan Larssion先后SUN公司提交了辞呈,离开了他们一手创立的企业。

2009Oracle公司出价74亿美元收购SUN公司通过收购SUN公司,Oracle终于MySQL收入囊中。

经过几年的折腾MySQL的发展虽然不至于完全停止,可是也大受影响。将MySQL纳入囊中之后,Oracle将原有的MySQL的版本划分和分支重新整理,6.0版本被取消,5.15.5版本进行不断的bug修复,并放出新的beta版本。

安装

1) 找到适合自己系统的MySQL安装,双击打开

   技术分享

2) 点击Next进行下一步

   技术分享

3) 选择同意协议,点击Next

   技术分享

4) 选择Custom点击Next

   技术分享

5) 选择MySQL的安装目录,点击Next

   技术分享

6) 确认路径信息,选择Install

   技术分享

7) 进入读条状态,稍安勿躁

   技术分享

8) Next

   技术分享

9) Next

   技术分享

10) 选择Configure…点击Finish

   技术分享

11) 选择Next

   技术分享

12) 选择详细配置,点击Next

   技术分享

13) 选择开发者机器,点击Next

   技术分享

14) 选择多用途数据库,点击Next

   技术分享

15) 设置数据库实例路径,一般不使用默认,点击Next

   技术分享

16) 设置并发连接上线,点击Next

   技术分享

17) 一般不用改使用默认值即可,点击Next

   技术分享

18) 设置数据库编码为utf8(关键步骤)

   技术分享

19) 设置MySQL服务信息,点击Next

   技术分享

20) 设置超级管理员root的密码,我这里设置为root,点击Next

   技术分享

21) 点击Execute执行操作

   技术分享

22) 出现四个对勾,配置成功,点击Finish

   技术分享

23) 打开命令行窗口CMD

   技术分享

24) 输入mysql –uroot –proot出现如下内容

   技术分享

25) 输入 show databases出现数据库信息,MySQL安装成功

   技术分享

26) 输入quit退出数据库

   技术分享

 

卸载

1) 打开控制面板,找到卸载程序

   技术分享

2) 找到MySQL Server 5.1双击选择是程序自动卸载

   技术分享

3) 找到MySQL安装目录删除MySQL文件

   技术分享

4) 打开注册表

   技术分享

5) 删除以下内容:

a) HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\MySQL HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\MySQL HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\MySQL

6) 删除C:\ProgramDataMySQL文件夹

   技术分享

 

基本操作

  • MySQL的重要文件
    •  MySQL安装目录\bin\ mysqld.exe
      •  MySQL服务器程序,必须启动数据库才能正常使用
    •  MySQL安装目录\bin\ mysql.exe
      •  MySQL的客户端程序,用来操作MySQL数据库
    •  MySQL安装目录\ my.ini
      •  MySQL数据库的配置文件
  • 登录:mysql -u用户名 -p密码
  • 退出:quitexit
  • 基本SQL语法
    •  SQL语句可以写成单行或者多行,以分号结尾
    •  MySQL中不区分大小写,但是建议关键字大写
  • SQL语句
    • 数据定义语言DDL(Data Definition Language)
    • 数据操作语言DML(data manipulation language)
    • 数据控制语言DCL(Data Control Language)
    • 数据查询语言DQL(Data QueryLanguage)
    • 常见语句:
      • 登录mysql –u用户名 –p密码 
      • 技术分享
      • 退出:quitexit 
      • 技术分享
      • 查看数据库的编码信息:show variables like ‘char%‘;
      • 技术分享
      • 显示所有数据库:show databases;
      • 技术分享
      • 访问数据库:use 数据库名;
      • 技术分享
      • 查看所有的表:show tables;
      • 技术分享
      • 创建数据库:CREATE DATABASE [IF NOT EXISTS] 数据库名 [CHARSET=utf8]
      • 技术分享

      • 技术分享

      • 删除数据库:DROP DATABASE [IF EXISTS] 数据库

      • 技术分享
      • 技术分享
      • 创建
        • 语法
        • CREATE TABLE [IF NOT EXISTS] 表名

          (

          列名 类型,

          列名 类型,

          其他选项

          )

        • 技术分享
      • 查看表结构DESC 表名;
      • 技术分享
      • 删除DROP TABLE [IF EXISTS]
      • 技术分享
      • 技术分享
      • 命名表:RENAME TABLE 旧名 TO 名;
      • 技术分享
      • 插入数据
        •  INSERT INTO 表名 (列名1,列名2,列名3…) VALUES(1,2,3);
        • 技术分享
        •  INSERT INTO 表名 VALUES(1,2,3);
        • 技术分享
      • 修改数据
        • UPDATE 表名 SET 列名1=1,列名2=值2… WHERE …
        • 技术分享
      • 删除数据
        • DELETE FROM 表名 WHERE…
        • 技术分享
      • 清空表中的数据
        • TRUNCATE [TABLE] 表名;
        • 技术分享
        • 技术分享
      • 查询
        • SELECT * FROM 表名 WHERE…;
        • 技术分享
        • 技术分享
        • SELECT 列名1 别名1 , 列名2 别名2 … FROM 表名 WHERE…
        • 技术分享
        • SELECT * FROM 表名 WHERE … LIMIT 索引 , 长度
        • 技术分享

           

常见数据类型

字符串

数据类型

说明

CHAR

1~255个字符的定长串,它的长度必须在创建时指定,否则MySQL假定为CHAR1

VARCHAR

可变长度,最多不超过255字节,如在创建时指定VARCHARn),则可存储0~n个字符的变长串

TINYTEXT

TEXT,最大长度为255字节

MEDUIMTEXT

TEXT,最大长度为16K

TEXT

最大长度为64K的变长文本

LONGTEXT

Text,最大长度为4GB(纯文本,一般不会到4G

数值

数据类型

说明

int[(m)]

有符号值:-2147683648 2147683647- 2^31 2^31- 1

无符号值:042949672950 2^32 1

double[(m, d)]

最小非零值:±2.2250738585072014e 308

decimal (m, d)

可变;其值的范围依赖于m d

时间

数据类型

说明

DATE

1000-01-01——9999-12-31

TIME

-838:59:59——838:59:59

DATETIME

1000-01-01 00:00:00——9999-12-31 23:59:59

TIMESTAMP

19700101080001——20380119111407

进制

数据类型

说明

TITYBLOB

最大长度为255字节

BLOB

最大长度为64KB

MEDIUMBLOB

最大长度为16MB

LONGBLOB

最大长度为4GB

MySQL

标签:es2017   兼容性   查询   medium   世纪   成功   exec   事务   sel   

原文地址:http://www.cnblogs.com/kangxingyue-210/p/7490773.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!