MySQL数据库管理

目录

前言:

一.数据库基本操作

1.查看数据库信息

2.切换数据库

3.查看数据库中的表

4.查看表结构

二.常用数据类型

三.数据库文件存储结构

[四.SQL 语句分类](#四.SQL 语句分类)

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

1.创建数据库

2.创建数据表

3.删除表

4.删除数据库

5.修改表结构(ALTER)

[六.DML 操作(表数据管理)](#六.DML 操作(表数据管理))

1.插入数据

2.更新数据

3.删除数据

4.清空表

[七.DQL 操作(数据查询)](#七.DQL 操作(数据查询))

1.查询数据

2.限制查询结果

3.竖向显示结果

八.表高级操作

1.临时表

2.克隆表

九.用户管理

1.创建用户

2.查看用户

3.删除用户

4.修改密码

[5.忘记 root 密码处理](#5.忘记 root 密码处理)

十.用户授权管理

1.授权用户

2.查看授权

3.撤销权限

十一.权限说明

总结

前言:

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

一.数据库基本操作

1.查看数据库信息

显示当前 MySQL 服务器上所有数据库列表
SHOW DATABASES;

2.切换数据库

切换当前操作的数据库
USE 数据库名 ;

3.查看数据库中的表

显示当前数据库或指定数据库的所有表
SHOW TABLES;
SHOW TABLES IN 数据库名 ;

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.创建数据库

CREATE DATABASE 数据库名 ;

2.创建数据表

CREATE TABLE 表名 (
字段 1 数据类型 [ 约束条件 ],
字段 2 数据类型 [ 约束条件 ],
...
PRIMARY KEY ( 主键字段 )
);
create table zcx
示例:
CREATE DATABASE szsx_school;
USE szsx_school;
CREATE TABLE yjs0805 (
id INT NOT NULL ,
name CHAR ( 10 ) NOT NULL ,
score DECIMAL ( 5 , 2 ),
passwd CHAR ( 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
TRUNCATE TABLE 表名 ;
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.临时表

CREATE TEMPORARY TABLE 表名 (...);
临时表只存在于当前连接,会在连接关闭时自动销毁
可进行增删改查操作

2.克隆表

-- 仅复制表结构
CREATE TABLE 新表 LIKE 旧表 ;
-- 复制表结构和数据
CREATE TABLE 新表 AS SELECT * FROM 旧表 ;

九.用户管理

1.创建用户

CREATE USER ' 用户名 ' @ ' 来源地址 ' IDENTIFIED BY ' 密码 ' ;
localhost :本地登录
% :允许任意 IP 登录
密码可使用明文或加密方式

2.查看用户

USE mysql;
SELECT User, Host, authentication_string FROM user;

3.删除用户

DROP USER ' 用户名 ' @ ' 来源地址 ' ;

4.修改密码

SET PASSWORD = PASSWORD( ' 新密码 ' ); -- 当前用户
SET PASSWORD FOR ' 用户 ' @ ' 来源地址 ' = PASSWORD( ' 新密码 ' ); -- 其他用户

5.忘记root密码处理

修改 /etc/my.cnf 添加:

mysqld

skip-grant-tables
重启 MySQL 服务并直接登录
修改密码:
UPDATE mysql .user SET AUTHENTICATION_STRING=PASSWORD( ' 新密码 ' ) WHERE user= 'root' ;
FLUSH PRIVILEGES;
删除 skip - grant - tables 并重启 MySQL

十.用户授权管理

1.授权用户

GRANT 权限列表 ON 数据库 . 表 TO ' 用户名 ' @ ' 来源地址 ' IDENTIFIED BY ' 密码 ' ;
权限示例: SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, INDEX, EXECUTE,
ALL
*.* 表示所有数据库和表
示例
GRANT SELECT ON school.* TO 'zhangsan' @ 'localhost' IDENTIFIED BY 'abc123' ;
GRANT ALL PRIVILEGES ON *.* TO 'lisi' @ '%' IDENTIFIED BY '123456' ;
FLUSH PRIVILEGES # 刷新权限

2.查看授权

SHOW GRANTS FOR ' 用户名 ' @ ' 来源地址 ' ;

3.撤销权限

REVOKE 权限列表 ON 数据库 . 表 FROM ' 用户名 ' @ ' 来源地址 ' ;
REVOKE ALL ON *.* FROM 'lisi' @ '%' ;

十一.权限说明


总结:

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

相关推荐
ohoy21 小时前
mysql 30天自动补0
数据库·mysql
大学生资源网1 天前
java毕业设计之儿童福利院管理系统的设计与实现(源码+)
java·开发语言·spring boot·mysql·毕业设计·源码·课程设计
摇滚侠1 天前
Redis 零基础到进阶,Redis 哨兵监控,笔记63-73
数据库·redis·笔记
利剑 -~1 天前
mysql面试题整理
android·数据库·mysql
老华带你飞1 天前
物流信息管理|基于springboot 物流信息管理系统(源码+数据库+文档)
数据库·vue.js·spring boot
程序员卷卷狗1 天前
Redis事务与MySQL事务有什么区别?一文分清
数据库·redis·mysql
玩大数据的龙威1 天前
农经权二轮延包—数据(新老农经权)比对软件更新
数据库·arcgis
保持低旋律节奏1 天前
网络系统管理——期末复习
数据库
程序员佳佳1 天前
2025年大模型终极横评:GPT-5.2、Banana Pro与DeepSeek V3.2实战硬核比拼(附统一接入方案)
服务器·数据库·人工智能·python·gpt·api
qq_12498707531 天前
重庆三峡学院图书资料管理系统设计与实现(源码+论文+部署+安装)
java·spring boot·后端·mysql·spring·毕业设计