mysql中多表关联删除,怎样做?谢谢...

mysql中多表关联删除,怎样做?谢谢...,第1张

1、首先打开终端窗口。mysql -uroot -p进入mysql。

2、进入数据库,然后查看已有的表格,以免名字重复。

3、创建第一个表格,插入数据。

4、创建第二表格,插入数据。

5、创建第三个表格,并且和第一第二个表格关联。

6、INSERT INTO zoo VALUES(1, 1, 2)INSERT INTO zoo VALUES(1, 2, 1)这个时候就能够把他们直接的数据互相关联删除了。比如dog的1和cat的2。

角色一直存在各个数据库中,比如 SQL Server、Oracle 等,MySQL 自从版本 8.0 release,引入了角色这个概念。

角色的概念

角色就是一组针对各种数据库权限的集合。比如,把一个角色分配给一个用户,那这个用户就拥有了这个角色包含的所有权限。一个角色可以分配给多个用户,另外一个用户也可以拥有多个角色,两者是多对多的关系。不过 MySQL 角色目前还没有提供类似于其他数据库的系统预分配的角色。比如某些数据库的 db_owner、 db_datareader 、 db_datawriter 等等。那接下来我分几个方面,来示例说明角色的使用以及相关注意事项。

示例 1:一个完整角色的授予步骤

用管理员创建三个角色:db_owner, db_datareader, db_datawriter

mysql>create role db_owner,db_datareader,db_datawriter

Query OK, 0 rows affected (0.02 sec)

mysql>grant all on ytt_new.* to db_owner

Query OK, 0 rows affected (0.01 sec)

mysql>grant select on ytt_new.* to db_datareader

Query OK, 0 rows affected (0.01 sec)

mysql>grant insert,delete,update on ytt_new.* to db_datawriter

Query OK, 0 rows affected (0.01 sec)

创建三个普通用户,分别为 ytt1、ytt2、ytt3。mysql>create user ytt1 identified by 'ytt',ytt2 identified by 'ytt',ytt3 identified by 'ytt'Query OK, 0 rows affected (0.01 sec)

分别授予这三个用户对应的角色。

-- 授权角色

mysql>grant db_owner to ytt1

Query OK, 0 rows affected (0.02 sec)

-- 激活角色

mysql>set default role db_owner to ytt1

Query OK, 0 rows affected (0.00 sec)

mysql>grant db_datareader to ytt2

Query OK, 0 rows affected (0.01 sec)

mysql>set default role db_datareader to ytt2

Query OK, 0 rows affected (0.01 sec)

mysql>grant db_datawriter to ytt3

Query OK, 0 rows affected (0.01 sec)

mysql>set default role db_datawriter to ytt3

Query OK, 0 rows affected (0.01 sec)

以上是角色授予的一套完整步骤。那上面有点非常规的地方是激活角色这个步骤。MySQL 角色在创建之初默认是没有激活的,也就是说创建角色,并且给一个用户特定的角色,这个用户其实并不能直接使用这个角色,除非激活了才可以。

示例 2:一个用户可以拥有多个角色

-- 用管理员登录并且创建用户

mysql>create user ytt4 identified by 'ytt'

Query OK, 0 rows affected (0.00 sec)

-- 把之前的三个角色都分配给用户ytt4.

mysql>grant db_owner,db_datareader,db_datawriter to ytt4

Query OK, 0 rows affected (0.01 sec)

-- 激活用户ytt4的所有角色.

mysql>set default role all to ytt4

Query OK, 0 rows affected (0.02 sec)

-- ytt4 用户登录

root@ytt-pc:/var/lib/mysql# mysql -uytt4 -pytt -P3304 -hytt-pc

...

-- 查看当前角色列表

mysql>select current_role()

+--------------------------------------------------------+

| current_role()                                         |

+--------------------------------------------------------+

| `db_datareader`@`%`,`db_datawriter`@`%`,`db_owner`@`%` |

+--------------------------------------------------------+

1 row in set (0.00 sec)

-- 简单创建一张表并且插入记录, 检索记录,完了删掉这张表

mysql>use ytt_new

Database changed

mysql>create table t11(id int)

Query OK, 0 rows affected (0.05 sec)

