一、什么是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指令
cmd登录数据库
mysql -u root -p 回车输入密码 u代表用户名,p代表密码
如何选择数据库?
输入: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:用来显示授予用户(所有用户或特定用户)的安全权限