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

文章目录


前言

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

相关推荐
老纪的技术唠嗑局7 小时前
超级干货分享:中小企业使用 OceanBase 实践经验汇总
数据库
CLOUD ACE7 小时前
谷歌云代理|零售商Target 如何利用 Spanner Graph 提升零售发现体验并将数据库维护成本降低 50%
数据库·零售
AI大模型-小雄7 小时前
Codex写分页接口为什么越翻越慢?用Cursor Pagination解决重复与漏数据
大数据·数据库·elasticsearch·搜索引擎·chatgpt·后端开发·codex
少晓年8 小时前
从 MySQL 迁移到人大金仓 KingbaseES:完整指南与实践
数据库·mysql
SelectDB8 小时前
Apache Doris AI RAG 实战:从基础 RAG 到知识图谱增强的技术能力与选型
数据库
SelectDB8 小时前
电商企业 PostgreSQL 迁移 Apache Doris:80TB 分析数据统一平台技术能力与实践
数据库
SelectDB9 小时前
阶跃星辰 Agent 可观测:Apache Doris / SelectDB 的技术能力与实践
数据库
SelectDB9 小时前
ApacheDoris Iceberg V3 湖仓 DML:Apache Doris / SelectDB 的技术能力与实践
数据库
SelectDB9 小时前
ApacheDoris Python UDF:SQL 调用 Python 的技术能力、选型对比与实践
数据库
Crazy________9 小时前
Redis03:持久化存储,大key分析,主从复制及哨兵模式
数据库·redis·容器