mysql从入门到精通

文章目录

一.MySQL基础知识

1. 介绍MySQL:了解MySQL是什么,其特点和优势。

1.1 开源免费:MySQL 是开源软件,可以免费使用。同时,MySQL 也有企业版提供商用许可。
1.2 关系型数据库:MySQL 是一种关系型数据库管理系统,数据存储在表格中,并且表格之间可以建立关系。
1.3 多平台支持:MySQL 可以运行在多种操作系统上,包括 Windows、Linux、Mac OS 等。
1.4 高性能:MySQL 具有优秀的性能,能够处理大规模的数据集和高并发的请求。
1.5 易用性:MySQL 的语法简单易懂,易于学习和使用,适合初学者和专业人士。
1.6 标准化:MySQL 遵循 SQL 标准,支持广泛的 SQL 功能和语法。
1.7 数据安全:MySQL 提供了多种安全功能,如用户权限管理、数据加密等,确保数据的安全性。
1.8 扩展性:MySQL 支持可扩展性,在需求增长时可以轻松扩展服务器和数据。
1.9 存储过程和触发器:MySQL 支持存储过程和触发器,可以在数据库端执行一系列操作。
1.10 复制和集群:MySQL 支持主从复制和集群部署,可以提高系统的可用性和性能。
1.11社区支持:MySQL 拥有庞大的开源社区,提供了丰富的文档、教程和支持资源。
MySQL 被广泛应用于 Web 开发、企业应用、移动应用等领域,是许多流行的网站和应用程序的首选数据库系统之一。MySQL 的灵活性、性能和可靠性使其成为许多开发者和企业的首选数据库管理系统之一。

2. 数据库基础概念:数据库、表、字段、数据类型等基本概念。

2.1 数据库(Database)

数据库是一个结构化的数据集合,通常以表的形式组织和存储数据,以便于有效地访问、管理和更新。数据库可以被视为一个电子化的文件柜或数据仓库,用于存储有组织的数据。

  • 关系型数据库(RDBMS):数据库中的数据以表格的形式存储,表格由行和列组成,其中每一行称为记录(或数据行),每一列称为字段(或数据项)。
  • 非关系型数据库:与关系型数据库不同,非关系型数据库采用更灵活的数据模型,如文档型、键值对型、列存储型等。

2.2 表(Table)

表是数据库中数据的结构化表示,由行(记录)和列(字段)组成。

  • 行(Row):表中的每一行代表一个记录,包含一组相关的数据。
  • 列(Column):表中的每一列代表一个数据字段,定义了记录中存储的特定信息类型。

2.3 字段(Field)

字段是表中的一个单元格,用于存储表中每个记录的特定数据类型。

  • 字段名:每个字段都有一个唯一的名称,用于标识字段在表中的位置和含义。
  • 数据类型:每个字段都具有特定的数据类型,如整数、字符、日期等,用于定义字段可以存储的数据格式和范围。

2.4 数据类型(Data Types)

数据类型定义了字段可以存储的数据类型和范围。不同的数据库管理系统支持不同的数据类型,但通常包括以下几类:

2.4.1整数类型

存储整数值,如INT、BIGINT、SMALLINT等。

数据类型 所属类型 字节数 无符号数的取值范围 有符号数的取值范围
TINYINT 整数 1 0~255 -128~127
SMALLINT 整数 2 0~65535 -32768~32768
MEDIUMINT 整数 3 0~16777215 -8388608~8388608
INT 整数 4 0~4294967295 -2147483648~ 2147483648
BIGINT 整数 8 0~18446744073709551615 -9223372036854775808~9223372036854775808

此外还有下面的这些字符串类型,用于表示大文本数据,例如,文章内容、评论、详情等。

类型 描述 大小
TINYTEXT 短文本字符串,最多255个字符 0 - 255 字节
TEXT 文本字符串,最多65535个字符 0 - 65535 字节
MEDIUMTEXT 中等长度文本字符串,最多16777215个字符 0 - 16777215 字节
LONGTEXT 长文本字符串,最多4294967295个字符 0 - 4294967295 字节
BINARY(n) 固定长度的二进制字符串,最多255个字节 0 - 255 字节
VARBINARY(n) 变长二进制字符串,最多65535个字节 0 - 65532 字节
TINYBLOB 短二进制数据,最多255个字节。 0 - 255 字节
BLOB 二进制数据,最多65535个字节。 0 - 65535 字节
MEDIUMBLOB 中等长度二进制数据,最多16777215个字节 0 - 16777215 字节
LONGBLOB 长二进制数据,最多4294967295个字节 0 - 4294967295 字节
2.4. 2浮点数类型

