1. MySQL简介
什么是MySQL?
MySQL是一个开源的关系型数据库管理系统(RDBMS),广泛应用于Web应用程序的数据存储。它使用结构化查询语言(SQL)来管理和操作数据。
MySQL的特点
- 开源免费:MySQL是开源软件,可以免费使用。
- 跨平台:支持Windows、Linux、macOS等多种操作系统。
- 高性能:支持高并发访问,处理速度快。
- 易用性:语法简单,学习成本低。
2. MySQL安装与配置
安装MySQL
- Windows:从MySQL官网下载安装包,按照安装向导完成安装。
- Linux:使用包管理器安装,例如:
sudo apt-get install mysql-server
- macOS:使用Homebrew安装:
brew install mysql
启动MySQL服务
- Windows:通过服务管理器启动MySQL服务。
- Linux/macOS:使用以下命令启动服务:
sudo systemctl start mysql
登录MySQL
mysql -u root -p
输入密码后即可进入MySQL命令行。
3. MySQL基础操作
创建数据库
CREATE DATABASE mydb;
使用数据库
USE mydb;
查看所有数据库
SHOW DATABASES;
删除数据库
DROP DATABASE mydb;
4. 数据类型
常用数据类型
- 整数类型:
INT
、TINYINT
、SMALLINT
、BIGINT
- 浮点数类型:
FLOAT
、DOUBLE
、DECIMAL
- 字符串类型:
CHAR
、VARCHAR
、TEXT
- 日期时间类型:
DATE
、TIME
、DATETIME
、TIMESTAMP
5. 表的操作
创建表
CREATE TABLE students (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
age INT,
gender ENUM('Male', 'Female'),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
查看表结构
DESC students;
插入数据
INSERT INTO students (name, age, gender) VALUES ('Alice', 20, 'Female');
查询数据
SELECT * FROM students;
更新数据
UPDATE students SET age = 21 WHERE name = 'Alice';
删除数据
DELETE FROM students WHERE name = 'Alice';
删除表
DROP TABLE students;
6. 约束
常用约束
- 主键约束(PRIMARY KEY):唯一标识表中的每一行。
- 唯一约束(UNIQUE):确保列中的值唯一。
- 非空约束(NOT NULL):确保列中的值不为空。
- 外键约束(FOREIGN KEY):确保列中的值在另一个表中存在。
示例
CREATE TABLE orders (
order_id INT PRIMARY KEY AUTO_INCREMENT,
product_name VARCHAR(100) NOT NULL,
user_id INT,
FOREIGN KEY (user_id) REFERENCES users(id)
);
7. 索引
什么是索引?
索引是一种数据结构,用于加快数据库查询的速度。
创建索引
CREATE INDEX idx_name ON students (name);
删除索引
DROP INDEX idx_name ON students;
8. 事务
什么是事务?
事务是一组SQL语句的集合,要么全部执行成功,要么全部失败。事务具有ACID特性:
- 原子性(Atomicity):事务是不可分割的最小单位。
- 一致性(Consistency):事务执行前后数据库的状态必须一致。
- 隔离性(Isolation):多个事务并发执行时互不干扰。
- 持久性(Durability):事务提交后对数据库的修改是永久的。
事务操作
START TRANSACTION;
INSERT INTO students (name, age) VALUES ('Bob', 22);
UPDATE students SET age = 23 WHERE name = 'Alice';
COMMIT; -- 提交事务
-- ROLLBACK; -- 回滚事务
9. 常用SQL语句
查询语句
SELECT * FROM students WHERE age > 20;
排序
SELECT * FROM students ORDER BY age DESC;
分组
SELECT gender, COUNT(*) FROM students GROUP BY gender;
连接查询
SELECT students.name, orders.product_name
FROM students
JOIN orders ON students.id = orders.user_id;
子查询
SELECT name FROM students WHERE age = (SELECT MAX(age) FROM students);
10. 备份与恢复
备份数据库
mysqldump -u root -p mydb > mydb_backup.sql
恢复数据库
mysql -u root -p mydb < mydb_backup.sql
11. 常用工具
MySQL Workbench
MySQL官方提供的图形化管理工具,支持数据库设计、SQL开发、数据管理等功能。
phpMyAdmin
基于Web的MySQL管理工具,适合初学者使用。
12. 学习资源推荐
- 官方文档:MySQL Documentation
- 在线教程:
- 书籍:
- 《MySQL必知必会》
- 《高性能MySQL》
总结
主题 | 描述 |
---|---|
安装与配置 | 安装MySQL并启动服务,登录MySQL命令行。 |
数据库操作 | 创建、使用、查看、删除数据库。 |
表操作 | 创建、查看、插入、更新、删除表数据。 |
数据类型 | 常用数据类型及其使用场景。 |
约束 | 主键、唯一、非空、外键等约束的使用。 |
索引 | 创建和删除索引,提高查询效率。 |
事务 | 事务的ACID特性及其操作。 |
SQL语句 | 常用SQL语句,包括查询、排序、分组、连接、子查询等。 |
备份与恢复 | 使用mysqldump 备份和恢复数据库。 |
工具 | MySQL Workbench和phpMyAdmin等常用工具。 |
文章作者:zhexian
文章标题:MySQL基础教程
文章链接:https://zhexiange.com/jsbj/25.html
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明来自zhexian !
文章标题:MySQL基础教程
文章链接:https://zhexiange.com/jsbj/25.html
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明来自zhexian !
手机扫码阅读