MySQL数据表高级操作

这篇具有很好参考价值的文章主要介绍了MySQL数据表高级操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、克隆/复制数据表

MySQL数据表高级操作,mysql,android,数据库

方法一:

create table test2 like test;    #复制格式,通过LIKE方法,复制yyy表结构生成yyy2表
insert into test2 select * from test;      #备份内容

MySQL数据表高级操作,mysql,android,数据库

方法二:

CREATE TABLE test3 (SELECT * from test);   #复制test 表数据到test3中

MySQL数据表高级操作,mysql,android,数据库
MySQL数据表高级操作,mysql,android,数据库

二、清空表,删除表内的所有数据

方法一

delete from 表名;

DELETE清空表后,返回的结果内有删除的记录条目; DELETE 工作时是一行一行的删除记录数据的;如果表中有自增长字段,使用DELETE FROM 删除所有记录后,再次新添加的记录会从原来最大的记录ID后面继续自增写入记录。

MySQL数据表高级操作,mysql,android,数据库

方法二

truncate table 表名;

TRUNCATE清空表后,没有返回被删除的条目: TRUNCATE 工作时是将表结构按原样重新建立,因此在速度上TRUNCATE会比DELETE清空表快;使用TRUNCATE TABLE 清空表内数据后,ID会从1开始重新记录
MySQL数据表高级操作,mysql,android,数据库

删除小结

drop table 表名
  • 删除速度快
  • 表和内容和结构删除
  • 不可以带 where
  • 不可回滚(无法恢复)
  • 属于 DDL
truncate table 表名
  • 删除速度快
  • 表的内容删除
  • 不可以带where
  • 不可回滚 (无法恢复)
  • 届于 DDL
delete from 表名
  • 删除速度慢,需要逐行删除
  • 删除后表结构在,表内容要看where执行的情况
  • 可以带where
  • 可以回滚 (可恢复)
  • 属于DML

三、创建临时表

CREATE TEMPORARY TABLE 表名 (字段1 数据类型,字段2 数据类型[, ...][, PRIMARY KEY (主键名)]);
  • 临时表创建成功之后,使用 show tables 命令是看不到创建的临时表的,临时表会在连接退出后被销毁。
  • 如果在退出连接之前,也可以可执行增删改查等操作,比如使用DROP TABLE语句手动直接删除临时表。
  • 临时表无法创建外键

应用场景:可做测试环境使用,比如删除大量数据的时候,可以创建临时表 做一个复杂删除

四、MySQL中6种常见的约束

  • 主键约束(primary key)
  • 外键约束(foreign key)
  • 非空约束(not null)
  • 唯一性约束(unique [key|index])
  • 默认值约束(default)
  • 自增约束(auto_increment)

1、外键的定义

如果同一个属性字段x在表一中是主键,而在表二中不是主键,则字段x称为表二的外键。

2、创建外键约束作用

创建外键约束作用(误删,修改),保证数据的完整性和一致性。

主键表和外键表的理解

  1. 以公共关键字作主键的表为主键表(父表、主表)
  2. 以公共关键字作外键的表为外键表(从表、外表)

**注意:**与外键关联的主表的字段必须设置为主键。要求从表不能是临时表,主表外键字段和从表的字段具备相同的数据类型、字符长度和约束。

3、创建主表test4

create table test4 (hobid int(4),hobname varchar(50));

MySQL数据表高级操作,mysql,android,数据库

4、创建从表test5

create table test5 (id int(4) primary key auto_increment,name varchar(10),age int(3),hobid int(4));

MySQL数据表高级操作,mysql,android,数据库

5、为主表test4添加一个主键约束。主键名建议以"PK_”开头。

alter table test4 add constraint PK_hobid primary key (hobid);

MySQL数据表高级操作,mysql,android,数据库

6、为从表test5表添加外键,并将test5表的hobid字段和test4表的hobid字段建立外键关联。外键名建议以"FK_”开头。

alter table test5 add constraint FK_hob foreign key (hobid) references test4 (hobid);

MySQL数据表高级操作,mysql,android,数据库
MySQL数据表高级操作,mysql,android,数据库

7、可以使用查询表语句结构命令查看外键关联

show create table test5;

desc test4;
desc test5;

8、插入新的数据记录时,要先主表再从表

insert into test4 values(1,'runing');
insert into test5 values(1,'zhangsan',18,1);

MySQL数据表高级操作,mysql,android,数据库

