1.创建用户create user SQLgt;create user arthur identified by m123 (m123是密码,必须是以字母开头) 一般的普通用户是无权
1.创建用户create user
SQL>create user arthur identified by m123
(m123是密码,必须是以字母开头)
一般的普通用户是无权限用create user的
可以切换用户然后创建
#用system来创建用户arthur
SQL>conn system/密码
SQL>create user arthur identified by m123
------------------------------------------------------------------------
2.注意上面创建了arthur,但是它只是个孤零零的用户,
没有任何权限,所以下面的
链接语句也不会执行成功
SQL>conn arthur/m123,//没有权限,运行不成功
3.为了获得权限,用grant,收回一个权限revoke
可以让system来赋给arthur 权限
#首先登陆system
SQL>conn system/密码
SQL>grant connect to arhtur 回车//system把connect权限给予arthur
授权成功
然后执行链接
SQL>conn arthur/m123
就成功了
--------------------------------------------------------------------------
4.让用户arthur有权限建表,如果不付权限的话,arthur用户是不可以创建表的
SQL>conn system/密码
SQL>grant resource to arthur
授权成功
SQL>conn arthur/m123
SQL>create table table_name
--------------------------------------------------------------------------
5.希望arthur用户可以查询scott用户的emp表
授权者是:scott(因为emp是里面scott的表),
SQL>conn scott/密码
SQL>grant select on emp to arthur
授权成功
下面如果arthur想查询scott表emp可以用下面的语句(emp是表)
先登录
SQL>conn arthur/m123
SQL>select * from emp;//此句错误
SQL>select * from scott.emp;
说明此时arthur对emp只有查询权限
--------------------------------------------------------------------------
6.如果arthur用户想更新scott的emp,可以用下面的授权
SQL>conn scott/密码
SQL>grant update on emp to arthur
授权成功
说明此时arthur对emp只有更改权限
--------------------------------------------------------------------------
7.如果arthur用户可以修改/删除/查询/添加scott的emp表可以用下面的语句
SQL>conn scott/密码
SQL>grant all on emp to arthur
授权成功
收回权限(scott收回arthur对emp表的查询权限)
SQL>conn scott/密码
SQL> revoke select on emp from arthur
--------------------------------------------------------------------------
8'权限的传递,scott给arthur赋权限的同时,也允许arthur继续把权限传递下去
当然arthur传递的权限不能超越scott所受的权限
scott>--arthur>----somebody
如果是对象权限,就加入 with grant option
SQL> conn scott/密码
已连接
SQL>grant select on emp to arthur with grant option
下面arthur把对emp的选择权限受权给另一个用户 tom
#先登录
SQL>conn arthur/m123
SQL>grant select on emp to tom //此种写法错误,arthur里面没有emp表
SQL>grant select on scott.emp to tom
注意:当scott把arthur的权限select回收revoke时,tom对emp的select权限也是被回收了
如果是系统权限
system 赋权给arthur

MySQL是一种开源的关系型数据库管理系统,主要用于快速、可靠地存储和检索数据。其工作原理包括客户端请求、查询解析、执行查询和返回结果。使用示例包括创建表、插入和查询数据,以及高级功能如JOIN操作。常见错误涉及SQL语法、数据类型和权限问题,优化建议包括使用索引、优化查询和分表分区。

MySQL是一个开源的关系型数据库管理系统,适用于数据存储、管理、查询和安全。1.它支持多种操作系统,广泛应用于Web应用等领域。2.通过客户端-服务器架构和不同存储引擎,MySQL高效处理数据。3.基本用法包括创建数据库和表,插入、查询和更新数据。4.高级用法涉及复杂查询和存储过程。5.常见错误可通过EXPLAIN语句调试。6.性能优化包括合理使用索引和优化查询语句。

选择MySQL的原因是其性能、可靠性、易用性和社区支持。1.MySQL提供高效的数据存储和检索功能,支持多种数据类型和高级查询操作。2.采用客户端-服务器架构和多种存储引擎,支持事务和查询优化。3.易于使用,支持多种操作系统和编程语言。4.拥有强大的社区支持,提供丰富的资源和解决方案。

InnoDB的锁机制包括共享锁、排他锁、意向锁、记录锁、间隙锁和下一个键锁。1.共享锁允许事务读取数据而不阻止其他事务读取。2.排他锁阻止其他事务读取和修改数据。3.意向锁优化锁效率。4.记录锁锁定索引记录。5.间隙锁锁定索引记录间隙。6.下一个键锁是记录锁和间隙锁的组合,确保数据一致性。

MySQL查询性能不佳的原因主要包括没有使用索引、查询优化器选择错误的执行计划、表设计不合理、数据量过大和锁竞争。 1.没有索引导致查询缓慢,添加索引后可显着提升性能。 2.使用EXPLAIN命令可以分析查询计划,找出优化器错误。 3.重构表结构和优化JOIN条件可改善表设计问题。 4.数据量大时,采用分区和分表策略。 5.高并发环境下,优化事务和锁策略可减少锁竞争。

在数据库优化中,应根据查询需求选择索引策略:1.当查询涉及多个列且条件顺序固定时,使用复合索引;2.当查询涉及多个列但条件顺序不固定时,使用多个单列索引。复合索引适用于优化多列查询,单列索引则适合单列查询。

要优化MySQL慢查询,需使用slowquerylog和performance_schema:1.启用slowquerylog并设置阈值,记录慢查询;2.利用performance_schema分析查询执行细节,找出性能瓶颈并优化。

MySQL和SQL是开发者必备技能。1.MySQL是开源的关系型数据库管理系统,SQL是用于管理和操作数据库的标准语言。2.MySQL通过高效的数据存储和检索功能支持多种存储引擎,SQL通过简单语句完成复杂数据操作。3.使用示例包括基本查询和高级查询,如按条件过滤和排序。4.常见错误包括语法错误和性能问题,可通过检查SQL语句和使用EXPLAIN命令优化。5.性能优化技巧包括使用索引、避免全表扫描、优化JOIN操作和提升代码可读性。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

WebStorm Mac版
好用的JavaScript开发工具

Dreamweaver Mac版
视觉化网页开发工具

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

禅工作室 13.0.1
功能强大的PHP集成开发环境