免费资源网 - https://freexyz.cn/

文章目录

数据表高级操作

准备工作:安装MySQL数据库

一、克隆表

方法一

方法二

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

方法一

方法二

三、创建临时表

四、创建外键约束

MySQL中6种常见的约束

五、数据库用户管理

1、新建用户

2、查看用户信息

3、重命名用户

4、删除用户

5、修改当前登录用户密码

6、修改其他用户密码

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

六、数据库用户授权

1、授予权限

2、查看权限

3、撤销权限

数据表高级操作

准备工作:安装MySQL数据库

Shell脚本一键部署——源码编译安装MySQL

create database CLASS;

use CLASS;

create table TEST (id int not null,name char(20) not null,cardid varchar(18) not null unique key,primary key (id));

insert into TEST(id,name,cardid) values (1,'zhangsan','123123');

insert into TEST(id,name,cardid) values (2,'lisi','1231231');

insert into TEST(id,name,cardid) values (3,'wangwu','12312312');

select * from TEST;

一、克隆表

将数据表的数据记录生成到新的表中

方法一

例:create table TEST01 like TEST;

select * from TEST01;

desc TEST01;

insert into TEST01 select * from TEST;

select * from TEST01;

方法二

例:create table TEST02 (select * from TEST);

select * from TEST02;

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

方法一

delete from TEST02;

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

例:create table if not exists TEST03 (id int primary key auto_increment,name varchar(20) not null,cardid varchar(18) not null unique key);

show tables;

insert into TEST03 (name,cardid) values ('zhangsan','11111');

select * from TEST03;

delete from TEST03;

insert into TEST03 (name,cardid) values ('lisi','22222');

select * from TEST03;

方法二

例:select * from TEST03;

truncate table TEST03;

insert into TEST03 (name,cardid) values ('wangwu','33333');

select * from TEST03;

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

三、创建临时表

临时表创建成功之后,使用SHOW TABLES命令是看不到创建的临时表的,临时表会在连接退出后被销毁。 如果在退出连接之前,也可以可执行增删改查等操作,比如使用 DROP TABLE 语句手动直接删除临时表。

CREATE TEMPORARY TABLE 表名 (字段1 数据类型,字段2 数据类型[,...][,PRIMARY KEY (主键名)]);

例:create temporary table TEST04 (id int not null,name varchar(20) not null,cardid varchar(18) not null unique key,primary key (id));

show tables;

insert into TEST04 values (1,'haha','12345');

select * from TEST04;

四、创建外键约束

保证数据的完整性和一致性

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

主键表和外键表的理解:

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

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

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

例:create table TEST04 (hobid int(4),hobname varchar(50));

create table TEST05 (id int(4) primary key auto_increment,name varchar(50),age int(4),hobid int(4));

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

alter table TEST05 add constraint FK_hobid foreign key(hobid) references TEST04(hobid);

例:添加数据记录

insert into TEST05 values (1,'zhangsan','20',1);

insert into TEST04 values (1,'sleep');

insert into TEST05 values (1,'zhangsan',20,1);

例:drop table TEST04;

drop table TEST05;

drop table TEST04;

注:如果要删除外键约束字段

先删除外键约束,再删除外键名,此处不演示

show create table TEST05;

alter table TEST05 drop foreign key FK_hobid;

alter table TEST05 drop key FK_hobid;

desc TEST05;

MySQL中6种常见的约束

主键约束

primary key

外键约束

foreign key

非空约束

not null

唯一约束