MySQL数据表高级操作,mysql,android,数据库
MySQL数据表高级操作,mysql,android,数据库

9、删数数据记录时,要先从表再主表

drop tables test5;
drop tables test4;

MySQL数据表高级操作,mysql,android,数据库

10、如果要删除外键约束字段先删除外键约束,再删除外键名

show create table test5;
alter table test5 drop foreign key FK_hob;
alter table test5 drop key FK_hob;
desc test5;

MySQL数据表高级操作,mysql,android,数据库
MySQL数据表高级操作,mysql,android,数据库
MySQL数据表高级操作,mysql,android,数据库
MySQL数据表高级操作,mysql,android,数据库

五、数据库用户管理

1、新建用户

CREATE USER '用户名'@'来源地址' [IDENTIFIED BY [PASSWORD] '密码'];
  • ‘用户名’:指定将创建的用户名
  • ‘来源地址’:指定新创建的用户可在哪些主机上登录,可使用IP地址、网段、主机名的形式,本地用户可用localhost,允许任意主机登录可用通配符%
  • ‘密码’:若使用明文密码,直接输入’密码’,插入到数据库时由Mysql自动加密;
  • 若使用加密密码,需要先使用SELECT PASSWORD(‘密码’);获取密文,再在语句中添PASSWORD ‘密文’;若省略“IDENTIFIED BY"部分,则用户的密码将为空(不建议使用)

MySQL数据表高级操作,mysql,android,数据库

2、查看用户信息

创建后的用户保存在mysql数据库的user表里

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

MySQL数据表高级操作,mysql,android,数据库

3、重命名指定

RENAME USER 'zhangsan'@'localhost' TO 'lisi'@'localhost';

MySQL数据表高级操作,mysql,android,数据库

4、删除用户

DROP USER 'lisi'@'localhost' ;

MySQL数据表高级操作,mysql,android,数据库

5、修改当前密码

SET PASSWORD = PASSWORD('abc123');

6、修改其他用户密码