mysql>insert into t11 values (1)

Query OK, 1 row affected (0.02 sec)

mysql>select * from t11

+------+

| id   |

+------+

|    1 |

+------+

1 row in set (0.00 sec)

mysql>drop table t11

Query OK, 0 rows affected (0.04 sec)

示例 3:用户在当前 session 里角色互换

其实意思是说,用户连接到 MySQL 服务器后,可以切换当前的角色列表,比如由 db_owner 切换到 db_datareader。

-- 还是之前的用户ytt4, 切换到db_datareader

mysql>set role db_datareader

Query OK, 0 rows affected (0.00 sec)

mysql>select current_role()

+---------------------+

| current_role()      |

+---------------------+

| `db_datareader`@`%` |

+---------------------+

1 row in set (0.00 sec)

-- 切换后,没有权限创建表

mysql>create table t11(id int)

ERROR 1142 (42000): CREATE command denied to user 'ytt4'@'ytt-pc' for table 't11'

-- 切换到 db_owner,恢复所有权限。

mysql>set role db_owner

Query OK, 0 rows affected (0.00 sec)

mysql>create table t11(id int)

Query OK, 0 rows affected (0.04 sec)

示例 4:关于角色的两个参数

activate_all_roles_on_login:是否在连接 MySQL 服务时自动激活角色mandatory_roles:强制所有用户默认角色

-- 用管理员连接MySQL,

-- 设置默认激活角色

mysql>set global activate_all_roles_on_login=on

Query OK, 0 rows affected (0.00 sec)

-- 设置强制给所有用户赋予角色db_datareader

mysql>set global mandatory_roles='db_datareader'

Query OK, 0 rows affected (0.00 sec)

-- 创建用户ytt7.

mysql>create user ytt7

Query OK, 0 rows affected (0.01 sec)

-- 用 ytt7登录数据库

root@ytt-pc:/var/lib/mysql# mysql -uytt7 -P3304 -hytt-pc

...

mysql>show grants

+-------------------------------------------+

| Grants for ytt7@%                         |

+-------------------------------------------+

| GRANT USAGE ON *.* TO `ytt7`@`%`          |

| GRANT SELECT ON `ytt_new`.* TO `ytt7`@`%` |

| GRANT `db_datareader`@`%` TO `ytt7`@`%`   |

+-------------------------------------------+

3 rows in set (0.00 sec)

示例 5 :create role 和 create user 都有创建角色权限,两者有啥区别?

以下分别创建两个用户 ytt8、ytt9,一个给 create role,一个给 create user 权限。

-- 管理员登录,创建用户ytt8,ytt9.

mysql>create user ytt8,ytt9

Query OK, 0 rows affected (0.01 sec)

mysql>grant create role on *.* to ytt8

Query OK, 0 rows affected (0.02 sec)

mysql>grant create user on *.* to ytt9

Query OK, 0 rows affected (0.01 sec)

-- 用ytt8 登录,

root@ytt-pc:/var/lib/mysql# mysql -uytt8 -P3304 -hytt-pc

...

mysql>create role db_test

Query OK, 0 rows affected (0.02 sec)

-- 可以创建角色,但是不能创建用户

mysql>create user ytt10

ERROR 1227 (42000): Access deniedyou need (at least one of) the CREATE USER privilege(s) for this operation

mysql>\q

Bye

-- 用ytt9 登录

root@ytt-pc:/var/lib/mysql# mysql -uytt9 -P3304 -hytt-pc

...

-- 角色和用户都能创建

mysql>create role db_test2

Query OK, 0 rows affected (0.02 sec)

mysql>create user ytt10

Query OK, 0 rows affected (0.01 sec)

mysql>\q

Bye

那这里其实看到 create user 包含了 create role,create user 即可以创建用户,也可以创建角色。

示例 6:MySQL 用户也可以当角色来用

-- 用管理员登录,创建用户ytt11,ytt12.

mysql>create user ytt11,ytt12

Query OK, 0 rows affected (0.01 sec)

mysql>grant select on ytt_new.* to ytt11

Query OK, 0 rows affected (0.01 sec)

-- 把ytt11普通用户的权限授予给ytt12

mysql>grant ytt11 to ytt12