unique [key

默认值约束

default

自增约束

auto_increment

五、数据库用户管理

1、新建用户

CREATE USER '用户名'@'来源地址' [IDENTIFIED BY [PASSWORD] '密码'];

‘用户名’:指定将创建的用户名

‘来源地址’:指定新创建的用户可在哪些主机上登录,可使用IP地址、网段、主机名的形式,本地用户可用localhost,允许任意主机登录可用通配符%

‘密码’:若使用明文密码,直接输入’密码’,插入到数据库时由Mysql自动加密;

------若使用加密密码,需要先使用SELECT PASSWORD(‘密码’); 获取密文,再在语句中添加 PASSWORD ‘密文’;

------若省略“IDENTIFIED BY”部分,则用户的密码将为空(不建议使用)

例:create user 'zhangsan'@'localhost' identified by '123123';

select password('123123');

create user 'lisi'@'localhost' identified by password '*E56A114692FE0DE073F9A1DD68A00EEB9703F3F1';

2、查看用户信息

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

USE mysql;

SELECT User,authentication_string,Host from user;

3、重命名用户

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

SELECT User,authentication_string,Host from user;

4、删除用户

DROP USER 'lisi'@'localhost';

SELECT User,authentication_string,Host from user;

5、修改当前登录用户密码

SET PASSWORD = PASSWORD('abc123');

quit

mysql -u root -p

6、修改其他用户密码

SET PASSWORD FOR 'wangwu'@'localhost' = PASSWORD('abc123');

use mysql;

SELECT User,authentication_string,Host from user;

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

1、修改 /etc/my.cnf 配置文件,不使用密码直接登录到 mysql

vim /etc/my.cnf

[mysqld]

skip-grant-tables#添加,使登录mysql不使用授权表

systemctl restart mysqld

mysql#直接登录

2、使用 update 修改 root 密码,刷新数据库

UPDATE mysql.user SET AUTHENTICATION_STRING = PASSWORD('112233') where user='root';

FLUSH PRIVILEGES;

quit

再把 /etc/my.cnf 配置文件里的 skip-grant-tables 删除,并重启 mysql 服务。

mysql -u root -p

112233

六、数据库用户授权

1、授予权限

GRANT语句:专门用来设置数据库用户的访问权限。当指定的用户名不存在时,GRANT语句将会创建新的用户;当指定的用户名存在时,GRANT 语句用于修改用户信息。

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

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

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

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

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

#允许用户wangwu在本地查询 CLASS 数据库中所有表的数据记录,但禁止查询其他数据库中的表的记录。

例:

GRANT select ON CLASS.* TO 'wangwu'@'localhost' IDENTIFIED BY '123456';

quit;

mysql -u wangwu -p

123456

show databases;

use information_schema;

show tables;

select * from INNODB_SYS_TABLESTATS;

#允许用户wangwu在本地远程连接 mysql ,并拥有所有权限。

quit;

mysql -u root -p112233

GRANT ALL PRIVILEGES ON *.* TO 'wangwu'@'localhost' IDENTIFIED BY '123456';

flush privileges;

quit

mysql -u wangwu -p123456

create database SCHOOL;

2、查看权限

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

例:

SHOW GRANTS FOR 'wangwu'@'localhost';

3、撤销权限

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

例:quit;

mysql -u root -p112233

SHOW GRANTS FOR 'wangwu'@'localhost';

REVOKE SELECT ON "CLASS".* FROM 'wangwu'@'localhost';

SHOW GRANTS FOR 'wangwu'@'localhost';

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

flush privileges;

免费资源网 - https://freexyz.cn/

mysql刷新当前数据库_看看MySQL数据库高级操作相关推荐

  1. mysql 刷新二进制日志_使用binlog日志恢复MySQL数据库删除数据的方法

    binlog日志简介: binlog 就是binary log,二进制日志文件,这个文件记录了MySQL所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间. b ...

  2. mysql核心数据库_从MySQL基础进军MySQL核心架构 178集MySQL数据库核心基础视频教程 MySQL基础案例教程...

    从MySQL基础进军MySQL核心架构 178集MySQL数据库核心基础视频教程 MySQL基础案例教程 课程目录 (1) 01MySQL基础_课程引入.avi (2) 02MySQL基础_为什么学习 ...

  3. 易语言mysql怎么写字段值_易语言数据库怎么加字段 数据库添加字段说明

    易语言将access数据库作为数据源怎么添加记录到access? .版本 2 .支持库 eDB 数据库连接1.连接Access (取运行目录 () + "数据库名称", " ...

  4. mysql拒绝远程连接_解决Mysql数据库拒绝远程连接和忘记密码的问题

    解决数据库忘记密码的问题 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 编辑m ...

  5. 阿里云怎样操作mysql数据库_阿里云主机如何操作mysql数据库

    阿里云主机如何操作mysql数据库,阿里云上传mysql数据库. 在阿里云ecs云服务器上部署数据库后,在平常的操作中可能会遇到些问题,可以先做个大致的了解: 如果您想看更多的在ecs上的数据库的相关 ...

  6. mysql注册数据库_基于mysql数据库的注册

    前期准备: 1.下载并安装mysql数据库5.X版本即可 2.学习相关的sql语法 3.在lib包导入mysql-connector-java-5.1.38-bin.jar数据库连接的jar包 创建数 ...

  7. JSP大作业数据库_本地MySQL【种种问题】

    JSP大作业数据库MySQL第1部分.zip: 链接:https://pan.baidu.com/s/1ZHwxAnATQSSjC-F6EpxeUw 提取码:30kw JSP大作业数据库MySQL第二 ...

  8. mysql数据库连接配置路径_[zz]MySQL数据库主从同步安装与配置总结

    注意:本文出自"阿飞"的博客 ,如果要转载本文章,请与作者联系! 并注明来源: http://blog.sina.com.cn/s/blog_49fd52cf0100pog2.ht ...

  9. 深入浅出mysql唐汉名_深入浅出MySQL++数据库开发、优化与管理维护+第2版+唐汉明 -- 存储引擎 - 数据类型 - 字符集和校验规则 -...

    create schema deepInMySql; use deepInMySql; -- 查看当前默认存储引擎 show variables like '%table_type%'; -- 查看当 ...

最新文章

  1. JSF or PHP or ADF?!! :(
  2. react 组件连动效果_React组件开发中常见的陷阱
  3. 2050,一个属于年青人的大会
  4. 3. HTML中的容器标签
  5. 非零返回怎么解决_VLOOKUP如何返回多个值?
  6. 网络存储(三)之ISCSI搭建的入门
  7. html input 字体颜色_HTML常用标签汇总
  8. 关于Windows系统中一些实用的修改常识
  9. 微信最近的一些新改动
  10. nv驱动版本linux,完善支持NV显卡Linux驱动275.19正式版,275.19增加了对
  11. windows能装linux系统盘,用U盘安装linux系统(Windows环境下制作启动盘)
  12. 尚学堂视频笔记三:容器
  13. web前端设计与开发期末作品_期末大作业【使用HTML制作汽车首页】
  14. Cocos2dx开发手机游戏工具集(持续更新)
  15. Unexpected Error 0x8ffe2740 Occured
  16. 大数据分析案例-对电信客户流失分析预警预测
  17. 报错:Error in file.exists(pythonPath)
  18. 编写一个java类,用来表示出部队中 军 师 旅 团这种树状数据结构,使上级能检索到下级,下级也能检索到上级
  19. vim与sublime,程序员的屠龙刀和倚天剑
  20. 论文笔记:联邦学习——Federated Learning: Challenges, Methods, and Future Directions

热门文章

  1. 思路较为简单的pyqt的ui调用和信号与槽的初级例程
  2. 第十讲 幂级数展开式的应用
  3. 设备维修管理系统 php,设备维修管理 设备维护保养管理系统 v5.8
  4. 2020全球区块链创新应用示范项目集 附下载
  5. 26张图告诉你什么是天路,美到无法形容!
  6. mac微信小助手WeChatPlugin Mac中文版v1.7.5
  7. 如何吃透一个java项目
  8. Spark 作业提交
  9. 计算机课和信息技术课,第1课 信息和信息技术”教学设计
  10. Android 自定义控件---SpreadView