MySQL数据库进阶

1.数据库概述

1.1 什么是数据库

数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以通过SQL对数据库中的数据进行增加,修改,删除及查询操作。

1.2 什么是关系型数据库

数据库中的记录是有行有列的数据库就是关系型数据库,与之相反的就是NoSQL数据库了。

1.3 数据库和表

数据库管理系统(DataBase Management SystemDBMS):指一种操作和管理数据库的大型软件,用 于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据 库管理系统访问数据库中表内的数据。

1.4 常见的数据库管理系统

- MYSQL :开源免费的数据库,小型的数据库  已经被Oracle收购了。

        MySQL5.5版本之后都是由 Oracle发布的版本。

-Oracle :收费的大型数据库,Oracle公司的产品。Oracle收购SUN公司,收购MYSQL

- DB2 :IBM公司的数据库产品,收费的。常应用在银行系统中。在中国的互联网公司,要求去 IOE(IBM小型机、Oracle数据库、EMC存储设备)

- SQLServer MicroSoft 公司收费的中型的数据库。 C# .net 等语言常使用。
- SyBase :已经淡出历史舞台。提供了一个非常专业数据建模的工具 PowerDesigner
- SQLite : 嵌入式的小型数据库,应用在手机端。

1.5 MySQL是什么

MySQL 是最流行的关系型数据库管理系统,在WEB应用方面 MySQL是最好的RDBMS应用软件之一。

1.6 MySQL发展历程

- MySQL 的历史可以追溯到 1979 年,一个名为 Monty Widenius 的程序员在为 TcX 的小公司打工,并且用 BASIC设计了一个报表工具,使其可以在 4MHz 主频和 16KB 内存的计算机上运行。当时,这只是一个很底层的 且仅面向报表的存储引擎,名叫Unireg
- 1990 年, TcX 公司的客户中开始有人要求为他的 API 提供 SQL 支持。 Monty 直接借助于 mSQL 的代码,将 它集成到自己的存储引擎中。令人失望的是,效果并不太令人满意,决心自己重写一个SQL 支持。
- 1996 年, MySQL 1.0 发布,它只面向一小拨人,相当于内部发布。到了1996 10 月, MySQL 3.11.1 发布 (MySQL 没有 2.x 版本 ) ,最开始只提供 Solaris 下的二进制版本。一个月后,Linux 版本出现了。在接下来的两年里, MySQL 被依次移植到各个平台。
- 1999 2000 年】,【 MySQL AB 】公司在瑞典成立。 Monty 雇了几个人与 Sleepycat 合作,开发出 了【Berkeley DB 引擎】 , 由于 BDB 支持事务处理,因此 MySQL 从此开始支持事务处理了。
- 2000 MySQL 不仅公布自己的源代码,并采用 GPL(GNU General Public License) 许可协议,正 式进入开源世界。同年4 月, MySQL 对旧的存储引擎 ISAM 进行了整理,将其命名为 MyISAM
- 2001 年,集成 Heikki Tuuri 的存储引擎【 InnoDB 】,这个引擎不仅能【支持事务处理,并且支持行级锁】。后来该引擎被证明是最为成功MySQL 事务存储引擎。 MySQL InnoDB 的正式结合版本是 4.0
- 2003 12 月,【 MySQL 5.0 】版本发布,提供了视图、存储过程等功能。
- 2008 1 月, MySQL AB 公司被 Sun 公司以 10 亿美金收购, MySQL 数据库进入 Sun 时代。在 Sun时代,Sun 公司对其进行了大量的推广、优化、 Bug 修复等工作。
- 2008 11 月, MySQL 5.1 发布,它提供了分区、事件管理,以及基于行的复制和基于磁盘的 NDB 集群系 统,同时修复了大量的Bug
2009 4 月, Oracle 公司以 74 亿美元收购 Sun 公司,自此 MySQL 数据库进入 Oracle 时代,而其第三方的存储引擎InnoDB 早在 2005 年就被 Oracle 公司收购。
- 2010 12 月, MySQL 5.5 发布,其主要新特性包括半同步的复制及对 SIGNAL/RESIGNAL 的异常处理功能的支持,最重要的是InnoDB 存储引擎终于变为当前 MySQL 的默认存储引擎。 MySQL 5.5 不是时 隔两年后的一次简单的版本更新,而是加强MySQL 各个方面在企业级的特性。 Oracle 公司同时也承诺 MySQL 5.5和未来版本仍是采用 GPL 授权的开源产品。

1.7 什么是SQL