Query OK, 0 rows affected (0.01 sec)

-- 来查看 ytt12的权限,可以看到拥有了ytt11的权限

mysql>show grants for ytt12

+-----------------------------------+

| Grants for ytt12@%                |

+-----------------------------------+

| GRANT USAGE ON *.* TO `ytt12`@`%` |

| GRANT `ytt11`@`%` TO `ytt12`@`%`  |

+-----------------------------------+

2 rows in set (0.00 sec)

-- 在细化点,看看ytt12拥有哪些具体的权限

mysql>show grants for ytt12 using ytt11

+--------------------------------------------+

| Grants for ytt12@%                         |

+--------------------------------------------+

| GRANT USAGE ON *.* TO `ytt12`@`%`          |

| GRANT SELECT ON `ytt_new`.* TO `ytt12`@`%` |

| GRANT `ytt11`@`%` TO `ytt12`@`%`           |

+--------------------------------------------+

3 rows in set (0.00 sec)

示例 7:角色的撤销

角色撤销和之前权限撤销类似。要么 revoke,要么删除角色,那这个角色会从所有拥有它的用户上移除。

-- 用管理员登录,移除ytt2的角色

mysql>revoke db_datareader from ytt2

Query OK, 0 rows affected (0.01 sec)

-- 删除所有角色

mysql>drop role db_owner,db_datareader,db_datawriter

Query OK, 0 rows affected (0.01 sec)

-- 对应的角色也从ytt1上移除掉了

mysql>show grants for ytt1

+----------------------------------+

| Grants for ytt1@%                |

+----------------------------------+

| GRANT USAGE ON *.* TO `ytt1`@`%` |

+----------------------------------+

1 row in set (0.00 sec)

至此,我分了 7 个目录说明了角色在各个方面的使用以及注意事项,希望对大家有帮助。

关于JavaWeb增删改查的简单总结 原创

2020-04-25 13:14:49

走到天涯海角

码龄4年

关注

增删改查中最简单的功能是删除,通过Id来删除单表或者多表都是可以的。

增删改查中最重要的功能是查询,因为不仅仅是单表查询、连表查询需要用到查询,新增前和修改前也要使用到查询。

查询遇到的业务比如:

1.登录:通过查询用户名和密码来找出用户,密码可以重复,但是用户名必须唯一,否则没办法找出单个用户。

(重要) 只要查询的字段是唯一的,都可以通过这个字段来查询出对应的单个对象或者集合。

什么字段是唯一的呢?

如:用户名必须唯一,文件名必须唯一,主键ID必须唯一等等,一时半会想不起来。

新增前,通过查询获得如:下拉框中的数据等

在新增时,通过获取下拉框的值或者输入框的值,就可以保存新增。

新增也会遇到循环插入的情况,如新增角色和修改角色,要循环插入数据到角色菜单关系表中。

循环插入数据的做法,我是用过两种方法,一种方法是使用c3p0,另一种是使用mybatis的foreach标签

修改前,通过查询,获得如:用户的信息,然后放到修改输入框,提高用户的使用体验。

修改时,通过隐藏区的Id,和输入框或者下拉框中的值,来进行保存修改。

文章知识点与官方知识档案匹配

Java技能树首页概览

92024 人正在系统学习中

打开CSDN APP,看更多技术内容

JavaWeb实现简单对数据库的增删改查_向晚而生的博客_web实现数...

数据库:MySQL 连接池:Druid连接池 Github仓库地址:点我 jar包下载:点我!提取码:y4ef 参考:Javaweb实现增删改查 *** 作 *** 作 用JavaWeb部分知识实现对数据库的增删改查 只展示Student和Teacher的相关代码 一、效果图 二、数据库实现 1. ...

继续访问

Web对数据库的增删改查(servlet+jsp+javaBean增删改查)

1.开始之前的准备(servlet+jsp+javaBean增删改查) jsp:页面的请求和展示 在前台主要学了jsp进行页面的请求和展示 java后台 mysql数据库 学习了java如何进行数据库增删改查 JDBC重构Dao Dao进行sql语句 将数据库的获取结果响应到页面上 ...

继续访问

最新发布 javaweb极简登录注册增删改查

