数据库基础操作和权限管理

文章目录


前言

本文围绕 MySQL 核心操作展开,涵盖数据库基础、数据类型、SQL 语句分类、用户及授权管理等关键内容,旨在帮助读者夯实基础、掌握实操技能,适配项目落地需求。


一、数据库基础操作

1、查看数据库信息

show databases;

用途:显示当前 MySQL 服务器上所有数据库列表。

2、切换数据库

use 数据库名;

用途:切换当前操作的数据库。

3、查看数据库中的表

show tables;

show tables in 数据库名称;

用途:显示当前数据库或指定数据库的所有表。

4、查看表结构

desc 表名;

二、常用数据类型

三、数据库文件存储结构(重要)

MySQL 数据目录: /usr/local/mysql/data

每个数据库对应一个子目录,每个表对应若干文件:

MyISAM: .frm (表结构)、 .MYD (数据)、 .MYI (索引)

InnoDB:

独享表空间: .ibd 文件(每表一个文件)

共享表空间: ibdata 文件(多个表共用)

四、sql语句分类

DDL(数据定义语言)

创建/修改/删除数据库对象。CREATE, DROP, ALTER

DML(数据操纵语言)

增删改表数据。INSERT, UPDATE, DELETE

DQL(数据查询语言)

查询数据 。SELECT

DCL(数据控制语言)

用户权限管理 。GRANT, REVOKE, COMMIT, ROLLBACK

1、DDL操作

1.1、创建数据库

create database 数据库名称;

1.2、创建数据表

create table 表名(

字段1 数据类型 [约束条件],

字段2 数据类型 [约束条件],

...

字段n 数据类型 [约束条件],

primary key(主键字段)

);

示例:

CREATE TABLE yjs2025 (

id INT NOT NULL,

name CHAR(10) NOT NULL,

score DECIMAL(5,2),

passwd CHAR(48) DEFAULT '',

PRIMARY KEY (id)

);

字段约束:

NOT NULL :不能为空

DEFAULT :默认值

PRIMARY KEY :主键

UNIQUE KEY :唯一键

AUTO_INCREMENT :自增长字段

1.3、删除表

drop table 表名;

drop table 数据库名.表名; (不切换数据库时用)

1.4、删除数据库

drop database 数据库名称;

1.5、修改表结构

bash 复制代码
-- 修改表名
alter table 旧表名 rename 新表名
-- 增加字段
alter table  表名 add 字段名 数据类型 [约束];
-- 修改字段
alter table 表名 change 旧列名 新列名 数据类型 [约束];
alter table 表名 modify column 字段名	数据类型;
-- 删除字段
alter table 表名 drop 字段名称;

示例:

bash 复制代码
alter table yjs1023 rename yjs2025;
alter table yjs2025 add age2 int;
alter table yjs2025 change age2 age3 int;
alter table yjs2025 drop age3;



2、DML操作

2.1、插入数据

插入一条数据:

insert into 表名(字段1,字段2,...) values (值1,值2,...);

插入多条数据

insert intao 表名(字段1,字段2,...) values

(值1,值2,...),

(值1,值2,...),

(值1,值2,...);

示例:

insert into yjs2025(id,name,age,sname) values (5,'sjj5',19,'洛阳理工'), (6,'sjj6',19,'洛阳理工'), (7,'sjj7',19,'洛阳理工');

2.2、更新数据

update 表名 set 字段1=值1[,字段2=值2] where 条件;

示例:修改sjj1的年龄为20

update yjs2025 set age=20 where name='sjj1';

2.3、删除数据

delete from 表名 where 条件;

示例:

delete from yjs2025 where id=7;

2.4、清空表

方法1:delete

delete from 表名;

方法2:truncate

truncate table 表名;

注意:

DELETE 可带 WHERE 条件,可回滚,速度慢

TRUNCATE 不可回滚,速度快,ID 自增重置

3、SQL操作

3.1、查询数据

select 字段1,字段2... from 表名;

查询所有字段

select * from 表名;

示例:

select * from yjs2025;

3.2、限制查询结果

select * from 表名 limit; --起始行,查询条数;

select * from 表名 limit 2; --显示前两行

select * from 表名 limit 2,3; --第三行开始的后三行

示例:

select * from yjs2025 limit 2,3;

3.3、竖向显示结果

select * from 表名 \G;

示例:

select * from yjs2025 \G;

4、临时表和克隆表

临时表:

create temporary table 表名(...);

作用:

1)临时表只存在于当前连接,会在连接关闭时自动销毁

2)可进行增删改查操作

克隆表:

方法1:约束一起复制,比如:主键

create table 新表 like 旧表;

insert into 表名 select * from 表名;

方法2:会丢失约束,如:主键

create table 新表 as select * from 旧表;

五、用户管理

1、创建和查看用户

创建用户:

create user '用户名'@'来源地址' identified by '密码';

约束登入服务器:

● localhost: 本地登入

● %:允许任意ip登入

● 密码可使用明文或加密方式

示例:create user 'cxk'@'192.168.10.%' identified by '123456';

查看用户:

use mysql;

select user,host,authentication_string from user;

2、删除用户

drop user '用户名'@'来源地址';

示例:

drop user 'cxk'@'%';

3、修改密码

修改当前用户密码

set password = password('新密码');

修改用户密码

set password for '用户'@'来源地址' = password('新密码');

4、忘记密码处理

步骤一:/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 ALL PRIVILEGES ON . TO 'lisi'@'%' IDENTIFIED BY '123456';

'%' 所有主机都能远程登入

192.168.10.2 特定ip登入

192.168.10.% 特定网段登入

localhost 本地服务器登入

示例:

授权用户sjj只能看到szsxjd2数据库,且只有查询权限和修改权限

grant select,update on szsxjd2.* to 'sjj'@'%' identified by '123456';

flush privileges; 刷新权限

2、撤销权限

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

REVOKE ALL ON . FROM 'lisi'@'%';

示例:

revoke all on . from 'sjj'@'%';

撤销后的权限状态:

● 全局级权限变为:GRANT USAGE ON . TO 'sjj'@'%'------USAGE是 MySQL 的 "空权限",表示该用户存在,但无任何全局权限(原有的ALL PRIVILEGES ON *.*已被彻底撤销);

3、权限说明


总结

本文系统梳理了 MySQL 从基础操作到权限管理的核心知识,构建了完整的实操体系,助力读者快速上手数据库运维,为企业级应用开发与管理提供支撑。

相关推荐
如果未来,1 小时前
Oracle数据库的存储结构以及表空间的概念
数据库·oracle
照物华1 小时前
MySQL 软删除 (Soft Delete) 与唯一索引 (Unique Constraint) 的冲突与解决
java·mysql
b***46241 小时前
Redis开启远程访问
数据库·redis·缓存
KaiwuDB1 小时前
KaiwuDB X 向明智控:基于 KaiwuDB 的煤矿综采数据分析系统
数据库
cqsztech1 小时前
自己如何动手创建oracle 19c 19.3标准版2 DOCKER 镜像
数据库·docker·oracle
2022.11.7始学前端2 小时前
n8n第四节 表单触发器:让问卷提交自动触发企微消息推送
java·前端·数据库·n8n
十八岁牛爷爷2 小时前
快速入门从零开始一个qt程序开发,熟悉最主要的开发组件应用
数据库·qt·php
踢球的打工仔2 小时前
mysql数据备份
数据库·mysql
罗光记2 小时前
Solon AI 开发学习6- chat- 两种http 流式输入输出
数据库·百度·facebook·新浪微博·segmentfault