您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# MySQL基础知识点整理
## 一、MySQL简介
### 1.1 什么是MySQL
MySQL是一个开源的关系型数据库管理系统(RDBMS),由瑞典MySQL AB公司开发,现属于Oracle旗下产品。它使用最常用的结构化查询语言SQL进行数据库操作。
主要特点:
- 开源免费(社区版)
- 性能高、可靠性好
- 支持跨平台(Windows/Linux/macOS等)
- 支持多种编程语言接口
- 支持多用户、多线程
### 1.2 MySQL版本
- 社区版(MySQL Community Server):免费开源
- 企业版(MySQL Enterprise Edition):收费,提供技术支持
- 集群版(MySQL Cluster)
当前主流版本:MySQL 5.7、MySQL 8.0(推荐使用8.0+版本)
## 二、MySQL安装与配置
### 2.1 Windows安装
1. 下载MySQL安装包(.msi)
2. 运行安装向导
3. 配置root密码
4. 选择服务启动类型
5. 完成安装
### 2.2 Linux安装(以Ubuntu为例)
```bash
# 更新软件包列表
sudo apt update
# 安装MySQL服务器
sudo apt install mysql-server
# 安全配置
sudo mysql_secure_installation
# 启动服务
sudo systemctl start mysql
配置文件位置: - Windows: my.ini - Linux: /etc/mysql/my.cnf
常用配置项:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
port=3306
character-set-server=utf8mb4
default-storage-engine=INNODB
mysql -u 用户名 -p
-- 创建用户
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
-- 授权
GRANT ALL PRIVILEGES ON database.* TO 'username'@'host';
-- 刷新权限
FLUSH PRIVILEGES;
-- 查看用户权限
SHOW GRANTS FOR 'username'@'host';
-- 撤销权限
REVOKE ALL PRIVILEGES ON database.* FROM 'username'@'host';
-- 删除用户
DROP USER 'username'@'host';
-- 查看所有数据库
SHOW DATABASES;
-- 创建数据库
CREATE DATABASE dbname CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 选择数据库
USE dbname;
-- 删除数据库
DROP DATABASE dbname;
常见数据类型: - 整数:TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT - 浮点数:FLOAT, DOUBLE, DECIMAL - 字符串:CHAR, VARCHAR, TEXT, BLOB - 日期时间:DATE, TIME, DATETIME, TIMESTAMP - 其他:ENUM, SET, JSON
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
email VARCHAR(100),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
status TINYINT DEFAULT 1
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 添加列
ALTER TABLE users ADD COLUMN phone VARCHAR(20) AFTER email;
-- 修改列
ALTER TABLE users MODIFY COLUMN phone VARCHAR(15);
-- 删除列
ALTER TABLE users DROP COLUMN phone;
-- 重命名表
RENAME TABLE users TO customers;
-- 单条插入
INSERT INTO users (username, password, email)
VALUES ('admin', '123456', 'admin@example.com');
-- 批量插入
INSERT INTO users (username, password, email) VALUES
('user1', '111111', 'user1@example.com'),
('user2', '222222', 'user2@example.com');
-- 基本查询
SELECT * FROM users;
-- 条件查询
SELECT username, email FROM users WHERE status = 1;
-- 排序
SELECT * FROM users ORDER BY created_at DESC;
-- 分页
SELECT * FROM users LIMIT 10 OFFSET 20; -- 第3页,每页10条
-- 分组
SELECT status, COUNT(*) FROM users GROUP BY status;
-- 连接查询
SELECT u.username, o.order_id
FROM users u
JOIN orders o ON u.id = o.user_id;
UPDATE users SET password = 'newpassword', status = 0 WHERE id = 1;
DELETE FROM users WHERE id = 1;
-- 清空表(不可恢复)
TRUNCATE TABLE users;
-- 创建普通索引
CREATE INDEX idx_username ON users(username);
-- 创建唯一索引
CREATE UNIQUE INDEX idx_email ON users(email);
-- 创建组合索引
CREATE INDEX idx_name_status ON users(username, status);
SHOW INDEX FROM users;
DROP INDEX idx_username ON users;
START TRANSACTION;
-- 执行SQL语句
COMMIT; -- 或 ROLLBACK;
设置隔离级别:
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
mysqldump -u root -p dbname > backup.sql
SELECT * INTO OUTFILE '/tmp/users.csv'
FIELDS TERMINATED BY ','
FROM users;
mysql -u root -p dbname < backup.sql
# 缓冲区设置
innodb_buffer_pool_size = 4G
key_buffer_size = 256M
# 连接数设置
max_connections = 200
thread_cache_size = 10
# 日志设置
slow_query_log = 1
long_query_time = 2
建议使用utf8mb4字符集,支持完整的Unicode(包括emoji)
SET GLOBAL time_zone = '+8:00';
本文整理了MySQL的基础知识点,适合初学者快速了解MySQL的核心概念和基本操作。实际应用中,还需要结合具体业务场景深入学习高级特性和优化技巧。 “`
注:本文约2500字,采用Markdown格式编写,包含代码块、列表、标题等格式。内容涵盖MySQL安装、配置、基本操作、CRUD、索引、事务、存储引擎等核心知识点。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。