javaweb极简登录注册增删改查

继续访问

简单的JavaWeb项目,基本的增删改查和分页查询等功能。

简单的JavaWeb项目,刘意老师整理,拥有登录,添加,删除,修改,分页查询,删除选中,复杂分页查询功能。

JavaWeb阶段案例--简易版管理图书系统(增删改查)

超详细JavaWeb阶段项目 --图书管理系统 -- 连接数据库在网页上实现图书的增删改查

继续访问

笔记--MySQL相关 *** 作

一 登录数据库 1 用户无密码: mysql -uroot -p mysql->2 用户有密码: MySQL -root -p[passwd] mysql->二 创建数据库: 查询: mysql>show databases+--------------------+ | Database ...

继续访问

Javaweb--通过网页实现对数据库的增删查改

文章目录Javaweb--通过网页实现对数据库的增删查改1、功能需求2、技术选型2、最终效果图3、数据库准备4、前端开发5、后端开发 Javaweb–通过网页实现对数据库的增删查改 通常在写一些后台管理系统的时候,一定会有关于数据表格的增删查改的功能实现。最近也是闲来无事,做了这个小案例,希望能帮到有写这方面需求的朋友们。 1、功能需求   这次以单个的员工数据表为例,实现以下功能需求:   1、能够正常从数据库中读取相应数据。   2、设置分页,能够通过点击页码,进行数据更新,同时支持输入页码更新数据

继续访问

让我们在网页中实现数据库的增删改查~

目录主要思路首先让我们链接自己的数据库 index.js对数据库设定一些用户规则 user.js做一个添加数据的静态网页 add.html做一个主页面 list.html最最最主要的js代码自我激励 主要思路 搭建网站服务器,实现客户端与服务器端的通信 连接数据库, 创建用户集合, 向集合中插入文档 当用户访问 /list时,将所有用户信息查询出来 1.实现路由功能 1.呈现用户列表页面 1. 再点击修改按钮的时 将用户ID传递到当前页面 2. 从数据库中查询当前用户信息 将用户信息展示到页面中 2.从数据

继续访问

JavaWeb 增删改查快速开发总结

JavaWeb增删改查基本都是那一套,其中最繁琐 变动的便是围绕SQL语句、Servlet来展开,下面是我对这些左到一个小总结,希望能对您有所帮助首先项目搭建好之后就是最关键的SQL语句 Servlet代码 Servlet方法 然后是前端methods()方法 删除和批量删除(这里用element做了个删除提示)...

继续访问

Java web阶段学习总结(华清远见)

经过web前端的学习之后,我们开启了Java web后端的学习。学习一样新的东西首先要了解它的原理,以及所要具备的一些条件。对于Servlet 的开发步骤一般有:新建一个Java web项目工程 -->创建servlet类继承Http Servlet,重写service方法 -->在web.xml中做地址映射 -->打包 -->部署 -->启动容器。这样就可以在浏览器中访问web程序。了解步骤之后就可以动手敲了。

继续访问

javaWeb反思与总结

javaWeb的回顾总结

继续访问

javaweb mysql增删改查_超详细的JavaWeb用户的增删改查实现总结

前言本文是基于单体架构实现的角色的增删改查的功能。前台使用Bootstrap+Ajax+Jsp , 后端使用Spring+SpringMvc+MyBatis进行开发,相信使用过这些技术的小伙伴应该很好的理解以下的内容,也希望看了这篇文章小伙伴们有所收获。准备工作后端技术技术说明官网SpringSpring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架。SpringMvcMVC框架ht...

继续访问

Javaee增删改查学习心得

这是我学习完Javaee增删改查后的一些经验心得,在这里记录加深一下印象。 1、创建一个web项目,在左侧项目区域右键创建新的web项目,如果没找到选择最下方other,搜索dy,点击创建web项目。 2、导入相应的jar包,oracle数据库导入oracle的jdbc连接jar包,mysql数据库导入mysql的jdbc连接jar包。在lib文件夹下导入。如需j导入s或css的jar包则最好新建...

继续访问

MySQL学习笔记(一) 下载安装+基本增删改查 + 事务

mysql笔记,内容包含下载安装,DDL,DML,DQL,DCL语法,约束,多表查询等

