mysql 5.0教程_mysql5.0使用教程

《MySQL必知必会》_笔记

第1章 了解SQL

数据库基础

什么是数据库

数据库是一个以某种有组织的方式存储的数据集合。保存有组织的数据的容器(通常是一个文件或一组文件)。

数据库软件应称为DBMS (数据库管理系统 ) 。

数据库是通过DBMS创建和操纵的容器。

表和模式

表是一种结构化的文件,可用来存储某种特定类型的数据。

(table) 某种特定类型数据的结构化清单。

模式可以用来描述数据库中特定的表以及整个数据库〈和其中表的关系)。

模式 (schema) “关于数据库和表的布局及特性的信息。

列和数据类型

表由列组成。列中存储着表中某部分的信息。

(column) 表中的一个字段。所有表都是由一个或多个列组成的.

数据库中每个列都有相应的数据类型。

数据类型 (datatype) ”所容许的数据的类型。每个表列都有相应的数据类型,它限制(或容许) 该列中存储的数据。

数据类型限制可存储在列中的数据种类〈例如,防止在数值字段中录入字符值)。数据类型还帮助正确地排序数据,并在优化磁盘使用方面起重要的作用。

表中的数据是按行存储的,所保存的每个记录存储在自己的行内。

(row) 表中的-个记录,

主键

主键 (primary key) 一列 (或一组列),其值能够唯一区分表中每个行。

唯一标识表中每行的这个列〈或这组列) 称为主键。

应该总是定义主键: 虽然并不总是都需要主键,但大多数数据。 库设计人员都应保证他们创建的每个表具有一个主键,以便于以后的数据操纵和管理。

主键的最好习惯

      1. 不更新主键列中的值;
      2. 不重用主键列的值;
      3. 不在主键列中使用可能会更改的值。

什么是SQL

SQL是结构化查询语言(Structured Query Language)的缩写。SQL是一种专门用来与数据库通信的语言。

SQL的优点:

      1. SQL不是某个特定数据库供应商专有的语言。 几乎所有重要的DBMS都支持SQL,所以,学习此语言使你几乎能与所有数据库打交道。
      2. SQL简单易学。 它的语句全都是由描述性很强的英语单词组成,而且这些单词的数目不多。
      3. SQL尽管看上去很简单, 但它实际上是一种强有力的语言,灵活使用其语言元素,可以进行非常复杂和高级的数据库操作。

第2章 MySQL简介

什么是MySQL

为什么那么多公司和开发人员使用Mysql?

    1. 成本一-MySQL是开放源代码的,一般可以免费使用《甚至可以免费修改)。
    2. 性能一MySQL执行很快〈非常快)。
    3. 可信赖一一某些非常重要和声望很高的公司、站点使用MySQL,这些公司和站点都用MySQL来处理自己的重要数据。
    4. 简单一 MySQL很容易安装和使用。

客户机-服务器软件

DBMS可分为两类: 一类为基于共享文件系统的DBMS,另一类为基于客户机-服务器的DBMS。

MySQL、Oracle以及Microsoft SQL Server等数据库是基于客户机-服务器的数据库。客户机-服务器应用分为两个不同的部分。服务器部分是负责所有数据访问和处理的一个软件。这个软件运行在称为数据库服务器的计算机上。

    • 服务器软件为MySQL DBMS。你可以在本地安装的副本上运行,也可以连接到运行在你具有访问权的远程服务器上的一个副本。
    • 客户机可以是MySQL提供的工具、脚本语言(如Perl)、Web应用开发语言(如ASP、ColdFusion、JSP和PHP)、程序设计语言(如C、C++、jJava) 等。

MySQL版本

MySQL 早期版本(5.x 系列)

  • MySQL (年)
    • 引入存储过程、触发器、视图和游标。
    • 支持分布式事务(XA)。
  • MySQL (年)
    • 支持分区表(Partitioning),提升大表管理能力。
    • 新增事件调度器(Event Scheduler)。
    • 引入基于行的复制(Row-Based Replication)。
  • MySQL (年)
    • 默认存储引擎改为 InnoDB,取代 MyISAM。
    • 支持半同步复制(Semi-Synchronous Replication)。
    • 优化性能:改进多核 CPU 支持、缓冲池扩展。
  • MySQL (年)
    • 支持全文索引(Full-Text Search)优化。
    • 新增 NoSQL 风格的 Memcached API。
    • 改进复制功能:延迟复制、GTID(全局事务标识)支持。
    • 性能提升:子查询优化、索引条件下推(ICP)。
  • MySQL (年,长期支持版 LTS)
    • JSON 支持:新增 JSON 数据类型及相关函数。
    • 引入多源复制(Multi-Source Replication)。
    • 性能增强:并行复制、在线 DDL 操作优化。
    • 安全性:密码策略强化、SSL 默认启用。
    • 官方支持到 年 月

