您的位置:首页 > 汽车 > 时评 > MySQL数据库管理

MySQL数据库管理

2024/7/3 18:15:52 来源:https://blog.csdn.net/m0_64000472/article/details/139920199  浏览:    关键词:MySQL数据库管理

一、使用MySQL数据库 

1.1 查看数据库结构

        分别介绍查看数据库、表结构的相关操作语句:

  1. 查看当前服务器中的数据库:show databases;
  2. 查看当前数据库中有哪些表:show tables;
  3. 查看表的结构:describe table_name;

注意在查看表之前,要确认自己是否在某个database中,可以使用:use database_name切换当前所在数据库的位置。

         MySQL数据库的数据文件存放在mysql目录中的data目录下,mysql目录的位置则取决于自己设置的安装位置。在data目录中,每个子目录对应一个database,用于存放表数据。每个table分为三个文件,扩展名为".frm"、".MYD"、".MYI",下面分别介绍这些文件的作用:

  • .frm:以此为后缀名的文件存放了与表相关的元数据(meta)信息,包括表结构的定义信息等。不论什么引擎,每个表都会有这个文件。

  • .MYD:是MyISAM存储引擎专用,存放MyISAM表的数据。每一个MyISAM表都会有一个".MYD"文件与之对应。

  • .MYI:是MyISAM存储引擎专用,存放M'y'ISAM表的索引相关信息。对于MyISAM存储来说,可以被缓存的内容主要来源于".MYI"文件中。 

         另外还有".ibd"和".ibdata"文件,这两种文件是存放Innodb数据。ibdata文件用来使用共享空间存放存储数据,多个表共同使用一个ibdata文件,idb是独享表空间存储方式来存放数据,每个表一个ibd文件。

        SQL语言主要由以下几部分组成:

  • DDL(Data Definition Language,数据定义语言):用来建立数据库、数据库对象和定义字段,如create、alter、drop。
  • DML(Data Manipulation Language,数据操纵语言):用来插入、删除和修改数据库中的数据,如insert、update、delete。
  • DQL(Data Query Language,数据查询语言):用来查询数据库中的数据,如select、show。
  • DCL(Data Control Language,数据控制语言):用来控制数据库组件的存取许可、存取权限等,如commit、rollback、grant、revoke。

1.2 创建及删除数据库和表

       对于数据库的操作都要在数据库操作界面执行,即在"mysql>"行输入操作命令。

        1.2.1 创建新的数据库

        语法:

mysql>create database 数据库名称;

         创建出的数据库中没有任何表,其存储的位置在data目录下,有系统自动生成与数据库同名的文件。

        1.2.2 创建新的表

        在创建时需要指定创建表的表名,表中需要包含的字段的名称,字段长度(以字节为单位),也可以指定主键字段。

mysql>create table 表名(字段1名称(字段长度),字段2名称(字段长度)......,[primary key(主键名)])

         例如创建一个表,里面的字段包含用户名、密码字符串的用户验证表,其中用户名不能为空,长度为16字节,密码字符串默认为空,长度为48字节,设置用户名为主键:

mysql>create table users (user_name(16) not null,user_password(48) default '',primary key(user_name));

        注意,在不同的字符集中,汉字占有的字节也不同,所以对于需要填入汉字的字段,要根据字符集设置长度。 

        1.2.3 删除一个数据表

        语法:

mysql>drop table 表名; 

        1.2.4 删除一个数据库

        语法:

mysql>drop database 数据库名;

1.3 管理表中的数据记录

        1.3.1 插入数据记录

        语法: 

mysql>insert into 表名(字段1,字段2......) values(字段1的值,字段2的值......) 

 如果要插入的数据包含表中所有字段的值,则字段部分可以省略。

        1.3.2 查询数据记录

        语法:

mysql>select 字段名1,字段名2,...... from 表名 [where 条件表达式]