继续访问

简易的JavaWeb实现增删查改(附数据库)

一、概述 时隔一年,重回博客,应许多初学的同学要求,实现简单的增删查改功能的小程序,具体请详看下面的截图~~~ 二、开发环境 语言:JavaWeb、JSP、CSS 数据库:MySQL 开发工具:Eclipse 三、部分截图展示 四、代码片段 @Override public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletExceptio...

继续访问

PHP网页设计实现增删改查,包含报告实训内容

运用PHP技术和MySQL数据库实现对一个数据库表格的 *** 作。 实验环境 1.DreamweaverCS6软件2.phpStudy2018软件(包含Web服务器Apache、数据库服务器MySQL、PHP语言引擎) 实验内容安排 1.选择学习或生活环境中的一个数据表格并构造符合SQL格式的初始数据2.通过浏览器对这个数据表格进行查找、显示、修改、增添、删除5项 *** 作...

继续访问

增删查改

增删查改 增删查改在所有的语言代码中都是最基础和重要的,增删查改在代码中担任着不可缺少的一部分,整个代码项目都是靠着增删查改。“增删查改”就如同字面意思一样,增:新增(insert),删:删除(delete),查:查询(select),改:修改(update),代码做出来的东西大部分都是靠着“增删查改”来运行的! 先说的就是增:新增(insert),最简单的意思就是用原来的数据来新增一条或多条新的数据,这就是新增。首先要有一个写一个模态框才能在模...

继续访问

JavaWeb实现简单对数据库的增删改查

通过JavaWeb实现简单的对数据库的增删改查

继续访问

热门推荐 java web基本增删改查 *** 作

这是一个结合mysql数据库,java后端和jsp页面的综合案例: 声明:学习本文时,需要有一定的基础,例如jsp,jquery,servlet,Java,jdbc等基础,如果不懂的希望从基础学起,加油! 在代码中有对应的注释说明,所以我就直接上代码了 大致流程是: 首先访问到servlet层,在servlet层里调用StudentRepository的各个方法,然后展示到jsp页面中。所以浏览器访问路径是servlet层里StudentServlet中@WebServlet("/student")的路径(

继续访问

关于Javaweb课程设计的心得体会.docx

关于Javaweb课程设计的心得体会.docx关于Javaweb课程设计的心得体会.docx关于Javaweb课程设计的心得体会.docx关于Javaweb课程设计的心得体会.docx关于Javaweb课程设计的心得体会.docx关于Javaweb课程设计的心得体会.docx关于Javaweb课程设计的心得体会.docx关于Javaweb课程设计的心得体会.docx关于Javaweb课程设计的心得体会.docx

记录一下springboot+mybatis实现增删改查的基本流程和心得

记录一下springboot+mybatis实现增删改查的基本流程和心得 springboot是一个spring家族中举足轻重的那一个,也是在javaweb实际开发过程经常使用到的一个框架,熟练使用springboot是在实际工作中非常重要的。(在一开始中我认为要先学会如何使用,而不是深究底层原理和代码,毕竟一般的java开发工作中只会项目经理只会不停给你分配增删改查的功能任务,当然,随着开发经验的不断提升,只止步于增删改查会很难得到工作地位提升的机会) 第一步:导入pom.xml依赖 <!--spr

继续访问

java的开发环境和运行环境,年薪60W必备

四面阿里 面试岗位是研发工程师,直接找蚂蚁金服的大佬进行内推,参与了阿里巴巴中间件部门的提前批面试,一共经历了四次面试,拿到了口头offer。 一面: 自我介绍 项目中做了什么,难点呢。 Java的线程池说一下,各个参数的作用,如何进行的。 Redis讲一下 分布式系统的全局id如何实现。用zookeeper如何实现的呢,机器号+时间戳即可。 分布式锁的方案,redis和zookeeper那个好,如果是集群部署,高并发情况下哪个性能更好。 kafka了解么,了解哪些消息队列。 想做业务还是研究。 然后出了

继续访问

web增删改查数据库实验总结

java

写评论


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8578906.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-18
下一篇 2023-04-18

发表评论

登录后才能评论

评论列表(0条)

保存