存储带有小数点的数值,如FLOAT、DOUBLE等。

数据类型 所属类型 字节数 无符号数的取值范围 有符号数的取值范围
FLOAT 浮点数 4 -3.402823466E+38~-1.175494351E-38 0和1.175494351E-38~3.402823466E+38
DOUBLE 浮点数 8 -1.7976931348623157E+308~2.2250738585072014E-308 0和2.2250738585072014E308~1.7976931348623157E+308
DECIMAL(M,D 浮点数 M+2 -1.7976931348623157E+308~2.2250738585072014E-308 0和2.2250738585072014E-308~1.7976931348623157E+308
2.4.2 字符类型

在MySQL中常用CHAR 和 VARCHAR 表示字符串,存储字符和字符串,如CHAR、VARCHAR等。

数据类型 描述 存储长度 适用场景和特点
CHAR(n) 定长字符串 n 字符 - 存储固定长度的字符串
VARCHAR(n) 可变长度字符串 取决于数据长度,存储可变长度的字符串,最多可以存储 n 个字符 实际占用的存储空间取决于实际存储的字符串长度,效率较高。适合存储长度不固定的文本数据,如用户名、地址、备注等
2.4.3 日期和时间类型

存储日期、时间或日期时间数据,如DATE、TIME、DATETIME等。

类型 描述 格式 范围 大小
DATE 日期,格式为 ‘YYYY-MM-DD’。 ‘1000-01-01’ 到 ‘9999-12-31’ 3 字节
TIME 时间,格式为 ‘HH:MM:SS’。 ‘-838:59:59’ 到 ‘838:59:59’ 3 字节
DATETIME 日期和时间,格式为 ‘YYYY-MM-DD HH:MM:SS’。 ‘1000-01-01 00:00:00’ 到 ‘9999-12-31 23:59:59’ 8 字节
TIMESTAMP 时间戳,自1970年1月1日起的秒数(UNIX时间戳),UTC时区。 ‘1970-01-01 00:00:01’ 到 ‘2038-01-19 03:14:07’ 4 字节
YEAR 年份,格式为 ‘YYYY’。 1901 到 2155 1 字节
2.4.4 二进制类型

MySQL中的二进制类型主要用于存储二进制数据,例如图片、音频、视频等。以下是MySQL中常见的二进制类型及其描述:

类型 描述 范围和大小
BINARY(n) 固定长度的二进制字符串,最多255个字节。 0 到 255 字节
VARBINARY(n) 变长二进制字符串,最多65535个字节。 0 到 65532 字节
TINYBLOB 短二进制数据,最多255个字节。 0 到 255 字节
BLOB 二进制数据,最多65535个字节。 0 到 65535 字节
MEDIUMBLOB 中等长度二进制数据,最多16777215个字节。 0 到 16777215 字节
LONGBLOB 长二进制数据,最多4294967295个字节。 0 到 4294967295 字节
2.4.5其他类型

除了字符串、日期时间和二进制类型外,MySQL还支持其他几种重要的数据类型:

  1. 数值类型:包括整数(如INT、BIGINT)和浮点数(如FLOAT、DOUBLE),用于存储数值数据。整数类型适合存储整数值,而浮点数类型适合存储带有小数点的数值。
  2. 布尔类型:MySQL支持BOOLEAN类型,尽管它本质上被解释为TINYINT(1)。用于存储逻辑值,可以是TRUE或FALSE。
  3. 枚举类型:ENUM类型允许将数据存储为预定义的字符串值列表中的一个。它适合存储仅限于有限选项的数据,例如性别或状态。
  4. 集合类型:SET类型也类似于ENUM,但允许存储多个预定义字符串值中的一个或多个组合。适合于具有多个选项的数据,但每个实例可能具有不同的组合。
  5. 空间数据类型:MySQL支持用于存储和处理空间数据的空间数据类型,例如点、线、多边形等,通过SPATIAL索引可以进行高效的空间查询。

3 数据库语句的基本操作

SQL语句可以执行各种操作,包括数据查询、插入、更新和删除等。以下是SQL中常见的基本操作示例:

3.1. 查询数据

SELECT column1, column2, ...
FROM table_name
WHERE condition;

示例:

SELECT * FROM users WHERE age > 25;

3.2 插入数据

INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);

示例:

INSERT INTO users (name, age, email) VALUES ('John Doe', 30, '[email protected]');

3.3 更新数据

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

示例:

UPDATE users SET age = 31 WHERE name = 'John Doe';

3.4 删除数据

DELETE FROM table_name
WHERE c
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

超维Ai编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值