MySQL命令包括登录与退出、数据库管理查看列表、创建数据库、删除数据库等操作。
MySQL命令是很多的,如果全面列出的话,篇幅较长,我在这里面只是罗列了一些常用的,供大家参考。
1. 登录与退出
登录 MySQL
mysql [OPTIONS]
mysql -uroot -p
选项说明示例-u指定用户名-u root-p提示输入密码(密码可跟在后面但不安全)-p1234 或 -p-h指定主机名(默认 localhost)-h 192.168.1.100-P指定端口(默认 3306)-P 3307--ssl启用 SSL 安全连接--ssl--socket指定套接字文件--socket=/tmp/mysql.sock--database登录后直接使用指定数据库--database=testdb
退出 MySQL
SQL> exit;
或:
SQL> quit;
2. 数据库管理
查看数据库列表
show databases;
创建数据库
CREATE DATABASE 数据库名 [OPTIONS];
CREATE DATABASE mydb DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
选项说明示例DEFAULT CHARACTER SET设置数据库的默认字符集DEFAULT CHARACTER SET utf8mb4DEFAULT COLLATE设置数据库的排序规则(与字符集匹配)DEFAULT COLLATE utf8mb4_general_ci
删除数据库
drop databases 数据库名;
使用指定数据库
USE 数据库名;
use mysql;
查看当前使用的数据库
SELECT DATABASE();
查看数据库大小
SELECT table_schema AS 数据库名,
ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS 大小_MB
FROM information_schema.tables
GROUP BY table_schema;
3. 表管理
查看当前数据库的所有表
SHOW TABLES;
查看表结构
DESC 表名;
或:
SHOW COLUMNS FROM 表名;
创建表
CREATE TABLE 表名 (
列名 数据类型 [约束条件],
...
) [OPTIONS];
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
选项说明示例ENGINE设置存储引擎(如 InnoDB、MyISAM)ENGINE=InnoDBDEFAULT CHARSET设置表的默认字符集DEFAULT CHARSET=utf8mb4AUTO_INCREMENT指定自增主键id INT AUTO_INCREMENT PRIMARY KEY
查看表的创建语句
SHOW CREATE TABLE 表名;
修改表结构
添加列:
ALTER TABLE 表名 ADD 列名 数据类型 [位置];
位置:FIRST(在最前),AFTER 列名(在指定列后)。
修改列:
ALTER TABLE 表名 MODIFY 列名 数据类型;
删除列:
ALTER TABLE 表名 DROP 列名;
重命名列:
ALTER TABLE 表名 CHANGE 原列名 新列名 数据类型;
删除表
DROP TABLE 表名;
清空表(保留结构)
TRUNCATE TABLE 表名;
4. 数据操作
插入数据
INSERT INTO 表名 (列名1, 列名2, ...) VALUES (值1, 值2, ...);
INSERT INTO users (name, email) VALUES ('Alice', 'liyb@example.com');
批量插入
INSERT INTO 表名 (列名1, 列名2) VALUES
(值1, 值2),
(值3, 值4),
(值5, 值6);
查询数据
SELECT 列名1, 列名2, ... FROM 表名 [WHERE 条件] [ORDER BY 列名 ASC|DESC] [LIMIT 偏移量, 行数];
SELECT * FROM users WHERE email LIKE '%example.com' ORDER BY created_at DESC LIMIT 10;
常用子句:
子句说明示例WHERE指定条件WHERE age > 30ORDER BY排序结果集ORDER BY name ASCLIMIT限制返回行数,支持偏移量LIMIT 5 OFFSET 10GROUP BY按列分组GROUP BY departmentHAVING筛选分组结果HAVING COUNT(*) > 1
更新数据
UPDATE 表名 SET 列名1=值1, 列名2=值2 WHERE 条件;
示例:
UPDATE users SET email='new_email@example.com' WHERE name='Alice';
删除数据
DELETE FROM 表名 WHERE 条件;
DELETE FROM users WHERE id=10;
5. 用户管理
创建用户
CREATE USER '用户名'@'主机' IDENTIFIED BY '密码';
CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'mypassword';
参数说明示例'用户名'用户名'testuser''主机'用户允许访问的主机(% 表示任意主机)'localhost' 或 '%''密码'用户密码'password123'
修改用户密码
ALTER USER '用户名'@'主机' IDENTIFIED BY '新密码';
ALTER USER 'testuser'@'localhost' IDENTIFIED BY 'newpassword123';
删除用户
DROP USER '用户名'@'主机';
授予权限
GRANT 权限列表 ON 数据库.表 TO '用户名'@'主机';
权限说明ALL PRIVILEGES授予所有权限SELECT允许读取表中的数据INSERT允许向表中插入数据UPDATE允许修改表中的数据DELETE允许删除表中的数据CREATE允许创建数据库和表DROP允许删除数据库和表
GRANT SELECT, INSERT ON mydb.* TO 'testuser'@'localhost';
撤销权限
REVOKE 权限列表 ON 数据库.表 FROM '用户名'@'主机';
REVOKE INSERT ON mydb.* FROM 'testuser'@'localhost';
刷新权限
FLUSH PRIVILEGES;
6. 性能优化
查看查询执行计划
EXPLAIN SELECT 查询语句;
EXPLAIN SELECT * FROM users WHERE email='test@example.com';
优化表
OPTIMIZE TABLE 表名;
查看慢查询
SHOW VARIABLES LIKE 'slow_query_log';
启用慢查询:
SET GLOBAL slow_query_log=1;
检查表
CHECK TABLE 表名;
修复表
REPAIR TABLE 表名;
来源:https://mp.weixin.qq.com/s/oSrjVG0giU5b1H2uVhCDLw
来源:本文内容搜集或转自各大网络平台,并已注明来源、出处,如果转载侵犯您的版权或非授权发布,请联系小编,我们会及时审核处理。
声明:江苏教育黄页对文中观点保持中立,对所包含内容的准确性、可靠性或者完整性不提供任何明示或暗示的保证,不对文章观点负责,仅作分享之用,文章版权及插图属于原作者。
Copyright©2013-2024 JSedu114 All Rights Reserved. 江苏教育信息综合发布查询平台保留所有权利
苏公网安备32010402000125 苏ICP备14051488号-3技术支持:南京博盛蓝睿网络科技有限公司
南京思必达教育科技有限公司版权所有 百度统计