SET PASSWORD FOR 'user1'@'localhost' = PASSWORD('abc123T);

MySQL数据表高级操作,mysql,android,数据库

7、忘记root密码的解决办法

修改/etc/my.cnf 配置文件,免密登陆mysql

vim /etc/my.cnf
[mysqld]
skip-grant-tables    #添加,使登录mysql不使用授权表
systemctl restart mysqld
mysql    #直接登录

然后使用SQL语句修改密码
UPDATE mysql.user SET AUTHENTICATION_STRING = PASSWORD('abc123') where user='root';

FLUSH PRIVILEGES;
quit
mysql -u root -pabc123
PS:最后再把/etc/my.cnf 配置文件里的skip-grant-tables 删除,并重启mysql服务

六、数据库用户授权

1、授予权限

GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'来源地址' [IDENTIFIED BY '密码'];

#权限列表:用于列出授权使用的各种数据库操作,以逗号进行分隔,如“select, insert, 
update”。使用"all"表示所有权限,可授权执行任何操作。

#数据库名.表名:用于指定授权操作的数据库和表的名称,其中可以使用通配符"*"。
例如,使用“school.*"表示授权操作的对象为school数据库中的所有表。

#'用户名@来源地址':用于指定用户名称和允许访问的客户机地址,即谁能连接、能从哪里连接。来源地址可以是域名、IP地址,还可以使用“%”通配符,表示某个区域或网段内的所有地址,如“%.xyw.com"、“192. 168.80.%”等。

#IDENTIFIED BY:用于设置用户连接数据库时所使用的密码字符串。
在新建用户时,若省略“IDENTIFIED BY"部分,则用户的密码将为空。

MySQL数据表高级操作,mysql,android,数据库

2、查看权限

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

MySQL数据表高级操作,mysql,android,数据库

3、撤销权限

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

MySQL数据表高级操作,mysql,android,数据库

USAGE权限只能用于数据库登陆,不能执行任何操作; USAGE权限不能被回收,即REVOKE不能删除用户。

4、补充

授权用户权限 all privileges 代表了哪些权限呢?

权限 含义
insert 插入数据
select 查询数据
update 更新表的数据
delete 删除表中的数据
drop 删除库 和表
create 创建库,表
index 创建索引
alter 更改表的属性
create view 创建视图
create routine 创建存储过程
alter routine 修改存存储过程
event 事件
trigger on 创建触发器

文章来源地址https://www.toymoban.com/news/detail-569869.html

到了这里,关于MySQL数据表高级操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL数据库——MySQL SELECT:数据表查询语句

    在 MySQL 中,可以使用 SELECT 语句来查询数据。查询数据是指从数据库中根据需求,使用不同的查询方式来获取不同的数据,是使用频率最高、最重要的操作。 SELECT 的语法格式如下: 其中,各条子句的含义如下: {*|字段列名} 包含星号通配符的字段列表,表示所要查询字段的

    2024年02月05日
    浏览(43)
  • mysql数据库和数据表

    常用的数据类型: int : 整型  用于定义整数类型的数据 float : 单精度浮点4字节32位  准确表示到小数点后六位. double :双精度浮点8字节64位 char :固定长度的字符类型  用于定义字符类型数据 varchar :可变长度的字符类型 text : 文本 image: :图片 SQL语言: Structured Query La

    2024年02月10日
    浏览(50)
  • 8-MySQL查询高级用法,数据表的关联关系

    1.分组 group by 详情见,发布的第七篇博客文章,7- MySQL函数 2.排序 order by 说明: 在MySQL中,ORDER BY是一种用于对查询结果进行排序的。它可以根据一列或多列的值,以升序或降序的方式对查询结果进行排序,使得查询者可以更加方便 地查看、分析和处理数据。 使用OR

    2024年02月08日
    浏览(42)
  • MySQL数据库——MySQL数据表添加字段(三种方式)

    MySQL 数据表是由行和列构成的,通常把表的“列”称为字段(Field),把表的“行”称为记录(Record)。随着业务的变化,可能需要在已有的表中添加新的字段。 MySQL 允许在开头、中间和结尾处添加字段。 一个完整的字段包括字段名、数据类型和约束条件。MySQL 添加字段的语

    2024年02月08日
    浏览(69)
  • MySQL创建数据库和数据表

    文章目录 前言 一、MySQL数据库是什么? 二、使用步骤 1.显示当前数据库 2.创建数据库          3.使用数据库          4.删除数据库          5.表的操作     5.1 显示数据库中的表     5.2 创建表     5.3 删除表          6.总结 MySQL数据库的创建操作 是一个客户

    2023年04月08日
    浏览(42)
  • MySQL数据库——6、删除数据表

    删除一个数据表,使用 SQL 命令 DROP TABLE 。 DROP TABLE 命令允许从数据库中永久删除指定的数据表及其所有数据。 DROP TABLE table_name;   table_name 是要删除的数据表的名称。 例如,要删除名为 users 的数据表,可以执行以下 SQL 命令: DROP TABLE users;   执行此命令后,名为 users 的数据

    2024年04月11日
    浏览(39)
  • MySQL:创建数据库,数据表,主键和外键

    目录 前言: 安装MySQL: 打开MySQL: 创建数据库: 查看已建数据库: 查看数据库引擎: 创建数据表:  主键约束: 单字段主键: 多字段联合主键: 外键约束: MySQL数据库安装了很久,一直也没静下心来学习,因为起步太晚,所以什么都想学点,又感觉有些力不从心,目前

    2023年04月27日
    浏览(45)
  • MySQL数据表操作

    目录 内容如下 一、相关的概念 one / 表(关系表) two / 字段(表结构) three / 记录(具体的数据) four / 表之间的关系 five / 二、数据类型 one / 整数类型 two / 浮点数类型 three / 定点数类型 four / 字符类型 five / 日期时间类型 six / 二进制类型 三、存储引擎 one / 概念 tw

    2024年02月10日
    浏览(36)
  • MySql数据库的初步安装与数据表结构数据管理

    目录 一、数据库的相关了解 1)数据库的概念  数据(Data) 表 数据库系统 2)数据库系统发展史 第一代数据库 第二代数据库 第三代数据库 当今主流数据库介绍 2)数据库的分类  关系数据库 非关系型数据库 非关系型数据库的优点 二、mysql的yum安装与源码编译安装   1)源

    2024年02月08日
    浏览(99)
  • Mysql 查询数据库或数据表中的数据量以及数据大小

     许多数据库的元数据都是存储在mysql中的,例如hive、startrockes,因此可以通过mysql中的“information_schema.TABLES”表来查询对应数据库或对应数据表的具体信息。 1、查询各个数据库中的数据条数和数据大小 2、查询各个数据表中的数据条数和数据大小 3、查看指定数据库容量大小

    2024年04月27日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包