MySQL
一. 概述
什么是数据库?
数据库可以理解成保存有组织数据的容器(通常是一个文件或一组文件),很多时候我们所说的数据库就是我们使用的数据库软件(专业点就是数据库管理系统DBMS),我们并不是直接访问数据库而是使用数据库软件,它为我们访问数据库。
什么是数据表?
数据表就是我们要存放数据的东西,就像一个图书馆里的书架一样,并不是随便堆到里面就完事了,有人要借书,你需要根据目录(数据库里为索引)很快的找到书在哪排那层哪个位置,从而快速的取出要借的书。
什么是RDBMS?
RDBMS即关系数据库管理系统(Relational Database Management System),是将数据组织为相关的行和列的系统,而管理关系数据库的计算机软件就是关系数据库管理系统.
有哪些RDBMS?
DB2, IBM公司的产品,起源于世界上第一个关系型数据库System R和System R*。站点:http://www.ibm.com/analytics/us/en/technology/db2/
PostgreSQL,Berkeley开发,完全由社区驱动的开源项目,由全世界超过1000名贡献者所维护。PostgreSQL标榜自己是世界上最先进的开源数据库。不过也确实很牛逼,选择什么主要看怎么取舍了。InfoQ这里有一片文章是MySQL和PostgreSQL的一个对比和分析,点我. PostgreSQL官方站点:https://www.postgresql.org/。
MySQL,开源的一款RDBMS,现在米国甲骨文公司旗下,分社区版和企业版,一般我们使用的都是社区版。官方站点:http://www.mysql.com/
Percona:MySQL优化版,性能更强。官方站点:https://www.percona.com
Sybase,Infomix,MariaDB等等...
RDBMS的相关术语?
数据库(Database):数据库是带有相关数据的表的集合。
表(Table):表是带有数据的矩阵。数据库中的表就像一种简单的电子表格。
列(Column):每一列(数据元素)都包含着同种类型的数据,比如邮编。
行(Row):行(又被称为元组、项或记录)是一组相关数据,比如有关订阅量的数据。
冗余(Redundancy):存储两次数据,以便使系统更快速。
主键(Primary Key):主键是唯一的。同一张表中不允许出现同样两个键值。一个键值只对应着一行。
外键(Foreign Key):用于连接两张表。
复合键(Compound Key):复合键(又称组合键)是一种由多列组成的键,因为一列并不足以确定唯一性。
索引(Index):它在数据库中的作用就像书后的索引一样。
引用完整性(Referential Integrity):用来确保外键一直指向已存在的一行。
什么是SQL?
SQL:Structure Query Language,结构化查询语言,是一种专门用来与数据库通信的语言。遵循的标准主要有:
SQL-86
SQL-89
SQL-92
SQL-03
SQL-08
SQL语句分类
Data defination language(DDL):
CREATE --在数据库中创建对象
ALTER ---修改数据库结构
DROP ---删除对象
RENAME --- 重命名对象
Data Manipulation language(DML)
SELECT --- 获取数据
INSERT --- 向表中插入数据
UPDATE --- 更新表中已有数据
DELETE --- 删除表中的数据
Data Control Language(DCL)
GRANT --- 赋予一个用户对数据库或者数据表格等制定权限
REVOKE --- 删除一个用户对数据库或者表哥的制定权限
Transaction Control Language(TCL)
COMMIT --- 保存数据操作
SAVEPOINT --- 为方便Roolback标记一个事务点
ROOLBACK --- 从最后一次COMMIT中恢复到提交前的状态
二. 安装MySQL
安装MySQL有好多种方式:
使用平台包管理器安装, 如apt-get ,yum等
下载源码编译安装
下载通用二进制包安装
...
包管理器安装:
#debian/Ubuntu
apt-get install mysql-server -y
#RHEL
yum install mysql-server -y
...
源码安装(RHEL平台,其他平台大同小异),此处版本是5.5.28,可以下载最新的,大同小异。
cmake编译安装5.5.28
通用二进制包安装:
通用二进制包安装5.6.26
想要使用MySQL来存储并操作数据,则需要做几件事情:
a. 安装MySQL服务端
b. 安装MySQL客户端 (安装完服务器端,默认都带有客户端工具,安装过程略...)
b. 【客户端】连接【服务端】
c. 【客户端】发送命令给【服务端MySQL】服务的接受命令并执行相应操作(增删改查等)
三. 数据库操作:
1. 显示所有数据库:
SHOW DATABASES;
#默认数据库:#mysql - 用户权限相关数据#test - 用于用户测试数据#information_schema - MySQL本身架构相关数据
2. 使用/进入数据库
USE db_name;
3. 显示库的的所有表
SHOW TABLES;
4. 授权管理
用户管理: