MySQL 数据库管理

在 MySQL 数据库的管理中,涵盖了多个方面的操作,包括数据库结构的查看、数据库与表的创建及删除、SQL 语言的运用、表中数据记录的管理以及数据库表的高级操作等,同时还涉及数据库用户的授权。以下是对这些内容的详细介绍。

一、使用 MySQL 数据库

1. 查看数据库结构

通过以下命令可以查看数据库结构:

复制代码
[root@localhost ~]# mysql -u root -ppwd123
mysql> show databases;
mysql> use mysql
mysql> show tables;
mysql> describe user;
mysql> select * from user\G;

备注:

information_schema 数据库保存着关于 MySQL 服务器所维护的所有其他数据库的信息,例如数据库名、数据库的表、表栏的数据类型与访问权限等。

performance_schema 用于监控 MySQL server 在一个较低级别的运行过程中的资源消耗、资源等待等情况。

mysql 是 MySQL 服务正常运行所需的数据库,其中包含了用户认证相关的表。

2. 创建及删除数据库和表

(1)创建新库

使用以下命令创建新库:

复制代码
mysql> create database auth;

(2)创建新表

首先使用 use auth; 切换到要操作的数据库,然后执行以下命令创建新表:

复制代码
mysql> CREATE TABLE users (user_name CHAR(16) NOT NULL, user_passwd CHAR(48) DEFAULT '', PRIMARY KEY (user_name));

备注

DEFAULT '' 表示密码默认为空。

注意

5.7 以前的版本的 password() 加密函数可以生成 16 位密文,5.7 后的 password() 函数可以生成 41 位的密文,其算法为 mysql_native_password 。设置密码字段的时候要考虑加密,提供的字符长度要够用,否则在添加记录时,如果使用了 password() 加密函数保存密码字段,会提示字符长度错误。8.0 的 MySQL 已经弃用 password()

(3)删除一个数据表

使用以下命令删除数据表:

复制代码
mysql> DROP TABLE auth.users;

(4)删除一个数据库

使用以下命令删除数据库:

复制代码
mysql>DROP DATABASE auth;

3. SQL 语言

SQL 语言主要包括以下几种类型:

DDL:数据定义语言(createdropalter

DML:数据操纵语言(insertupdatedelete

DQL:数据查询语言(select

DCL:数据控制语言(grantrevokecommitrollback

4. 管理表中的数据记录

(1)插入数据记录

首先使用 use auth; 切换到相应数据库,然后执行以下命令插入数据:

复制代码
mysql>INSERT INTO users(user_name,user_passwd) VALUES('zhangsan', PASSWORD ('123456')); 
mysql>INSERT INTO users VALUES('lisi', PASSWORD('654321'));

(2)查询数据记录

执行以下命令查询数据:

复制代码
mysql>select * from auth.users;
mysql>SELECT user_name,user_passwd FROM auth.users WHERE user_name='zhangsan';

(3)修改数据记录

执行以下命令修改数据:

复制代码
mysql>UPDATE auth.users SET user_passwd=PASSWORD('') WHERE user_name= 'lisi'; 

查看修改结果:

复制代码
mysql>SELECT * FROM auth.users;

此外:

复制代码
mysql>UPDATE mysql.user SET authentication_string=PASSWORD('123457') WHERE user='root';
mysql>FLUSH PRIVILEGES; 

还可以通过以下命令修改 root 用户密码:

复制代码
[root@www ~]# mysqladmin -u root -p'123457' password '123456'

(4)删除数据记录

使用以下命令删除数据:

复制代码
mysql>DELETE FROM auth.users WHERE user_name='lisi'; 

查看删除结果:

复制代码
mysql>SELECT * FROM auth.users;

5. 数据库表高级操作

(1)克隆表

通过以下命令克隆表:

复制代码
mysql>create table user01 like auth.users;     //通过 LIKE 方法,复制 users 表生成 tmp 表,注意,此表为空
mysql>insert into user01 select * from auth.users;     //通过 player 表生成 tmp 表内数据记录 

(2)删除表

执行以下命令删除表中的数据:

复制代码
mysql> delete from user01 where user_name='zhangsan';
mysql>delete from user01; 

重新插入数据:

复制代码
mysql>insert into user01 select * from auth.users;

使用以下命令清空表数据并释放空间:

复制代码
mysql>truncate table user01; 

查看表中的记录数量:

复制代码
mysql>select count(*) from user01;

备注

truncatedelete 的区别:

  • truncate 删除表中的内容,不删除表结构,释放空间。
  • delete 删除表中的内容,不删除表结构,但不释放空间。

truncate 删除数据后重新写数据会从 1 开始,delete 删除数据后只会从删除前的最后一行续写;内存空间上,truncate 省空间。

delete 属于 DML 语句,而 truncatedrop 都属于 DDL 语句。delete 可以在后续加上 where 进行针对行的删除,truncatedrop 后面只能加上表名,直接删除表,无法使用 where

使用 drop table 表名可以删除表,内容连带结构一起删除。

(3)临时表

执行以下命令查看临时表是否存在:

复制代码
mysql>select * from mytmp;

创建临时表:

复制代码
mysql>CREATE TEMPORARY TABLE `mytmp` ( 
`id` int(10) NOT NULL AUTO_INCREMENT, 
`NAME` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, 
 `level` int(10) NOT NULL, 
PRIMARY KEY (id)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

插入数据:

复制代码
mysql> insert into mytmp(name,level) values('aa',10);

查看临时表中的数据:

复制代码
mysql>select * from mytmp;

退出当前连接后重新连接,临时表将不存在。

二、数据库用户授权

1. 授予权限

使用以下命令授予权限:

复制代码
mysql>GRANT select ON auth.* TO 'zhangsan'@'localhost' IDENTIFIED BY '123456';

2. 查看权限

使用以下命令查看权限:

复制代码
mysql> SHOW GRANTS FOR 'zhangsan'@'localhost';

3. 验证权限

通过以下命令验证权限:

复制代码
[root@localhost ~]# mysql -u zhangsan -p123456

通过以上对 MySQL 数据库管理的各项操作的介绍,希望能对您在 MySQL 数据库的使用和管理中有所帮助。

相关推荐
工程师老罗2 小时前
如何在Android工程中配置NDK版本
android
Libraeking5 小时前
破壁行动:在旧项目中丝滑嵌入 Compose(混合开发实战)
android·经验分享·android jetpack
市场部需要一个软件开发岗位6 小时前
JAVA开发常见安全问题:Cookie 中明文存储用户名、密码
android·java·安全
Goat恶霸詹姆斯6 小时前
mysql常用语句
数据库·mysql·oracle
xiaowu0807 小时前
C# 拆解 “显式接口实现 + 子类强类型扩展” 的设计思想
数据库·oracle
JMchen1238 小时前
Android后台服务与网络保活:WorkManager的实战应用
android·java·网络·kotlin·php·android-studio
Apple_羊先森8 小时前
ORACLE数据库巡检SQL脚本--19、磁盘读次数最高的前5条SQL语句
数据库·sql·oracle
crmscs8 小时前
剪映永久解锁版/电脑版永久会员VIP/安卓SVIP手机永久版下载
android·智能手机·电脑
localbob8 小时前
杀戮尖塔 v6 MOD整合版(Slay the Spire)安卓+PC端免安装中文版分享 卡牌肉鸽神作!杀戮尖塔中文版,电脑和手机都能玩!杀戮尖塔.exe 杀戮尖塔.apk
android·杀戮尖塔apk·杀戮尖塔exe·游戏分享
机建狂魔8 小时前
手机秒变电影机:Blackmagic Camera + LUT滤镜包的专业级视频解决方案
android·拍照·摄影·lut滤镜·拍摄·摄像·录像