MySQL (年,当前主流版本)

  • 核心特性
    • 窗口函数(Window Functions):支持复杂分析查询。
    • 通用表表达式(CTE):简化递归查询。
    • 原子 DDL:确保数据定义语句的原子性。
    • 默认字符集改为 utf8mb4,全面支持 Emoji 和四字节字符。
    • JSON 增强:新增 JSON 路径语法、JSON 聚合函数。
    • 角色管理:更细粒度的权限控制。
    • InnoDB 改进:支持哈希索引、自增列持久化。
    • 性能优化:直方图统计信息、资源组管理。
    • 安全性:密码策略升级、双密码支持。
  • 长期支持(LTS):官方支持到

MySQL 版本分支

  • MySQL Community Edition(社区版):
    • 开源免费,适合开发者和小型项目。
    • 包含核心功能,但无企业级工具支持。
  • MySQL Enterprise Edition(企业版):
    • 提供高级功能(如企业备份、审计、防火墙)。
    • 包含官方技术支持,适合大型企业。
  • MySQL Cluster
    • 基于 NDB 存储引擎的高可用集群方案。
    • 支持分布式架构和实时事务处理。

MySQL工具

mysql命令行实用程序

每个MySQL安装都有一个名为mysql的简单命令行实用程序。这个实用程序没有下拉菜单、流行的用户界面、鼠标支持或任何类似的东西。

注意:

      • 命令输入在mysql>之后;
      • 命令用;或\g结束,换名话说,仅按Enter不执行命令;
      • 输入help或\h获得帮助, 也可以输入更多的文本获得特定命令的帮助 (如,输入help Select获得使用SELECT语句的帮助 );
      • 输入quit或exit退出命令行实用程序。

MySQL Administrator

MySQL Administrator (MYSQL管理器) 是一个图形交互客户机,用来简化MySQL服务器的管理。

获得MySQL Administrator :
http://dev.mysql.com/downloads/下载它 (可得到用于Linux、Mac OS X和Windows的版本,其源代码也可以下载 ) 。

MySQL Query Browser

MySQL Query Browser为一个图形交互客户机,用来编写和执行MySQL命令。

获得MySQL Query Browser :从
http://dev.mysql.com/downloads/下载它 (可得到用于Linux、Mac OS X和Windows的版本,其源代码也可以下载 ) 。

第3章 使用MySQL

1. 连接MySQL

  • 参数要求:连接MySQL需提供以下信息:
    • 主机名(本地为localhost)
    • 端口(默认)
    • 用户名和口令
  • 工具
    • 命令行工具(mysql)1
    • 图形工具(如MySQL Administrator、MySQL Query Browser)。

2. 选择数据库

  • USE命令
    通过USE database_name;选择数据库(例如USE crashcourse;)。选择后不返回结果,但客户端可能提示“Database changed”。
  • 图形工具操作
    在MySQL Query Browser中双击数据库名称即可选择。1

3. 探查数据库与表

  • 查看数据库列表
    SHOW DATABASES;显示所有可用数据库(如information_schema、test等),部分为系统库。1
  • 查看表列表
    SHOW TABLES;显示当前数据库中的所有表(如customers、orders)。1
  • 查看表结构
    SHOW COLUMNS FROM table_name;显示表的列信息(如字段名、类型、是否允许NULL等)。

4. 关键字与注意事项

  • 保留关键字
    USE等关键字不可用于表或列名,需避免冲突(附录E列出所有关键字)。1
  • 访问权限
    用户仅能访问被授权的数据库和表,权限由管理员分配(见第章)。

5. 示例命令

-- 显示所有数据库
SHOW DATABASES;

-- 选择数据库crashcourse
USE crashcourse;

-- 显示当前数据库的所有表
SHOW TABLES;

-- 显示customers表的列信息
SHOW COLUMNS FROM customers;

-- 显示广泛的服务器状态信息
SHOW STATUS;

-- 显示创建特定数据库或表的MySQL语句
SHOW CREATE DATABASE;
SHOW CREATE TABLE;

-- 显示授予用户〈所有用户或特定用户) 的安全权限
SHOW GRANTS;

-- 显示服务器错误或警告
SHOW ERRORS;
SHOW WARNINGS;
原文链接:,转发请注明来源!