MySQL数据库
一、什么是MySQL?
数据的所有存储、检索、管理和处理都是由数据库软件-------DBMS完成的,MySQL是一种DBMS,即它是一种数据库软件。MySQL是小型关系型数据库管理系统,目前被应用在Internet上的中小型网站中,体积小,速度快,成本低,开源。
数据库相关名词:DB、DBMS、DBS、DBA(数据库管理员)
MySQL收到的唯一的批评就是它并不总是支持其他DBMS提供的功能和特性。
DBMS可分为两类:
一类是基于共享文件系统的DBMS
另一类基于客户机-服务器的DBMS
MySQL、Oracle以及Microsoft SQL Server等数据库是基于客户机-服务器的数据库。服务器部分负责所有数据访问和处理一个软件,这个软件运行在称为数据库服务的计算机上。
与数据文件打交道的只有服务器软件。
关于数据、数据添加、删除和数据更新的所有请求都由服务器软件完成。这些请求或更改来自运行客户机软件的计算机。
客户机是与用户打交道 的软件,客户机可以是MySQL提供的工具、程序设计语言、脚本语言
二、常见的数据库
1.关系型数据库:建立在关系型模型基础上的数据库,借助于集合代数等高等数学概念和方法来处理数据库中的数据,现实世界中的各种联系均用关系模型来表示
国外:Oracle、DB2、Microsoft SQL Server、MySQL、MicrosoftAccess
国产:浪潮L-DB、武汉达梦、南大通用、人大金仓等
2.非关系型数据库:被称为NoSQL(Not Only SQL),意义不仅仅是sql,是一种轻量、开源、不兼容SQL功能的数据库,对NoSQL最普遍的定义是“非关联型的”,强调KEY-VALUE存储和文档数据库的优点,而不是单纯的反对RDBMS(关系型数据库管理系统)。
主要学NoSQL:redis、mongodb
模型分类:
层次模型:
网状模型:
关系模型:二维表,,,表示实体之间的关系
概念模型:
程序员对数据库的要求:
基本的SQL操作,CRUD操作
多表连接查询、分组查询和子查询
常用数据库的单行函数
常用数据库的基本命令
常用数据库的开发工具
事务概念、索引、视图、存储过程和触发器
MySQL体系结构:
MySQL是由SQL接口、解析器、优化器、缓存、存储结构组成的
Connectors指的是不同语言中与SQL的交互
Managerment Serveices & Utilities:系统管理和控制工具
Connection Pool:连接池。管理缓冲用户连接,线程处理等需要缓存的需求
SQL Interface:SQL接口,接受用户的SQL命令,并且返回用户需要查询的结果。比如select from就是调用SQL Interface
Parser:解析器。SQL命令传递到解析器的时候会被解析器验证和解析
Optimizer:查询优化器。SQL语句在查询之前会使用查询优化器对查询进行优化
Cache和Buffer:查询缓存。如果查询缓存有命中的查询结果,查询语句就可以直接去查询缓存中取数据
Engine:存储引擎。存储引擎是MySQL中具体的与文件打交道的子系统
MySQL相关名词概念:
数据库:存储和管理数据的集合
表:数据库中的数据组织形式,包含多个字段和行
字段:表中的每一列,定义数据类型和约束条件
行:表中的每一行,包含各个字段对应的数据
主键:一个唯一标识符,用于标识表中的每一行
索引:对表中的字段进行优化,加快数据检索速度
视图:虚拟表,存储查询的结果,可以被其他查询使用
存储过程:一段预编译的代码,可以被多次调用,用于复杂的数据操作
事务:一组数据库操作,要么全部执行成功,要么全部撤回
用户权限:控制用户对数据库的访问权限和操作权限
三、一些SQL指令
如何选择数据库?
输入:USE 数据库名;
输出:Database changed

USE语句并不返回任何结果,必须先用USE打开数据库,才能读取里面的数据
如果不知道可以使用的数据库名怎么办?数据库、表、列、用户、权限等信息存储在数据库和表中,可以使用MySQL的SHOW命令来显示这些东西
1. SHOW DATABASES;返回可用数据库的一个列
输入:SHOW DATABASES;
输出:

2.为了获得数据库中的表,使用SHOW TABLES;
SHOW TABLES;返回当前选择的数据库内可用表的列表。
输入:SHOW TABLES;
输出:

3. SHOW也可以用来显示表列:
输入:SHOW COLUMNS FROM customers;
输出:

分析:SHOW COLUMNS 要求给出一个表名,对每个字段返回一行
快捷方式:describe DESCRIBE customers; = SHOW COLUMNS FROM customers;
4.其他支持SHOW的语句:
SHOW STATUS:用于显示广泛的服务器状态信息
SHOW CREATE DATABASE和SHOW CRREATE TABLE:分别用来显示创建特定数据库表或表的MySQL语句
SHOW GRANTS:用来显示授予用户(所有用户或特定用户)的安全权限