1. Mysql是干啥的,有什么作用?
MySQL 是一种开源的关系型数据库管理系统(RDBMS),主要用于存储、管理和检索数据。它基于结构化查询语言(SQL)来操作数据,广泛应用于网站开发、企业系统、数据分析等领域。
MySQL 的主要作用包括:
数据存储:将结构化的数据以表格的形式存储在数据库中。
数据管理:提供增删改查(CRUD)功能,支持对数据进行高效的操作和管理。
数据安全:通过用户权限管理机制,确保只有授权用户才能访问或修改数据。
数据一致性:支持事务处理,确保多个操作要么全部成功,要么全部失败,保持数据的完整性。
多用户支持:允许多个用户同时访问数据库,并通过锁机制保证并发访问的安全性。
跨平台支持:可以在多种操作系统上运行,如 Windows、Linux 和 macOS。
MySQL 的典型应用场景:
网站后台数据库:用于存储用户信息、文章内容、订单记录等。
企业内部系统:如人力资源管理系统(HRMS)、客户关系管理系统(CRM)等。
数据分析:结合其他工具进行报表生成和业务智能分析。
日志记录:存储应用程序的日志信息以便后续审计和排查问题。
总之,MySQL 是一个强大而灵活的数据库解决方案,适用于需要可靠、高性能数据处理的各种应用需求。
2. Mysql有哪些常用版本,LTS版本是什么意思,为什么推荐使用LTS版本
MySQL 的常用版本主要包括以下几类:
1. 社区版(Community Edition)
这是 MySQL 官方提供的免费开源版本,适用于大多数用户。它包括最新的功能和改进,但没有官方的技术支持。
优点:免费、更新频繁、包含最新特性。
缺点:无官方技术支持,适合技术能力强的团队或开发环境。
2. 企业版(Enterprise Edition)
这是 MySQL 的商业版本,提供官方的技术支持和服务。适用于对稳定性、安全性和技术支持有较高要求的企业级应用。
优点:官方技术支持、安全性高、适合生产环境。
缺点:需要付费,适合预算充足的企业。
3. 长期支持版本(LTS, Long-Term Support)
LTS 是一种特殊类型的版本,官方承诺提供长期的支持和维护。通常只修复关键的安全漏洞和严重 bug,不会引入新功能。
优点:
稳定性强:经过充分测试,适合生产环境。
安全性高:官方会持续提供安全补丁。
维护周期长:通常支持几年时间,减少频繁升级的压力。
适用场景:企业级生产环境,尤其是对系统稳定性要求极高的场景。
4. GA 版本(General Availability)
这是正式发布的稳定版本,适合用于生产环境。与 LTS 不同的是,GA 版本可能不会提供长期支持。
为什么推荐使用 LTS 版本?
长期支持
LTS 版本的维护周期较长,官方会持续发布安全更新和重要 bug 修复,确保系统在较长时间内保持稳定和安全。降低升级频率
非 LTS 版本可能每隔几个月就会有新的版本发布,频繁升级可能会带来兼容性问题。而 LTS 版本可以长期使用,减少升级带来的风险和工作量。适合生产环境
对于企业级应用来说,系统的稳定性和可维护性至关重要。LTS 版本经过更严格的测试,更适合部署在生产环境中。安全性保障
官方会为 LTS 版本提供持续的安全更新,帮助你抵御潜在的安全威胁。
3. 有哪些可以替代MySQL的服务
4. 任意方法安装LTS版本的Mysql
Ubuntu使用apt安装
5. mysql的配置文件在哪里,其默认端口是多少。
/etc/mysql/mysql.conf.d/mysqld.cnf
默认端口在3360
6. 连接到Mysql,并查看mysql的版本
Mysql登录使用
mysql -u root -p然后通过命令查看
SELECT VERSION();
7. Mysql中什么是库、表、字段,对比excel,库、表、字段相当于什么
8. 什么是字符集,myslq的默认字符集是什么,应该使用什么字符集
字符集 是一组字符与它们对应的编码规则集合。它决定了数据库可以存储哪些字符,比如英文、数字、中文、表情符号等。
在 MySQL 中,字符集决定了以下内容的处理方式:
数据库中存储的文本数据
表中的字段(如
VARCHAR,TEXT)客户端与服务器之间的通信
MySQL 支持多种字符集,常见的有:
5.x默认为latin1字符集,而8.0+则是uft8
推荐使用:utf8mb4 + utf8mb4_unicode_ci
原因如下:
9. 指定字符集utf8mb4来创建一个库
CREATE DATABASE test_db
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
10. 设置root账号, 允许其远程登录
设置Root账号权限
ALTER USER 'root'@'localhost' IDENTIFIED BY '*******';
CREATE USER 'root'@'%' IDENTIFIED BY '******';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;更改Mysql配置文件
/etc/mysql/mysql.conf.d/mysqld.cnf 中的
bind-address = 127.0.0.1改为bind-address = 0.0.0.0
11. 安装DBeaver(或其他工具)远程连接到上面的Mysql

