MySQL数据库管理 - 详解
2026-01-28 09:26 tlnshuju 阅读(5) 评论(0) 收藏 举报目录
前言:
上次和读者们分享了关于数据库的相关概念以及编译安装操作,今天我将对数据库管理的相关命令和运行做一个讲解。
一.数据库基本操作
1.查看数据库信息
显示当前 MySQL 服务器上所有数据库列表
SHOW DATABASES;
2.切换数据库
切换当前操作的数据库
USE 数据库名;
3.查看数据库中的表
显示当前数据库或指定数据库的所有表
SHOW TABLES;
SHOW TABLESIN 数据库名;
4.查看表结构
DESCRIBE表名;
输出结果:
Field:字段名称
Type:字段类型
Null:是否允许为空
Key:是否是主键(PRI)、唯一键(UNI)或索引(MUL)
Default:默认值
Extra:额外属性(如auto_increment)
二.常用数据类型

注意事项:
CHAR 存入长度不足时补空格,超出指定长度低版本截取,高版本报错
主键唯一,可由多个字段组成(联合主键)
三.数据库文件存储结构
MySQL 数据目录: /usr/local/mysql/data
每个数据库对应一个子目录,每个表对应若干文件:
MyISAM: .frm (表结构)、.MYD (数据)、MYI (索引)
InnoDB:
独享表空间:.ibd 记录(每表一个记录)
共享表空间:ibdata文件(多个表共用)
四.SQL 语句分类

五.DDL 操作(数据库和表管理)
1.创建数据库
CREATEDATABASE数据库名;
2.创建数据表
CREATE TABLE表名 (
字段1 数据类型 [约束条件],
字段2 数据类型 [约束条件],
...
PRIMARY KEY (主键字段)
);
create tablezcx
示例:
CREATEDATABASE szsx_school;
USE szsx_school;
CREATE TABLEyjs0805 (
id INT NOT NULL,
name CHAR(10) NOT NULL,
score DECIMAL(5,2),
passwdCHAR(48) DEFAULT'',
PRIMARY KEY (id)
);
DESC yjs0805;
NOT NULL:不能为空
DEFAULT:默认值
PRIMARY KEY:主键
UNIQUE KEY:唯一键
AUTO_INCREMENT:自增长字段
3.删除表
DROP TABLE表名;
DROP TABLE数据库名.表名; -- 不切换数据库时使用
4.删除数据库
DROP DATABASE数据库名;
5.修改表结构(ALTER)
-- 修改表名
ALTER TABLE旧表名 RENAME新表名;
-- 增加字段
ALTER TABLE表名 ADD 字段名 数据类型[约束];
-- 修改字段
ALTER TABLE表名 CHANGE旧列名 新列名 数据类型[约束];
ALTER TABLE表名 MODIFY COLUMN字段名 数据类型;
-- 删除字段
ALTER TABLE表名 DROP 字段名;
六.DML 操作(表数据管理)
1.插入数据
INSERT INTO表名(字段1,字段2,...)VALUES(值1, 值2, ...);
2.更新数据
UPDATE表名 SET 字段1=值1[,字段2=值2] WHERE 条件;
3.删除数据
DELETE FROM表名 WHERE 条件;
4.清空表
-- 方法1: DELETE
DELETE FROM表名;
-- 方法2: TRUNCATE
TRUNCATETABLE 表名;
DELETE可带 WHERE 条件,可回滚,速度慢
TRUNCATE不可回滚,速度快,ID 自增重置
七.DQL 执行(内容查询)
1.查询数据
SELECT字段1,字段2 FROM 表名 WHERE 条件;
SELECT* FROM 表名; -- 查询所有字段
2.限制查询结果
SELECT* FROM 表名 LIMIT 起始行, 查询条数;
SELECT* FROM 表名 LIMIT 2; -- 显示前2行
SELECT* FROM 表名 LIMIT 2,3; -- 从第2行开始显示3行
3.竖向显示结果
SELECT* FROM 表名\G
八.表高级操作
1.临时表
CREATETEMPORARYTABLE 表名 (...);
临时表只存在于当前连接,会在连接关闭时自动销毁
可进行增删改查操作
2.克隆表
-- 仅复制表结构
CREATE TABLE新表 LIKE 旧表;
-- 复制表结构和内容
CREATE TABLE新表 AS SELECT* FROM 旧表;
九.用户管理
1.创建用户
CREATEUSER '用户名'@'来源地址' IDENTIFIEDBY '密码';
localhost:本地登录
% :允许任意 IP 登录
密码可使用明文或加密方式
2.查看用户
USE mysql;
SELECTUser, Host, authentication_stringFROM user;
3.删除用户
DROP USER '用户名'@'来源地址';
4.修改密码
SET PASSWORD = PASSWORD('新密码'); -- 当前用户
SET PASSWORD FOR'用户'@'来源地址' = PASSWORD('新密码'); -- 其他用户
5.忘记 root 密码处理
修改 /etc/my.cnf添加:
[mysqld]
skip-grant-tables
重启 MySQL 服务并直接登录
修改密码:
UPDATEmysql.user SET AUTHENTICATION_STRING=PASSWORD('新密码') WHERE user='root';
FLUSH PRIVILEGES;
删除 skip-grant-tables并重启 MySQL
十.用户授权管理
1.授权用户
GRANT 权限列表 ON 数据库.表 TO '用户名'@'来源地址' IDENTIFIEDBY '密码';
权限示例: SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, INDEX, EXECUTE,
ALL
*.* 表示所有数据库和表
示例:
GRANT SELECT ONschool.* TO'zhangsan'@'localhost'IDENTIFIEDBY 'abc123';
GRANT ALL PRIVILEGESON *.* TO'lisi'@'%' IDENTIFIEDBY '123456';
FLUSH PRIVILEGES #刷新权限
2.查看授权
SHOW GRANTS FOR'用户名'@'来源地址';
3.撤销权限
REVOKE权限列表 ON 数据库.表 FROM '用户名'@'来源地址';
REVOKE ALLON *.* FROM 'lisi'@'%';
十一.权限说明


总结:
今天我主导分享了一些数据库的管理操作,主要具备数据库/表增删查改,用户创建,授权等相关操作的相关语句,希望对读者们有所帮助!
浙公网安备 33010602011771号