一篇带你熟悉MySQL

这篇博客详细介绍了MySQL的基础知识,包括SQL语法、DDL和DML操作、DQL查询,以及进阶内容如存储引擎(InnoDB、MyISAM、Memory的特点)、索引类型与优化、事务和锁机制。内容深入浅出,适合数据库初学者和开发者学习MySQL的全面知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MySQL

MySQL基础

SQL语法

  1. SQL语句可以单行或者多行书写,以分好结尾。
  2. SQL语句可以使用空格/缩进来增强语句的可读性。
  3. MySQL数据库的SQL语句部分大小写,关键字建议使用大写。
  4. 注释:
    • 单行注释:–注释内容或者#注释内容(Mysql特有)
    • 多行注释:/* 注释内容 */

SQL语句分类

分类 全称 说明
DDL Date Definition language 数据库定义语言,用来定义数据库对象(数据库,表,字段)
DML Date Manipulation Language 数据库操作语言,用来对数据库表中的数据进行增删改
DQL Date Query Language 数据库查询语言,用来查询数据库中表的记录
DCL Date Control Language 数据库操作语言,用来创建数据库对象,控制数据库的访问权限

DDL数据库操作

查询
  1. 查询所有数据库

    SHOW DATABASES;
    
  2. 查询当前使用数据库

    SHOW DATABASE();
    
创建
CREATE DATABASE [IF NOT EXISTS] 数据库名[DEFAULT CHARSET 字符集]COLLATE [排序规则]
删除
DROP DATABASE[ IF EXISTS]数据库名;
使用
USE 数据库名;

DDL表操作

查询
  1. 查询当前数据库所有表

    SHOW TABLES;
    
  2. 查询表结构

    DESC 表名;
    
  3. 查询指定表的建表语句

    SHOW CREATE TABLE 表名;
    
创建
CREATE TABLE 表名(
	字段1 字段1类型[COMMENT 字段1注解],
	字段2 字段2类型[COMMENT 字段2注解],
	字段3 字段1类型[COMMENT 字段3注解],
    ……
	字段n 字段n类型[COMMENT 字段n注解]
)[COMMENT 表注解];
数据类型

MySQL中的数据类型有很多,主要分为三类:数值类型、字符串类型、日期时间类型。

类型 大小 有符号(SIGNED)范围 无符号(UNSIGNED)范围 描述
TINYINT 1 byte (-128,127) (0,255) 小整数值
SNALLINT 2 bytes (-32768,32767) (0,65535) 大整数值
MEDIUMINT 3 bytes (-8388608,8388607) (0,16777215) 大整数值
INT或INTEGER 4 bytes (-2147483648,2147683647) (0,4294967295) 大整数值
BIGINT 8 bytes (-263,263-1) (0,2^64-1) 极大整数值
FLOAT 4 bytes (-3.402823466 E+38,3.402823466351 E+38) 0和(1.175494351 E-38,3.402823466 E+38) 单精度浮点数值
DOUBLE 8 bytes (-1.7976931348623157 E+308,1.7976931348623157 E+308) 0和(2.2250738585072014 E-308,1.7976931368623157 E+308) 双精度浮点数值
DECIMAL 依赖于M(精度)和D(标度)的值 依赖于M(精度)和D(标度)的值 小数值(精确定点数)
字符串类型
类型 大小 描述
CHAR 0-255 bytes 定长字符串
VARCHAR 0-65535 bytes 变长字符串
TINYBLOB 0-255 bytes 不超过255个字节的二进制数据
TINYTEXT 0-255 bytes 短文本字符串
BLOB 0-65 535 bytes 二进制形式的长文本数据
TEXT 0-65 535 bytes 长文本数据
MEDIUMBLOB 0-16777215 bytes 二进制形式的中等长度文本数据
MEDIUMTEXT 0-16777215 bytes 中等长度文本数据
LONGBLOB 0-4 294 967 295 bytes 二进制形式的极大文本数据
LONGTEXT 0-4 294 967 295 bytes 极大文本数据
日期时间类型
类型 大小 范围 格式 描述
DATE 3 1000-01-01至9999-12-31 YYYY-MM-DD 日期值
TIME 3 -838:59:59至838:59:59 HH:MM:SS 时间值或持续时间
YEAR 1 1901至2155 YYYY 年份值
DATETIME 8 1000-01-01 00:00:00至9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合时间和日期值
TIMESTAMP 4 1970-01-01 00:00:01至2038-01-19 03:14:07 YYYY-MM-DD HH:MM:SS 混合时间和日期值、时间戳
修改
  1. 添加字段

    ALTER TABLE 表名 ADD 字段名 类型(长度)[COMMENT 注解][约束];
    
  2. 修改数据类型

    ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);
    
  3. 修改字段名和数据类型

    ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度)[COMMENT 注释][约束];
    
  4. 删除字段

    ALTER TABLE 表名 DROP 字段名;
    
  5. 修改表名

    ALTER TABLE 表名 RENAME TO 新表名;
    
  6. 删除表

    DROP TABLE [IF EXISTS] 表名;
    
  7. 删除指定表时,并重新创建该表

    TRUNCATE TABLE 表名;
    

DML操作

DML英文全称是Data Mainpulation Language(数据操作语言),用来对数据库中表的数据记录进行增删改操作

添加数据(INSEERT)
  1. 给指定字段添加数据

    INSERT INTO 表名(字段名1,字段名2,)VALUES(1,2^)
    
  2. 给所有字段添加数据

    INSERT INTO 表名 VALUES(1,2,…);
    
  3. 批量添加数据

    INSERT INTO 表名(字段名1,字段名2,)VALUES(1,2),(1,2),(1,2);
    
    INSERT INTO 表名 VALUES(1,2),(1,2),(1,2);
    

注意:

  • 插入数据时,试订单字段顺序需要和值的顺序一一对应。
  • 字符串和日期型数据应该包含在引号中。
  • 插入的数据大小,应该在字段的规定范围内。
修改数据(UPDATE)

修改基本语法

Update 表名 SET 字段名1=1,字段名2=2…… [where 条件];

注意:修改语句的条件可以有,也可以没有,如果没有条件,则会修改整张表的所有数据

删除数据(DELETE)

删除基本语法

DELETE FROM 表名 [where 条件]

注意:

  • DELETE语句的条件可以有,也可以没有,如果没有条件,则会删除整张表的所有数据。
  • DELETE语句不能删除某个字段的值(可以使用update)

DQL操作

DQL英文全称是Data Query Language(数据查询语言),数据查询语言,用来查询数据库中标的记录。

DQL查询语法
SELECT			第四步执行
	字段列表
FROM 			第一步执行
	表名列表
WHERE 			第二步执行
	条件列表
GROUP BY		第三步执行
	分组字段列表
HAVING 			第三步执行
	分组后条件列表
ORDER BY		第五步执行
	排序字段列表
LIMIT			第六步执行
	分页参数
  • 基本查询
    • 1.查询多个字段
    SELECT 字段1,字段2,字段3… FROM 表名 ;
    
    SELECT * FROM 表名;
    
    • 2.设置别名
    SELECT 字段1[AS 别名1],字段2[AS 别名2]FROM 表名;
    
    • 3.去除重复记录
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值