目录
3. DDL(Data Definition Language 数据定义语言)
4. DML(Data Manipulation Language 数据操纵语言)
5. DCL(Data Control Language 数据控制语言)
1. MySQL 安装
1.1 Windows 10 安装
步骤:
-
下载 MySQL Installer
-
访问 MySQL 官方网站。
-
选择适合 Windows 的安装程序(MySQL Installer)。
-
-
运行安装程序
-
下载完成后,双击安装程序并运行。
-
选择“自定义安装”(Custom)或“完整安装”(Full),建议选择“自定义安装”以便灵活配置。
-
-
配置 MySQL
-
在安装过程中,选择“服务器配置”(Server Configuration)。
-
设置 MySQL 的用户名和密码(默认用户名为
root
)。 -
配置端口号(默认为
3306
)。 -
完成安装向导。
-
-
验证安装
-
打开命令提示符,输入以下命令验证 MySQL 是否安装成功:
mysql -u root -p
-
输入密码后,如果成功进入 MySQL 命令行,说明安装成功。
-
1.2 Ubuntu 安装
步骤:
-
更新软件包列表
-
打开终端,运行以下命令:
sudo apt update
-
-
安装 MySQL Server
-
运行以下命令安装 MySQL:
sudo apt install mysql-server
-
-
安全配置
-
安装完成后,运行以下命令进行安全配置:
sudo mysql_secure_installation
-
按提示设置 root 用户密码,移除匿名用户,禁止远程 root 登录等。
-
-
验证安装
-
运行以下命令验证 MySQL 是否安装成功:
sudo mysql -u root -p
-
2. Navicat 客户端连接
步骤:
-
下载 Navicat
-
访问 Navicat 官方网站,下载适用于 Windows 或 Ubuntu 的版本。
-
-
安装 Navicat
-
下载完成后,运行安装程序并按照提示完成安装。
-
-
连接 MySQL 数据库
-
打开 Navicat,点击“新建连接”。
-
选择“MySQL”作为数据库类型。
-
填写连接名称、主机名/IP(如
localhost
或服务器IP)、端口号(默认为3306
)、用户名(如root
)和密码。 -
点击“测试连接”验证连接是否成功。
-
3. DDL(Data Definition Language 数据定义语言)
常用命令:
-
创建数据库
CREATE DATABASE mydatabase;
-
切换数据库
USE mydatabase;
-
创建表
CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50) NOT NULL, email VARCHAR(100) UNIQUE, age INT );
-
修改表结构
ALTER TABLE users ADD COLUMN phone VARCHAR(20); ALTER TABLE users DROP COLUMN phone; ALTER TABLE users MODIFY COLUMN age INT NOT NULL;
-
删除表
DROP TABLE users;
-
删除数据库
DROP DATABASE mydatabase;
4. DML(Data Manipulation Language 数据操纵语言)
常用命令:
-
插入数据
INSERT INTO users (name, email, age) VALUES ('Alice', 'alice@example.com', 25);
-
更新数据
UPDATE users SET age = 26 WHERE name = 'Alice';
-
删除数据
DELETE FROM users WHERE name = 'Alice';
-
查询数据
SELECT * FROM users; SELECT name, age FROM users WHERE age > 20;
5. DCL(Data Control Language 数据控制语言)
常用命令:
-
授权
GRANT SELECT, INSERT ON mydatabase.users TO 'username'@'localhost';
-
撤销权限
REVOKE SELECT ON mydatabase.users FROM 'username'@'localhost';
-
创建用户
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
-
删除用户
DROP USER 'newuser'@'localhost';
6. 外键
示例:
-
创建表并设置外键
CREATE TABLE orders ( order_id INT AUTO_INCREMENT PRIMARY KEY, user_id INT, amount DECIMAL(10, 2), FOREIGN KEY (user_id) REFERENCES users(id) );
-
插入数据时,外键必须引用主表中存在的值
INSERT INTO orders (user_id, amount) VALUES (1, 100.00);
7. 查询语句
常用查询:
-
基本查询
SELECT * FROM users WHERE age > 20;
-
排序
SELECT * FROM users ORDER BY age ASC;
-
分组与聚合
SELECT age, COUNT(*) FROM users GROUP BY age;
-
连接查询
SELECT users.name, orders.amount FROM users JOIN orders ON users.id = orders.user_id;
8. 数据类型
常见数据类型:
-
数值类型
-
INT
:整数 -
DECIMAL
:定点数(小数)
-
-
字符串类型
-
VARCHAR
:变长字符串 -
TEXT
:长文本
-
-
日期和时间类型
-
DATE
:日期 -
DATETIME
:日期和时间
-
-
布尔类型
-
TINYINT
(通常用 0 和 1 表示布尔值)
-
9. 扩展知识
(1) 视图
创建视图:
CREATE VIEW user_summary AS
SELECT name, age, COUNT(*) AS order_count
FROM users JOIN orders ON users.id = orders.user_id
GROUP BY users.id;
查询视图:
SELECT * FROM user_summary;
(2) 函数与存储过程
创建存储过程:
DELIMITER //
CREATE PROCEDURE GetUsers()
BEGIN
SELECT * FROM users;
END //
DELIMITER ;
调用存储过程:
CALL GetUsers();
(3) 索引
创建索引:
CREATE INDEX idx_name ON users(name);
查看索引:
SHOW INDEX FROM users;
(4) 存储引擎
常见存储引擎:
-
InnoDB:支持事务、外键。
-
MyISAM:不支持事务,读取速度快。
查看表的存储引擎:
SHOW TABLE STATUS;
(5) 事务
事务操作:
START TRANSACTION;
INSERT INTO users (name, email, age) VALUES ('Bob', 'bob@example.com', 30);
INSERT INTO orders (user_id, amount) VALUES (LAST_INSERT_ID(), 200.00);
COMMIT;
10. PyMySQL 使用
安装 PyMySQL:
pip install pymysql
示例代码:
import pymysql
# 连接到 MySQL 数据库
connection = pymysql.connect(
host='localhost',
user='root',
password='123456',
database='mydatabase',
charset='utf8mb4'
)
try:
# 创建游标对象
cursor = connection.cursor()
# 创建表
cursor.execute("""
CREATE TABLE IF NOT EXISTS users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE,
age INT
)
""")
# 插入数据
cursor.execute("INSERT INTO users (name, email, age) VALUES (%s, %s, %s)",
('Alice', 'alice@example.com', 25))
# 查询数据
cursor.execute("SELECT * FROM users")
result = cursor.fetchall()
for row in result:
print(row)
# 提交事务
connection.commit()
except Exception as e:
print(f"发生错误:{e}")
connection.rollback()
finally:
# 关闭连接
cursor.close()
connection.close()
总结
以上内容涵盖了 MySQL 的基本安装、操作以及一些高级特性。通过这些知识,你可以快速入门 MySQL 并开始使用它进行数据库开发。