MySQL详解

MySQL详解

1. 数据库概述

1.1 数据库(DataBase:DB):

数据库是按照数据结构来组织、存储和管理数据的仓库。
存储和管理数据的仓库,其实数据库就是磁盘中的文件+一个管理系统.

1.2 数据库管理系统(Database Management System:DBMS):

是专门用于管理数据库的计算机系统软件。数据库管理系统能够为数据库提供数据的定义、建立、维护、查询和统计等操作功能,并完成对数据完整性、安全性进行控制的功能。
  • MySQL,Oracle,SQL Server等这些都是数据管理系统/数据库服务器.
  • 我们一般说的数据库,就是指的DBMS: 数据库服务器
数据管理员(DBA):
负责创建、监控和维护整个数据库,使数据能被任何有权使用的人有效使用。数据库管理员一般是由业务水平较高,资历较深的人员担任.

1.3 数据库的发展历程

1.3.1 层次数据库和网状数据库技术阶段;
使用指针来表示数据之间的联系。
1.3.2 关系数据库技术阶段(表格);
经典的里程碑阶段。代表DBMS:Oracle、DB2、MySQL、SQL Server、PostgreSQL等。
  • Oracle:大型企业数据库,支持数据量,速度较快,安全性非常好,提供完善的存储过程支持;新的版本提供了众多新功能;
  • DB2(IBM):大型企业数据库,支持数据量,速度较快,安全性较好;
  • SQL Server(MS):大型企业数据库,支持数据量,速度较快,安全性较好;
  • MySQL(Oracle):性能不错,使用方便,体积小,易扩展;是目前使用最广的关系型数据库;
  • PostgreSQL(postgres):免费,实现更完整,功能更强大,更稳定;
1.3.3 后关系数据库技术阶段;
关系型数据库存在数据模型,性能,拓展伸缩性的缺点,出现了:
ORDBMS:面向对象数据库技术。
NoSQL :非关系型的数据库。
随着大数据的不断发展,非关系型的数据库现在成了一个极其热门的新领域,非关系数据库产品的发展非常迅速,出色的NoSQL数据库:
1.3.4 常见的NoSQL数据库分为四大类
1): 键值存储数据库:Oracle BDB,Redis,BeansDB
2): 列式储数数据库:HBase,Cassandra,Riak
3): 文档型数据库:MongoDB,CouchDB
4): 图形数据库:Neo4J,InfoGrid,Infinite Graph

1.3.5 常见的关系数据库
|数据库系统|所属公司|
|—|–|
|Oracle|Oracle|
|DB2|IBM
|SQL Server|MS
|MySQL|AB–>SUN–>Oracle|
Oracle:运行稳定,可移植性高,功能齐全,性能超群!适用于大型企业领域。
DB2:速度快、可靠性好,适于海量数据,恢复性极强。适用于大中型企业领域。
SQL Server:全面,效率高,界面友好,操作容易,但是不跨平台。适用于于中小型企业领域。
MySQL:开源,体积小,速度快。适用于于中小型企业领域。

2. SQL概述

2.1 SQL是什么

SQL:结构化查询语言(Structured Query Language)。是关系型数据库标准语言。
特点:简单,灵活,功能强大。

2.2 SQL的分类

2.2.1 数据查询语言(DQL):
其语句,也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。保留字SELECT是DQL(也是所有SQL)用得最多的动词,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BYHAVING。这些DQL保留字常与其他类型的SQL语句一起使用。
2.2.2 数据操作语言(DML):
其语句包括动词INSERTUPDATEDELETE。它们分别用于添加,修改和删除表中的行。也称为动作查询语言。
2.2.3 事务处理语言(TPL):
它的语句能确保被DML语句影响的表的所有行及时得以更新。TPL语句包括BEGIN TRANSACTIONCOMMITROLLBACK
2.2.4 数据控制语言(DCL):
它的语句通过GRANT或REVOKE获得许可,确定单个用户和用户组对数据库对象的访问。某些RDBMS可用GRANTREVOKE控制对表单个列的访问。
2.2.5 数据定义语言(DDL):
其语句包括动词CREATE和DROP。在数据库中创建新表或删除表(CREAT TABLEDROP TABLE);为表加入索引等。DDL包括许多与人数据库目录中获得数据有关的保留字。它也是动作查询的一部分。
2.2.6 指针控制语言(CCL):
它的语句,像DECLARE CURSOR,FETCH INTOUPDATE WHERE CURRENT用于对一个或多个表单独行的操作。

2.3 SQL语法规则

  • 在数据库中,SQL语句大小写不敏感, SELECT/select/SeLeCt
  • SQL语句可单行或多行书写
  • 在SQL语句中,关键字不能跨多行或缩写
  • 为了提高可读性,一般关键字大写,其他小写.
  • 空格和缩进使程序易读

3. 表的概念

  • 我们说MySQL是一种关系型数据库。关系数据库最重要的概念就是表。
  • 表具有固定的列数和任意的行数,在数学上称为“关系”。
  • 二维表是同类实体的各种属性的集合,每个实体对应于表中的一行,在关系中称为元组,相当于通常的一条记录;
  • 表中的列表示属性,称为Field,相当于通常记录中的一个数据项,也叫列、字段。
比如使用一张表存储学生的信息 student表
|学号|姓名|年龄|班级|专业|户籍地
|—|—|—|—|—|—|
|1001|张三|20|101|数学与应用数学|河南-郑州
|1002|李四|20|101|数学与应用数学|河南-郑州
|1003|王五|20|101|数学与应用数学|河南-郑州
|1004|马六|20|101|数学与应用数学|河南-郑州

4. 数据库操作

数据库对象
存储,管理和使用数据的不同结构形式,如:表、视图、存储过程、函数、触发器、事件、索引等。
数据库
存储数据库对象的容器。

数据库分两种

  • 系统数据库(系统自带的数据库):不能修改
    information_schema:存储数据库对象信息,如:用户表信息,列信息,权限,字符,分区等信息。
    performance_schema:存储数据库服务器性能参数信息。
    mysql:存储数据库用户权限信息。
    test:任何用户都可以使用的测试数据库。
  • 用户数据库(用户自定义的数据库):一般的,一个项目一个用户数据库。

常用的操作命令

查看数据库服务器存在哪些数据库: SHOW DATABASE;
使用指定的数据库: USE database_name;
查看指定的数据库中有哪些数据表: SHOW TABLES;
创建指定名称的数据库: CREATE DATABASE database_name;
删除数据库: DROP DATABASE database_name;

1

-------------本文结束感谢您的阅读-------------