若要显示一个表中所有字段,则可以用"*"来代替字段名,若要显示所有的数据记录,则可以省略"where 条件表达式"。例如,若要查询一个users表中用户名为"张三"的所有字段的信息,可以使用:

mysql>select * from users where user_name=‘张三’; #这里user_name为表中字段的名称

        1.3.3 修改数据记录

        语法:

mysql>update 表名 set 字段名1=字段值1,字段名2=字段值2...... where 条件表达式

         1.3.4 删除数据记录

        语法:

mysql>delete from 表名 where 条件表达式

         注意,在执行update、delete语句时,通常都是带where条件,不带条件的update语句和delete语句会修改或删除所有记录的值,是非常危险的操作。

1.4 数据库高级操作

        1.4.1 清空表

        除了使用delete一条条删除表内的数据之外,还可以使用"truncate"来直接删除整个表,由于是整表删除,所以比delete灵活性较差。语法:

mysql>truncate table 表名;

        在删除整个表时,delete和truncate不同的点在于delete在删除时会记录日志(二进制日志),可以凭日志来帮助恢复数据,且数据不会被立刻从磁盘中删除,可以使用"optimize table"命令来重建表并释放未使用的空间或使用其他的数据覆盖当前数据;而truncate不会记录日志,并且会立刻释放被删除数据占用的空间。若表中有自增长的字段,使用delete删除整张表后,后续添加的数据的字段值从原来最大的记录的位置继续自增长,而truncate会重新开始计数。此外,在权限上,使用truncate需要表的drop权限,而使用delete需要表的delete权限。

        1.4.2 临时表

        该类型的表主要用于保存一些临时数据,临时表只在当前连接可见,可执行增删改查等操作,但连接关闭后,临时表就会被MySQL删除。创建临时表的语法为:

mysql>create temporary table 表名(字段1名称(字段长度),字段2名称(字段长度)......,[primary key(主键名)])

        1.4.3 克隆表

        克隆表不是直接克隆一个表的所有数据,只是克隆表的结构,包括表的备注、索引、主键、存储引擎等。语法为:

 mysql>create table 克隆出的新表名 test 被克隆表名

若要将被克隆的表中的数据再全部放到新表中,可以用"insert into ...... select"方法:

mysql>insert into  克隆出的新表名 select * from 被克隆表名

二、数据库用户授权

         MySQL数据库的root用户账号拥有对所有数据库、表的全部权限,频繁使用root账号会给数据库服务器带来一定的安全风险。实际工作中,通常会建立一些低权限的用户,只负责一部分数据库、表的管理和维护操作,甚至可以对查询、修改、删除记录等各种操作做进一步的细化限制,从而将数据库的风险降至最低。

2.1 授予权限

        可以使用grant语句授予指定用户指定权限,当用户不存在时,会自动创建该用户,当用户存在时,grant语句用于修改用户信息。语句格式如下:

mysql>grant 权限列表 on 数据库名.表名 to 用户名@来源地址 [identified by '密码']

        在语法中,各项所代表的含义如下: 

  • 权限列表:用于列出授权给指定用户可使用的操作,以逗号分割,如select,insert,update。all表示所有权限。 
  • 数据库名.表名:用于指定授予的是哪个数据库中数据表的权限,可使用*代表是所有数据库,也可用*代表所有数据表。
  • 用户名@来源地址:用于指定mysql的用户的用户名和可以访问的客户端的地址,地址可以是域名、IP、网段,还可以用“%”通配符,表示某个区域或某个网段内的地址,如:"%.fkk.com"、“193.56.55.%”。
  • identified by:设置用户连接数据库时使用的密码,可以为空。

2.2 查看权限

        语法:

show grants for 用户名@来源地址

不管是什么用户,都会有一个基本的usage的权限,即最低拥有可以切换要查看的数据库的权限。

2.3 撤销权限

        用于撤销指定用户的操作权限,但该用户仍然可以连接到数据库。语法:

revoke 权限列表 on 数据库.表名 from 用户名@来源地址

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com