12. Mysql有哪些常用字段类型,其占用的存储是多少字节
1. 数值类型
2. 日期与时间类型
3. 字符串类型
4. 二进制类型
5. 枚举和集合类型
6. JSON 类型(MySQL 5.7+)
13. 什么是自增字段,什么是主键,什么是唯一键,什么是联合主键
1. 自增字段(AUTO_INCREMENT)
定义:
自增字段是一个可以自动递增的整数类型字段,通常用于生成唯一的行标识符。
特点:
只能是整数类型(如
INT,BIGINT)每次插入新记录时,如果不指定值,系统会自动分配一个比当前最大值大 1 的值
通常与主键结合使用
2. 主键(PRIMARY KEY)
定义:
主键是表中每条记录的唯一标识,用于确保数据完整性,并且每个表只能有一个主键。
特点:
值必须唯一且非空(
NOT NULL)一个表只能有一个主键(但可以是多个字段组成的联合主键)
通常设置为自增字段
3. 唯一键(UNIQUE KEY)
定义:
唯一键用于保证某列或多列组合中的值在整个表中是唯一的,但允许有 NULL 值(不同数据库处理方式略有不同)。
特点:
可以为多个字段创建唯一约束
允许
NULL值(但只允许一个NULL,具体取决于数据库实现)一个表可以有多个唯一键
4. 联合主键(Composite Primary Key)
定义:
联合主键是指由两个或多个字段共同组成的主键,这些字段的组合值在整个表中必须唯一。
特点:
多个字段一起构成主键
所有字段都不能为空
更适合业务逻辑中有自然唯一性的情况(如订单号 + 商品号)
14. 创建一个表,字段有id,姓名、生日、性别。
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
birthday DATE,
gender ENUM('男', '女')
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
15. 如何对表进行增删改查,命令是什么?
1. 增:添加数据(INSERT)
用于向表中插入新记录。
语法:
INSERT INTO 表名 (字段1, 字段2, ...) VALUES (值1, 值2, ...);2. 删:删除数据(DELETE)
用于从表中删除记录。
语法:
DELETE FROM 表名 WHERE 条件;3. 改:更新数据(UPDATE)
用于修改表中的已有记录。
语法:
UPDATE 表名 SET 字段1 = 值1, 字段2 = 值2 WHERE 条件;4. 查:查询数据(SELECT)
用于从表中查询记录。
语法:
SELECT 字段列表 FROM 表名 [WHERE 条件];注:如果不加where则会对所有表进行操作。
16. where在SQL语句中有什么作用,有人会在where后添加1=1或者1=0的筛选条件,有什么作用
1、在 SQL 查询中,WHERE 子句用于 筛选符合条件的数据行,它决定了查询结果集中只包含满足指定条件的记录。
2、为什么有人会在 WHERE 后加 1=1 或 1=0:
这是 SQL 编程中的一个技巧,常用于动态拼接 SQL 语句或调试。
1. WHERE 1=1
作用:
始终为真,表示不进行任何过滤,相当于没有 WHERE 条件。
当你需要动态拼接 SQL 语句时,方便后续添加 AND condition 而不用判断是否已有 WHERE。
2. WHERE 1=0
作用:
始终为假,表示不返回任何记录。
使用场景:
调试 SQL 结构时测试语法是否正确但不想真正执行查询;
获取表结构而不获取数据;
构建模板时预留位置,后期替换真实条件。
17. 执行删除内容时忘记添加筛选条件会怎么样?如何防止这一操作
18. 往此表中插入3条数据,修改每条数据的一些内容,通过查询语句获取全部数据,最后删除前两条数据
插入数据:
INSERT INTO users (name, birthday, gender) VALUES
('张三', '1990-05-20', '男'),
('李四', '1985-10-15', '女'),
('王五', '1992-03-10', '男');修改数据:
UPDATE users SET birthday = '1991-01-01' WHERE name = '张三';
UPDATE users SET name = '李思思' WHERE name = '李四';
UPDATE users SET gender = '女' WHERE name = '王五';删除数据:
DELETE FROM users WHERE id IN (
SELECT id FROM (
SELECT id FROM users ORDER BY id LIMIT 2
) AS tmp
);