【SQLStructured Query Language的缩写】,它的前身是著名的关系数据库原型系统System R所采 用的SEQUEL语言。作为一种访问关系型数据库的标准语言,SQL自问世以来得到了广泛的应用,不仅是著 名的大型商用数据库产品OracleDB2SybaseSQL Server支持它,很多开源的数据库产品如 PostgreSQL、MySQL也支持它,甚至一些小型的产品如Access也支持SQL。近些年蓬勃发展的NoSQL系最初是宣称不再需要SQL的,后来也不得不修正为Not Only SQL,来拥抱SQL。 蓝色巨人IBM对关系数据库以及SQL语言的形成和规范化产生了重大的影响,第一个版本的SQL标准SQL86 就是基于System R的手册而来的。Oracle1979年率先推出了支持SQL的商用产品。随着数据库技术和应 用的发展,为不同RDBMS提供一致的语言成了一种现实需要。 对SQL标准影响最大的机构自然是那些著名的数据库产商,而具体的制订者则是一些非营利机构,例如 【国际标准化组织ISO、美国国家标准委员会ANSI】等。各国通常会按照 ISO标准和ANSI标准(这两个机构 的很多标准是差不多等同的)制定自己的国家标准。中国是ISO标准委员会的成员国,也经常翻译一些国际标准对应的中文版。标准为了避免采用具体产品的术语,往往会抽象出很多名词,从而增加了阅读和理解的难度,翻译成中文之后更容易词不达意。对于数据库系统实现者和用户而言,很多时候还不如直接读英文版本为好。虽然正式的标准不像RFC那样可以从网络上免费获得,标准草案还是比较容易找到的。待批准的标准草案和最终的标准也没有什么实质上的区别,能够满足日常工作的需要。

下面是SQL发展的简要历史:

1986年,ANSI X3.135-1986ISO/IEC 9075:1986SQL-86

1989 年, ANSI X3.135-1989 ISO/IEC 9075:1989 SQL-89
1992 年, ANSI X3.135-1992 ISO/IEC 9075:1992 SQL-92 SQL2
1999 年, ISO/IEC 9075:1999 SQL:1999 SQL3)
2003 年, ISO/IEC 9075:2003 SQL:2003
2008 年, ISO/IEC 9075:2008 SQL:2008
2011 年, ISO/IEC 9075:2011 SQL:2011
如果要了解标准的内容,比较推荐的方法是【泛读 SQL92 】(因为它涉及了 SQL 最基础和最核心的一些内容),然后增量式的阅读其他标准。
不只是 mysql 还有其他数据库,在 SQL92 或者 SQL99 这些国际 SQL 标准基础之上,它们还扩展了自己的一些SQL语句,比如 MySQL 中的 limit 关键字

1.8 SQL语言分类

- 数据定义语言:简称【 DDL (Data Definition Language) ,用来定义数据库对象:数据库,表,列 等。关键字:create alter drop
- 数据操作语言:简称【 DML (Data Manipulation Language) ,用来对数据库中表的记录进行更 新。关键字:insert delete update
- 数据控制语言:简称【 DCL (Data Control Language) ,用来定义数据库的访问权限和安全级别, 及创建用户;关键字:grant
- 数据查询语言:简称【 DQL (Data Query Language) ,用来查询数据库中表的记录。关键字: select, from where

2 MySQL基础篇

2.1 MySQL单机安装

操作系统:CentOS 7 MySQL:5.6

2.2 查看MySQL软件

rpm -qa|grep mysql
yum repolist all | grep mysql

2.3 卸载MySQL

yum remove -y mysql mysql-libs mysql-common  # 卸载 mysql
rm -rf /var/lib/mysql  # 删除 mysql 下的数据文件
rm /etc/my .cnf   # 删除 mysql 配置文件
yum remove -y mysql-community-release-el6- 5 .noarch   # 删除组件

2.4 安装MySQL

#下载rpm文件     wget http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm

#执行rpm源文件    rpm -ivh mysql-community-release-el6-5.noarch.rpm

# 执行安装文件       yum install mysql-community-server

2.5 启动MySQL

systemctl start mysqld

2.5.1 设置root用户密码

例如:为 root 账号设置密码为 root
/usr/bin/mysqladmin -u root password 'root'
# 没有密码 有原来的密码则加
/usr/bin/mysqladmin -u root -p '123' password 'root'

2.5.2 登录MySQL

mysql -uroot -proot

命令说明:

-u :指定数据库用户名
-p :指定数据库密码,记住 -u 和登录密码之间没有空格

2.5.3 配置MySQL

vim /etc/my.cnf

修改内容如下:

[mysqld]
# MySQL设置大小写不敏感:默认:区分表名的大小写,不区分列名的大小写
# 0:大小写敏感 1:大小写不敏感
lower_case_table_names=1
# 默认字符集
character-set-server=utf8

2.6 MySQL远程连接授权

授权命令

grant 权限 on 数据库对象 to 用户

示例

授予root用户对所有数据库对象的全部操作权限:

mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION; FLUSH PRIVILEGES;--刷新权限

命令说明:

ALL PRIVILEGES :表示授予所有的权限,此处可以指定具体的授权权限。

*.* : 表示所有库中的所有表
'root'@'%' myuser 是数据库的用户名, % 表示是任意 ip 地址,可以指定具体 ip 地址。
IDENTIFIED BY 'mypassword' mypassword 是数据库的密码。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值