MySQL 是一种广泛使用的关系型数据库管理系统,掌握其常用命令是进行数据库操作的基础
本文将介绍 MySQL 中常用的增删改查(CRUD)命令以及其他实用操作,帮助你快速上手 MySQL
同时,还会详细讨论在创建表时如何选择合适的字段类型
1. 数据库操作
创建数据库
CREATE DATABASE database_name;
示例:
CREATE DATABASE mydb;
删除数据库
DROP DATABASE database_name;
示例:
DROP DATABASE mydb;
切换数据库
USE database_name;
示例:
USE mydb;
查看所有数据库
SHOW DATABASES;
2. 表操作
创建表
在创建表时,选择合适的字段类型非常重要。以下是常见的字段类型及其适用场景:
-
整数类型
TINYINT
:小整数,范围 -128 到 127(有符号)或 0 到 255(无符号)SMALLINT
:较小整数,范围 -32768 到 32767(有符号)或 0 到 65535(无符号)INT
:常用整数类型,范围 -2147483648 到 2147483647(有符号)或 0 到 4294967295(无符号)BIGINT
:大整数,范围更大
示例:
id INT AUTO_INCREMENT PRIMARY KEY
-
浮点数类型
FLOAT
:单精度浮点数,适合存储小数DOUBLE
:双精度浮点数,精度更高DECIMAL
:精确小数,适合存储货币等需要高精度的数据
示例:
price DECIMAL(10, 2)
-
字符串类型
CHAR
:固定长度字符串,适合存储长度固定的数据(如国家代码)VARCHAR
:可变长度字符串,适合存储长度不固定的数据(如用户名)TEXT
:大文本数据,适合存储长文本(如文章内容)
示例:
name VARCHAR(50)
-
日期和时间类型
DATE
:存储日期,格式为YYYY-MM-DD
TIME
:存储时间,格式为HH:MM:SS
DATETIME
:存储日期和时间,格式为YYYY-MM-DD HH:MM:SS
TIMESTAMP
:存储时间戳,自动记录数据插入或更新时间
示例:
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
-
布尔类型
BOOLEAN
或BOOL
:存储布尔值(TRUE
或FALSE
)。
示例:
is_active BOOLEAN DEFAULT TRUE
创建表示例
CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(50) NOT NULL,email VARCHAR(100) UNIQUE,age TINYINT UNSIGNED,created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
删除表
DROP TABLE table_name;
示例:
DROP TABLE users;
查看表结构
DESCRIBE table_name;
示例:
DESCRIBE users;
查看所有表
SHOW TABLES;
3. 数据操作(增删改查)
插入数据(INSERT)
INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);
示例:
INSERT INTO users (name, email, age)
VALUES ('Alice', 'alice@example.com', 25);
查询数据(SELECT)
SELECT column1, column2, ...
FROM table_name
WHERE condition;
示例:
SELECT * FROM users;
SELECT name, email FROM users WHERE id = 1;
更新数据(UPDATE)
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
示例:
UPDATE users
SET email = 'alice_new@example.com'
WHERE id = 1;
删除数据(DELETE)
DELETE FROM table_name
WHERE condition;
示例:
DELETE FROM users
WHERE id = 1;
4. 条件查询与排序
条件查询(WHERE)
SELECT * FROM users WHERE age > 18;
排序(ORDER BY)
SELECT * FROM users ORDER BY name ASC; -- 升序
SELECT * FROM users ORDER BY age DESC; -- 降序
限制结果数量(LIMIT)
SELECT * FROM users LIMIT 10; -- 返回前 10 条记录
5. 表结构修改
添加列
ALTER TABLE table_name
ADD column_name datatype;
示例:
ALTER TABLE users
ADD age INT;
修改列
ALTER TABLE table_name
MODIFY column_name new_datatype;
示例:
ALTER TABLE users
MODIFY age TINYINT;
删除列
ALTER TABLE table_name
DROP COLUMN column_name;
示例:
ALTER TABLE users
DROP COLUMN age;
重命名表
RENAME TABLE old_table_name TO new_table_name;
示例:
RENAME TABLE users TO customers;
6. 索引操作
创建索引
CREATE INDEX index_name
ON table_name (column1, column2, ...);
示例:
CREATE INDEX idx_email
ON users (email);
删除索引
DROP INDEX index_name
ON table_name;
示例:
DROP INDEX idx_email
ON users;
7. 事务操作
开启事务
START TRANSACTION;
提交事务
COMMIT;
回滚事务
ROLLBACK;
8. 用户与权限管理
创建用户
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
示例:
CREATE USER 'admin'@'localhost' IDENTIFIED BY '123456';
授予权限
GRANT permission_type ON database_name.table_name TO 'username'@'host';
示例:
GRANT ALL PRIVILEGES ON mydb.* TO 'admin'@'localhost';
撤销权限
REVOKE permission_type ON database_name.table_name FROM 'username'@'host';
示例:
REVOKE ALL PRIVILEGES ON mydb.* FROM 'admin'@'localhost';
删除用户
DROP USER 'username'@'host';
示例:
DROP USER 'admin'@'localhost';
9. 备份与恢复
备份数据库
mysqldump -u username -p database_name > backup_file.sql
示例:
mysqldump -u root -p mydb > mydb_backup.sql
恢复数据库
mysql -u username -p database_name < backup_file.sql
示例:
mysql -u root -p mydb < mydb_backup.sql
总结
本文介绍了 MySQL 中常用的命令,涵盖了数据库操作、表操作、数据操作(增删改查)、条件查询、表结构修改、索引操作、事务管理、用户权限管理以及备份恢复等内容