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 BY和HAVING。这些DQL保留字常与其他类型的SQL语句一起使用。
- 2.2.2 数据操作语言(DML):
- 其语句包括动词INSERT,UPDATE和DELETE。它们分别用于添加,修改和删除表中的行。也称为动作查询语言。
- 2.2.3 事务处理语言(TPL):
- 它的语句能确保被DML语句影响的表的所有行及时得以更新。TPL语句包括BEGIN TRANSACTION,COMMIT和ROLLBACK。
- 2.2.4 数据控制语言(DCL):
- 它的语句通过GRANT或REVOKE获得许可,确定单个用户和用户组对数据库对象的访问。某些RDBMS可用GRANT或REVOKE控制对表单个列的访问。
- 2.2.5 数据定义语言(DDL):
- 其语句包括动词CREATE和DROP。在数据库中创建新表或删除表(CREAT TABLE 或 DROP TABLE);为表加入索引等。DDL包括许多与人数据库目录中获得数据有关的保留字。它也是动作查询的一部分。
- 2.2.6 指针控制语言(CCL):
- 它的语句,像DECLARE CURSOR,FETCH INTO和UPDATE 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;