代码改变世界

MySQL数据库管理 - 详解

2026-01-28 09:26  tlnshuju  阅读(5)  评论(0)    收藏  举报

目录

前言:

一.数据库基本操作

1.查看数据库信息

2.切换数据库

3.查看数据库中的表

4.查看表结构

二.常用数据类型

三.数据库文件存储结构

四.SQL 语句分类

五.DDL 操作(数据库和表管理)

1.创建数据库

2.创建数据表

3.删除表

4.删除数据库

5.修改表结构(ALTER)

六.DML 管理(表数据管理)

1.插入数据

2.更新信息

3.删除素材

4.清空表

七.DQL 操作(素材查询)

1.查询资料

2.限制查询结果

3.竖向显示结果

八.表高级操作

1.临时表

2.克隆表

九.用户管理

1.创建用户

2.查看用户

3.删除用户

4.修改密码

5.忘记 root 密码处理

十.用户授权管理

1.授权用户

2.查看授权

3.撤销权限

十一.权限说明

总结

前言:

上次和读者们分享了关于数据库的相关概念以及编译安装操作,今天我将对数据库管理的相关命令和运行做一个讲解。

一.数据库基本操作

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'@'%';

十一.权限说明

总结:

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