粉丝2770获赞3.1万

数据库管理工具最强平替,我终于等到了!诸位总问我用的什么软件,很遗憾的告诉大家,市面上很多软件是需要付费下载的,而开源免费的速度实在慢,不小心就卡死了。 那么是否有一个软件既高效又可以免费使用?还真有,它就是 sql studio, 一款多数据库管理工具, 国内个人版免费,完美适配 windows、 linux、 mac 三种操作系统平台,甚至你都不需要安装。进入脉冲软件官网创建一个账户,选择要下载的版本, 支持客户端与 web 版本同时使用,方便协同办公。甚至还有一个别的数据库管理工具都没的功能,导入、导出、记录历史、查询、 右键、快捷键等,遇到超大数据量时,速度慢,甚至直接卡丝闪退。而 sequel studio 下载三千万行的数据仅需一百四十五秒,且我们能随时终止执行,保障了操作的灵活性。 最重要的是他支持团队协作。您可以用 sequel studio 直接创建群组,邀请成员加入群组, 随后设置群组的数据员权限,参与协作。用户管理功能可以设置用户或管理员的角色,只有管理员可以增加和删除数据员,这样避免了许多安全问题。 所有成员在浏览器中共同办公,无需知道数据库的地址与密码。用户分析界面可以看到执行次数、执行类型、操作的数据库开发人 原所有对数据库的操作痕迹,包括查询、删除、更新、插入 ddl 等均会留存,便于事后的审计。完全白嫖的软件,确定不去试试吗?



一款非常实用的开源 whip 数据库管理工具 k b d m s 大家好,我是你们的科技小伙伴,小于科技今天给大家带来一款非常实用的开源 whip 数据库管理工具 k b d m s 对于经常与数据库打交道的小伙伴们来说,这绝对是一个不可多得的好帮手。 k b d m s 是一款基于 will 的开源数据库管理工具, 支持 mysql score server 数据库,你可以轻松的对数据库进行增山改查。 接下来我们详细聊聊它的特色功能。多数据库支持 k b d m s 支持多种数据库,无论你是 mysql 的粉丝还是 sko server 的拥盹,都能在这里找到你的舞台。直观易用的界面,它的界面设计简洁至关, 即使你是数据库管理的小白也能快速上手。通过图形化的操作界面,你可以轻松的管理数据库表字段、 d d l 等。强大的查询功能 kbdms 提供了强大的 sql 查询功能,支持查看历史查询语句和打开本地 sql 脚本文件查询。 你可以通过简单的查看历史 sql 快速构建查询语句,轻松获取你需要的数据。 全线控制,避免数据源全线不可控的风险,避免数据库表被无故修改。勿操作拦截 s q l 语句不小心写错,不用担心,该工具将阻断相应 s q l 的执行,保障数据的安全。记录可追踪,所有的 s q l 执行 记录都会被该工具记录,方便数据的恢复和定则操作体验,该工具的操作体验与客户端基本无异,而且还开发了很多新功能,方便大家使用。 建表规范平台推出了很多建表及所以相关的规范,并且从前端图形化页面上实现了相应物操作的拦截,帮助用户更好的规范库表。总结, k b d m s 是一个万版的数据库管理平台,此平台支持全线可控执行记录追踪、数据源配置管理、在线库表查询、加编辑、加新增等操作, 无论你是数据库管理员还是开发者,都能从中受益。如果你正在寻找一款方便应用的数据库管理工具,不妨试试 kbdms。 好了,今天的分享就到这里,如果你觉得这个视频对你有帮助,别忘了点赞、分享和关注哦,我们下期再见!

应网友的要求,围棋开发的 s q l 数据库管理器软件顺利竣工,现将教程发布,祝他工作顺利! sql server 数据库管理器是一款较为专业 sql server 数据库管理工具,根据网友要求,实现了对 sql server 数据库进行简单地增、删、改、查等工作,避免了 因工作人员部署微软 sql 数据库管理器的操作使用误操作而造成的损失,也是想要学习操作 sql server 数据库命令进行练习的好帮手。体积小,安装方便,操作方法简单是本软件的特点。点击桌面图标,运行本软件, 输入连接服务器所需的信息,点击登录,登录完成后,选择需要操作的,表明所选择的表的各自段,详细 信息会显示在以下框中,点击相应的功能按钮, sql 命令框中会显示命令提示语法,可修改其语句是其符合你的意图。输入和修改 sql 语句需要有相关数据库专业基础,此处不再详细叙述,请看我的操作。 具有语法错误提示,并看到分别执行了正确的响应。 如有所需,敬请安装使用。本软件运行环境, win 七 win 十一系统的六、四、三二版本使用注意事项,如果程序无法运行,请自行安装。 net 四点零框架。

我们来看看我们的 level k 的工具安装,我们拿到之后呢,就是这样,我们解压开 双击,然后点下一步,同意下一步。 那安装位置呢?大家随意选择,如这里我放到了地盘, 那在这里因为我已经安装过了,所以不安装了。 那安全完之后呢?怎么让他可以永久使用呢? 我们需要双击打开 patch navigate, 点一 x 一这个工具。 大家可以到我们虚幻世俗的网站上获取百度网盘的下载链接,包括软件和注册机都有, 他会弹出一个打开文件的窗口。那在这里呢,我们找到我们刚刚安装目录,已经安装好的那个 安装目录下面的 navork 的点 ex 就可以成功激活他了。对,就是这么简单,打开这个 ex 一, 那我们就完成破解了,对吧?那这一期视频的内容就是这些,感谢你的观看,我们下期视频再见。拜拜。

一款通过浏览器管理服务器、数据库缓存开源工具 meaty go。 大家好,我是你们的科技小伙伴小鱼科技。今天咱们不聊代码,不聊算法,聊了一个能让运为工作如虎添翼的神器。 meaty go 这款开源工具让你只需动动手指, 就能在浏览器里轻松管理服务器、数据库甚至是缓存,从此告别复杂的命令行时代。他专为运为工程师打造,一站式解决 linuk 服务器 my school post grace 和数据库 radis 满购 d b 缓存的管理难题。 接下来手把手教你使用 dot 快速部署。准备好 mysul 数据库,新建个名为 mefego 的库,把 mefego ceol 导入其中,再创建一个存放配置文件 的目录,修改咖啡联络中连接数据库配置,然后使用 darkerpool 拉取镜像,再根据自己创建的目录运行容器,然后输入 ip 端口就能访问 y 贴面默认账号是 nm, 登录后就可以添加项目和服务器接点,不仅可以实时监控服务器的状态,还可以直接在 ybssh 像玩一样操控 linux 系统,查看文件执行脚本就像开了挂一样方便。 可以对 max 给我头上面色号等数据库进行查询、备份、恢复等操作, redisamandodb 也不在话下,无论是单机还是集群模式,统统都能一键搞定。 赶紧去试试吧,让运维工作也变得如此简单有趣。如果你觉得这个视频对你有帮助,别忘了点赞、分享和关注我,我们下期再见!

数据库是按照数据结构来组织、存储和管理数据的仓库,而数据库管理系统主要用于对数据库的操作和管理,是一种软件,比如 mysql 就是一种关系型数据库管理系统。 mysql 的安装方式有很多种,这里主要介绍三种常用的安装方式。 第一个是使用 maxcrow 官方提供的安装程序进行安装, maxcrow 的官网是 maxcrow 点 com, 进入官网之后,在页面顶部就可以看到一个下载的 tabeye, 点击一下就可以进入到下载页面,在页面的最下面有一个开源社区版的链接地址,点进来之后就可以看到各种系统对应的安装包, 右侧这一列是各种语言的驱动程序, a, p, i 和工具等等。当我们点击下载链接之后,他会提示我们登录二狗账户,点击这个不用了,谢谢,就可以直接下载了,也可以使用。第二种安装方式就是使用操作系统自带的包管理工具来安装,只需要在命令行中输入一条 instal 命令就可以了。最后一 种式使用刀口来安装也非常简单,只需要在命令行输入一条刀口, pro max girl 命令就可以自动下载并安装 max girl 了。后面也会为大家演示在 mac, linus 和 windows 上的安装过程,如果你已经安装好了,可以直接跳过这些。本节课内容就到这里,我们下节课再见。 max 系统推荐使用 homebrew 包管理器来安装,打开终端之后直接输入一条 install 命令就可以了。 需要注意的一点是,安装完成之后默认是不会自动启动服务的,需要执行一下下面的命令来启动服务,也可以使用下面的命令来设置为开机自动启动。 启动之后我们就可以使用命令行来连接一下 mysql 的服务,稍微解释一下这一行命令。 mysql 是一个命令行客户端的程序,我们刚刚启动的是服务端,现在我们要使用客户端来连接服务端后面的 杠 u, route 表示使用 route 用户来连接,杠 p 表示使用密码。登录回车之后就会提示我们输入密码。 max 系统中使用 home pro 来安装的 mysql 默认是没有密码的,直接回车就可以了。回车之后可以看到一个 msql 和一个大于号的提示符,就表示我们已经成功连接到了 msql 的服务端了。 这里可以输入一些 skr 语句来测试一下,比如我们可以输入一个用来查看 my skr 中有哪些数据库的语句, show date basis 就可以看到所有的数据库了,这些数据库都是 mysql 安装好之后默认创建的,可以使用 use 命令来切换到某一个数据库,比如我们切换到 mysql 这个数据库,然后再输入一个 show tables 命令,就可以看到数据库中有哪些表。还可以使用 select 命令来查看表中的数据, 比如就来查询一下 tablesprivate 这个表中的数据,回车之后就可以看到结果了。大家先不用关心这些语句的含义,这里 只是为了掩饰 mysql 的安装和使用,来让大家对 mysql 有一个初步的了解。后面我们会详细讲解 skl 语句的各种用法。除了自带的命令行客户端之外, mysql 还提供了一个可视化的图形化 gy 工具 mysql workbox, 它可以帮助我们更加方便的设计、创建和管理数据库表、用户等等。 可以到官网下载对应版本的安装包来安装,安装过程也非常简单, mac 系统的话直接双击安装包,然后把它拖到应用程序里面就可以了, windows 的话一路下一步就可以了。安装完成之后,双击打开 workbang。 左侧是一个导航菜单,包括三个部分,最上面这一个是连接管理器,可以用来创建和管理到不同的 maxcrof 段的连接。 点击加号就可以创建一个新的连接,比如我们来连接一下刚刚安装的 mysql 服务端。第一个字段是连接的名称,可以随意填写,这里就简单填写一个 local house 的,表示连接的 是本地的 msql 服务。连接方法,主机名、端口号和用户名都保什么人就可以了。然后点击一下下面的测试连接按钮,如果弹出成功页面的话,就表示配置没有问题,点击右下角的 ok 按钮之后连接配置就完成了。在页面上也能够看到刚刚添加的这个链接了,点击一下就可以连接到 msql 的服务端。 左侧是一个导航区域,里面有很多功能。最上面的部分是数据库管理,在这里可以查看服务器的状态管理用户和权限,数据导入导出等等。 导航区域的第二部分是实力管理,可以在这里执行服务的启动停止,查看运行日志和配置参数等等操作。 最后一部分是服务器的性能监控,可以查看服务器的运行状态、性能以及资源的使用情况。中间的部分是一个 sql 编辑器,可以在这里输入 sql 语句并执行,下面就会看到执行的结果。左侧菜单栏的第二个选项是一个模型设计工具, 可以用来设计和浏览数据库的压图。比如我们点进来看一下,可以看到它自带了一个 sakila 的数据库模型,这是 max q l 自带的一个演示数据库,用来帮助我们学习 max q l。 这里还有一个非常冷门的小知识点,就是 sakila, 也是 max l 的 logo 里面那个小海豚的名字。我们点击一下这个模型就可以看到数据库的压图了, 可以看到里面有哪些表表之间的关系是怎么样的,这样可以更加直观的了解这个数据库的结构。也可以在设计一个新的数据库的时候,使用这个工具来设计。右键点击某一个表,然后点击一下编辑按钮,就可以看到这个表的详细信息了,包括它的字段、缩影、逐渐等等。 最后一个选项是一个数据迁移工具,可以将其他数据库的数据迁移到 max q 二中,或者将 max q 二的数据迁移到另一个数据库中。除了 work 半句之外,还有很多其他的旧爱工具也非常好用,比如 debut work, navicate 等等,大家可以根据自己的喜好来 来选择。 dpr 是一个免费开源的数据库管理工具,它支持大部分的主流数据库,这个是官网提供的,支持数据库列表,只要你能抢到的数据库基本上都支持。还支持包括 windows、 mac、 linux 在内的多种操作系统,基本上完全可以满足日常的使用了,它的安装也非常简单, 可以使用包管理器来安装,也可以从官网下载安装包来安装。安装的过程这里就不演示了,除了免费开源的社区版之外,也提供了功能更加强大的专业收费版。 最后再介绍一下 navicat, 它是一个收费的数据库管理工具,功能方面和刚刚的两个工具基本相同,支持大部分的主流数据库,但是都是收费的,而且每个数据库都提供了单独的版本,比如你用 mysql 的话,需要单独购买 mysql 的版本, 那过两天你要想用 mongodb 的话,不好意思你还得再重新购买 mongodb 的版本,或者你也可以购买一个更贵的包含所有数据库的专业版。 niket 的安装也非常简单,时间关系 这里就不演示了,大家可以自己去官网下载安装包,然后安装就可以了。 linux 系统上的安装过程和 mac 类似,也是推荐使用包管理工具来安装,不过不同的 linux 发行版的包管理工具不太一样,比如五版图的 a p t center s 的 m, vidora 的 dnf 等等,但是安装命令都是类似的,后面加上 install, 然后加上 messacle gun server 就可以了。 或者也可以到官网下载对应版本的 rpm 包,然后再手动指定这个包来安装也是 ok 的。下面就以无斑图系统作为例子,来演示一下安装的过程。 输入 instal 命令之后会提示我们是否继续安装,输入 y 之后就会开始下载和安装了,这里我们需要稍微等一下,安装完成之后会自动启动 msql 的服务,可以使用下面的命令来查看服务的状态,看到这里显示的 active 就表示服务已经启动成功了,如果没有启动的话,也可以使用下面的命令来手工启动一下 下。这里说一下很多同学经常会遇到的几个问题。第一个就是 note 用户密码的问题,和麦克上不同的是,另一个系统安装完成之后默认是有密码的,如果密码错误的话,当然也就无法连接到 msql 的服务。 乌斑图系统上的话,可以找到这个位置的这个配置文件,它里面记载了一个默认的用户名和密码,那我们就可以使用这个用户名和密码来连接到 msql 的服务。在命令行终端输入 msql 杠 u 后面加上配置文件中的用户名,后面再加上一个杠 p, 然后复制一下密码,回车之后就可以连接到 msql 的服务了。 但是这个用户名和密码都不太好记,如果每次都需要到这个软件里面找一下用户名和密码,也是非常麻烦的。这就是我们的第二个问题,可不可以修改一下 rot 用户的密码,然后直接使用 rot 用户来连接呢?当然是可以的,连接到 msql 的服务之后,就可以使用下面的语句来修改 rot 用户的密码了,这里需要稍微注意一下,修改密码的语句在 不同的 msq 版本上是不同的,如果你使用的是五点七以下的版本,那么使用上面两行命令是可以的。如果你使用的是比较新的五点七点九之后的版本,那么上面这两行语序就不可以了, 因为帕索尔的字段和帕索尔的函数都被废弃了,密码的加密方式也发生了变化,需要换成下面的语句来修改密码。最后不要忘记执行一个 flash 命令来刷新一下权限,然后就可以使用新的密码来登录了。 第三个问题是关于 maxcare 服务的监听地址的,很多时候数据库服务是需要单独安装在远程服务器上的,为了方便,我们一般也会使用 workbench 或者 navycat 这样的可视化的客户端工具来连接到远程的 maxcare 服务,但是在刚刚安装好之后,经常会提示无法连接。 这种情况一般有几个常见的原因。首先第一个就是可能你的福气并没有开放三三零六端口的访问,可以放开三三零六端口的权限,如果在开放环境使用的话,也可以直接关闭防火墙。第二个就是 数据库中的 rot 用户默认是没有开放远程访问的权限的,可以使用下面的语句来查看一下 rot 用户的权限。如果结果中 hot 字段的内容是 local hot 的话,就表示这个用户只能在本地访问。 可以使用下面的语句把耗子的字段的值改成百分号,然后就可以在任何地方访问了,但是这样也会带来一定的安全风险,所以不建议在生产环境中修改成这样的配置。 最后还有一个是关于配置文件中的监听地址的,默认情况下, myscal 服务至监听本地的 ip 地址,这样的话从外部也是无法连接到 myscal 的服务的。不同系统的配置文件位置也会有所不同,详细请参考我们的笔记文档。 使用 vi 打开这个配置文件之后,向下找到一个 bid drives, 也就是绑定地址这个位置。这两行配置是用来设置服务监听的, ip 地址的默认是指监听本机的 ipd 值,这样我们从外部是无法连接到 maxcrow 的服务的。可以把这两行后面的幺二七点、零点零点一 改成四个零,表示监听所有的 ip 地址,然后保存退出,再重启一下 myscal 的服务,然后再到 g u i 工具中修改一下配置,使用 note 用户登录测试一下, 可以看到已经成功登录到了 mysql 的服务端了。最后我们再来看一下 windows 系统上的安装过程, windows 安装过程比较简单,从官网下载好安装包之后,基本上一路下一步就可以了。 首先选择一个安装类型,可以选择默认的开发者类型,这样除了 mysql server 之外,还会帮我们安装图形化界面、 workbench 以及 share 和 rooter 等工具。当然也可以选择只安装 server, 点击执行按钮之后就开始安装了, 然后一路下一步就可以了。和 mac 或者 linux 系统上不同的是,中间会有一部提示我们设置 note 用户的密码,也就是后面我们登录 max k 二服务设 需要使用的密码。安装完成之后会自动启动 mascal 服务,我们可以使用自带的命令行客户端来连接一下,启动之后输入刚刚安装时设置的密码,然后就可以看到熟悉的 mascal 命令行客户端了。 mexico style 是一个交互式的 g s python 和 s g l 的终端,可以用于执行数据库管理任务,它提供了自动语法、高量语法检查、自动完成和上下文的感知的提示,从而提高了开发人员和 dba 的生产力。它的安装非常简单,直接从官网下载对应版本的安装文件,然后一路下一步就可以了。 安装完成之后,可以在命令行中输入 myscls h 命令来启动。看到命令提示符左边变成了这样,带有背景颜色的 myscl 和 gs 就表示启动成功了。 messico shire 的命令都是以反斜线开头的,比如反斜线 help 命令,可以查看帮助信息。反斜线 connect 命令可以连接到 mecco 数据库, 比如来连接本地的 mascal 服务器的话,就可以输入反斜线 connect, 后面加上空格,然后写上 root at locals 就可以了。回车之后会提示我们输入密码。输入之后就可以看到左边的命令提示符多了一个灰色背景的部分,表示已经连接到了本地的 maxcal 服务器了。 连接之后他会提示我们目前并没有选择任何的数据库。可以使用反斜线 usb 命令来选择一个数据库,比如我们就来选择一下 game, 这个数据库就在后面加上库的名字就可以了。回车之后就能够看到左边的命令提示符,又多了一个 game, 表示当前选择的数据库,也就是我们在执行 s 杠语句的时候,都是在 game 这个数据库中执行的。 在 game 的后面还有一个 g s, 表示当前的语言是 javascript。 那之前我们也提到过 mexico shell 是支持 g s, python 和 s l 三种语言的,默认是使用 g s, 如果想要切换到其他语言的话,可以输入一个反斜线,后面直接加上语言的缩写 就可以了。比如反斜线 py 就可以切换到 python 语言,然后就可以在这里直接执行 python 的代码反斜线 sql 就可以切换到 sql 语言,切换到 sql 之后就可以在这里直接执行各种 skl 语句了,后面在终端或者 navicat 中执行 skl 语句的效果是一样的。 r 口官方还提供了一个 bscode mexico shell 插件,可以在 vscod 中直接使用 mecco shell。 打开 vscod 之后,在扩展中搜索 mecco 就可以找到这个插件了,直接安装就可以了。 安装完成之后,在导航栏就多了一个 masco show 的图标,点击这个图标就可以打开 mscoco 的终端来使用了。这个插件有点类似于 python 的猪皮特 notebook, 可以在这里执行 python g s 或者 sk 语句,执行之后的结果就会在下面显示出来。 亮点是所有执行过的语句都会被记录下来。 mexico shell 比较适合用来做一些数据库的管理工作,它可以通过编写一些日常经常重复使用到的脚本来提高工作效率, 比如备份数据库管理集群等等。如果你是一个开发人员,那么一个更加强大和方便的图形化工具可能更加适合你。本节课就到这里,我们下节课再见。 关系型数据库管理系统和非关系型数据库管理系统是两种不同的数据库管理系统。关系型数据库管理系统采用了关系模型来组织数据,借助于集合代数等数据概念和方法来处理数据,通过二维表来表示数据之间的联系, 二维表的每一行表示一条数据,记录每一列表示一个字段,也就是记录的某个属性。不同的表之间通过关联字段来建立联系,这种关联关系就是关系型数据库管理系统的特点。 mythical、 oracle、 host, grace、 xpl 等等都是常见的关系型数据库管理系统的代表。 与之相对的是非关系型数据库管理系统,他是对关系型数据库管理系统的补充和扩展。由于互联网的快速发展,仅仅使用关系型 数据库已经不能满足需求了,比如各种短视频、流媒体、地理位置信息、社交网络等等。这些数据的特点是数据量大,数据结构复杂,数据类型多种多样,这也就决定了关系型数据库管理系统并不能很好的处理这些数据,所以就出现了非关系型数据库管理系统。常见的非关系型数据库有下面这些。 c 口是一种用来操作关系型数据库的语言。在关系型数据库中,数据一般都是以表的形式来存储的, c 口可以用来操作表中的数据。几乎所有的关系型数据库都支持 c 口。 在之前的 mac 口安装以及常见问题那一节,其实你已经接触过一些 c 口语句了,比如更新骆驼用户密码以及防权限时使用的 update 语句,查询用户时使用的 c like 语句。你可以在 mac 口的客户端命令行中直接输入这些语句, 也可以在可视化的旧爱工具,比如 work on 曲或者 narrative cat 中执行这些语句。一般来说, c 口语句并不区分大小写,但是为了提高可读性, 我们一般会把关键字大写,把表名、列名和其他名称小写。按照功能的不同, c 口语句可以分为以下几类。数据定义语言,用来定义数据库对象,比如数据库表列等等。相关的关键字包括 great, job, altar 等等。 数据操作语言,用来对数据库中的记录进行新增、删除或者修改。关键字包括 insert, delete 和 update 等等。数据查询语言,用来查询数据库中的记录。关键字包括 select 和 where 等等。 数据控制语言,用来定义数据库的访问权限和安全级别,以及创建用户等等。关键字包括 grant 和 revok。 下面我们就从创建一个数据库开始,一步一步来学习一下 c 口语句的使用。 可以在 mac c 口的命令行客户端或者 g u i 工具中执行一个 created based 语句来创建一个数据库。比如老杨如果想要开发一款游戏的话,那么首先必须要创建一个数据库,用 用来存储游戏中的各种数据,那我们就来看一下如何操作。首先连接到客户端之后,输入一下 show databases 来查看当前已经存在的数据库,可以看到现在有四个数据库。然后我们来创建一个名字叫做 game 的数据库,在命令行输入 create database, game 回车之后,数据库的创建就完成了,然后再输入 show databases 来查看一下,可以看到现在就多了一个 game 的数据库,如果你不习惯使用命令行的话,也可以在 gui 工具中执行这个语句,结果是一样的。 在之前的课程中,我们介绍了 organg 的使用,为了让大家多接触一些不同的工具,这节课我们就来看一下 navycat, 每个人的喜好也是不同的,这里你可以使用任何你喜欢的工具。 打开 nv 开的之后,先来点击左上角的连加钮来新建一个连接,数据过类型选择 mc 孔,输入连接信息之后点击测试连接,如果没有问题的话就可以保存链接了。然后在左边的连接列表中就可以看到我们刚刚创建的连接, 这样以后就可以直接双击来连接到这个 mc 口的福气了。连接之后就会显示出所有的数据库,包括我们刚刚创建的 game, 这个数据库双击一下就会进入到这个数据库中,能够看到它里面的表视图和存储过程等等内容。 由于这个数据库是刚刚创建的,所以里面还没有任何内容,点击一下左上角的新建查询按钮,可以打开一个新的查询窗口, 在这里我们可以输入各种 c 口语句。和刚刚在命令行中执行一样,我们输入 sodat basis 来查看当前已经存在的数据库,然后点击一下上面的这个执行按钮,快捷键的话是 ctrl 加 r 或者 ctrl 加 r, 在下面就可以看到所有的数据库列表了,和刚刚在命令行中看到的是一样的。 删除数据库也非常简单,可以使用 drop database, 后面加上要删除的数据库的名字就可以了,比如来删除刚刚创建的 game 数据库的话,就可以输入 drop database 后面加上 game。 执行之后再来看一下,可以看 game 数据库已经被删除了,在左侧连接列表中还是能看到这个数据库,是因为界面并没有刷新,右键点击一下,在弹出菜单中选择刷新,刷新之后就看不到这个数据库了。 当然我们也可以使用 gy 工具来创建一个数据库,鼠标右键点击连接之后选择新建数据库,输入数据库的名字之后点击确定就可以了。下面两个选项可以不用填写,他们是用来设置自复题和排序规则的,然后点击确定就可以创建这个数据库了。 再来刷新一下连接列表,就可以看到刚刚新建的这个数据库了。我们也可以通过右键菜单中的选项来编辑或者删除这个数据库,也是非常方便的。时间关系这里就不演示了。 有了数据库之后,我们就可以在数据库中创建表了。在创建表之前,我们需要先使用右词语句来选择一个数据库,比如这里我们就选择使用 game 这个 数据库,那么就输入 use game, 然后点击执行或者使用快捷键来执行一下。执行之后就可以看到左侧的连接列表中 game 数据库被加速显示了,表示我们当前正在使用这个数据库,也可以在上面的下拉列表中直接选择 game 数据库也是一样的。然后就可以使用 create 语句来见表了, create 后面加上一个 table 关键字,然后加上一个表的名称,最后加上一对括号,括号中是字段的名称和数据类型, 字段之间用逗号隔开,最后一个字段后面不需要加逗号。比如我们要做的游戏中需要一个玩家表,表中就需要包含玩家的 id、 名字、等级、经验、金币等等信息, 那么就可以输入 create, 后面加上一个 table 的关键字,然后加上一个表的名称,比如 player 后面加上一对括号。括号中首先是玩家的 id 是一个整数,然后是名字是一个字符串,大小是一百个字符,然后是等级也是一个整数,再加上一个同样是整数的 的经验值,最后是一个时间值,数值类型的金钱。这里就涉及到了 mecco 的数据类型。 mecco 中的数据类型大致可以分为五个大的类别,包括数值类型、日期和时间类型、字符串类型这些常用的传统类型,以及新增的阶层类型和空间类型。这两个新类型 每种类型也都包括一些不同的子类型,我们可以根据需要来选择,比如数值类型包括整数类型和浮点数类型。整数类型根据占用的存储空间的不同,又包括 tenniint、 spawn int, int 和 big int, 分别对应一到八个字节的存储空间,可以存储不同范围的整数。 浮点数类型包括 float 和 double, 分别对应四个字节和八个字节的存储空间,可以存储不同范围的浮点数。日期和时间类型包括 date, time、 day time 和 time。 stamp, 分别对应日期、时间、日期、时间和时间。戳字符串类型包括 chart, what chart, text 和 blob 等等,分别对应定长字符串、变长字符串文本 以及二进制数据。比如刚刚我们定义的 word 叉,括号一百就表示长度为一百的变长字符串,而 dancing mo 十到二二就表示长度为十,并且保留两位小数的十进制数值比较。新版本的麦 c 口还支持接线类型以及点线多边形等几何空间类型。 创建好表之后,我们可以使用 d e s c 语句来查看表的结构。 d e s c 是 describe 的说写,意思是描述用来描述表的结构。 比如如果想查看刚刚创建的 player 表的结构,就可以输入 dfc, 后面加上表明 player, 然后点击执行按钮或者按下快捷键 ctrl 加 r 或者 ctrl 加 r 就可以了。在下面的执行结果中就会显示出表的结构,包括表中每列的名称,数据类型是否允许为空,默认值等等。 如果我们创建表的时候发现表结构有问题需要修改的话,那么就可以使用 alt 语句来修改表结构。比如我们发现文家名字的长度可能不够,需要修改为更长的长 长度,那么就可以使用 alt 语句来修改一下表的结构。 alt 后面跟上 table 关键字和表明,然后跟上 modify column 关键字表示修改列,然后跟上想要修改的列名和新的数据类型。然后执行一下之后,我们再来查看一下新的表结构。可以看到内幕的数据类型已经变成了 warx 两百。 除了数据类型之外,字段的名称也是可以修改的,比如我们可以把 name 这一列改成 nickname 昵称,那么就可以输入 autotable 关键字后面加上表明 player, 然后再加上一个 renamecolom 关键字表示重命名。字段后面加上旧的字段名和一个 to 关键字,最后再加上我们想要修改成的一个新的字段名 nickname, 然后执行一下,再来看一下表结构, 可以看到 name 这一列已经变成了 nickname。 除了修改列的名称和数据类型之外,也可以使用 at com。 我们来添加一个新的字段,比如我们就来添 加一个玩家最后登录的时间,那么就可以输入 auto table player 后面加上一个 atom 关键字,然后加上想要添加的自断名 last login, 最后是一个 day time 的数据类型。执行之后再来查看一下表的结构,可以看到在最后一列多了一个类型是 day time 的 last login, 说明添加已经成功了。 可以添加字段的话,当然也就可以使用 drop column 来删除一个字段,比如我们把刚刚添加的 last login 字段再删除掉,只需要输入 alter table player, 后面加上一个 job column 关键字,最后加上想要删除的字段名称就可以了。 执行之后再来查看一下表结构,可以看到 last login 这一列已经被删除了。最后如果我们想要删除整个表的话,可以使用 droptable 语句,比如来删除刚刚创建的 player 表的话,就可以输入 droptable 后面加上表明 player, 然后执行一下就可以了。执行之后刷新一下数据 库,可以看到 player 表已经不见了。以上就是创建和管理表的一些基本操作,我也非常推荐你自己动手来尝试一下。 到目前为止,我们已经学会了如何创建数据库和表,以及如何来修改他们的结构。这节课我们来看一下如何对表中的数据进行一些常用的操作。首先还是来新建一个玩家表, critable 关键字后面加上表明 player, 然后是 id, 姓名、等级、经验和金钱这几个字段。创建完成之后,我们来向这个表中插入一条数据,可以使用 insert 语句,它的语法结构是这样的, 首先是一个音色的音图,关键字后面跟上表的名称,然后是括号括起来的列的名称,再用 values, 关键字后面加上具体的值就可以了。如果表明后面的括号中包括了所有的列,并且顺序也和表结构保持一致的话,那么这个括号以及它里面的列名就都可以省略掉。直接在 表明后面加上 y 六次关键词,然后加长值就可以了。也可以只写上部分列的名称,只要没有列出来的部分,就会使用我们在键表时设置的默认值来填充。回车之后就可以看到提示我们插入了一条数据,然后可以使用 c like 语句来查看一下数据。 c like 后面跟上要查询的列名,也可以使用一个信号来代替所有的列, 然后跟上一个 form 关键字和想要查询的表的名称,表示从哪个表来查询数据。然后来执行一下这条语句,就可以看到我们刚刚插入的数据了。因斯尔特也可以插入多条数据,直接在 y 六后面加上多组数据就可以了,数据之间用逗号隔开, 比如我们再来插入两条记录,然后来执行一下,这样就可以插入多条数据了。再来使用 c like 查询一下数据,可以看到我们的玩家队伍又扩大了。这里李四和王五同学的等级和经验都是闹,这是因为我们在创建表的时候并没有指定 默认值,那默认就会是一个 not 表示一个空值,这样显然是不太合理的。一般游戏中的玩家等级都是从一级开始,那我们就可以修改一下这个表结构,把等级的默认值改成一。大家还记得怎么来修改表的结构吗?没错,是使用 alt table 关键字后面加上表的名称,然后加上一个 modify, 然后是字段的名称和类型, 在最后加上一个 default, 一,表示默认值是一级,然后再来插入一条数据,执行之后再来查看一下数据,可以看到最后插入的这条记录虽然没有指定他的等级,但是他的等级已经默认为一级了。 我们也可以在建表的时候就直接指定一个默认值。除了默认值之外,还可以使用 now 或者 not now 来指定这个字段是否允许为空值,或者使用 unic 来指定这个字段必须是唯一的。这些都是一种约束,用来保障数据的正确性和完整性。经常用到的约束包括下面几种,除了刚刚我们提到的默认值,非空和唯一约束之外, 还有主见约束和外见约束等等。主见约束用来保证数据的唯一性不为空,并且每个表只能有一个主见,外见约束用来保证数据的一致性,一个表的外见必须是另一个表的主见。这些约束内容大家可以刻下自己尝试一下。 这里有个小问题,我们之前插入的李四和王五同学的等级还是 now, 我们可以使用 update 语句来修改一下他们的等级, update 语句后面跟上表的名称,然后用 set 关键字加上要修改的列名和值,后面跟上一个 y 条件词句,表示要修改哪些数据。比如要把李四同学的等级修改为一级,就可以在 where 后面指定内幕为李四, 这样就可以把李四同学的等级修改为一级了。同样的方法,我们再来修改一下王五同学的等级,然后再来查看一下数据,可以看到现在所有玩家的等级都是一级了,但是后面的经验和金币还是闹,如果也像刚刚那样一条一条修改的话,显然是非常麻烦的,其实是可以一次性修改所有的数据的, 只要把后面的 vr 条件词句去掉就可以了,这样就会把所有的数据都修改掉。比如我们要把所有玩家的经验和金钱都修改为零的话,就可以输入 update, 后面加上表明 player, 然后加上一个赛的关键字,再加上想要设置的自断的名称和值就可以了。如果有多个自断的话,中间可以用逗号格开 再来执行一下,然后再看一下结果,可以看到所有玩家的经验和金钱都已经被修改成零了。这里需要提醒一下各位同学,在实际的开发中不加威尔条件是非常危险的行为,尤其是在执行 update 或者迪丽的语句的时候。 最后再来看一下如何删除表中的数据,我们可以使用 delete 语句后面跟上表明,然后使用外二条件此句来指定要删除哪些数据。比如我们要删除所有金钱为零的玩家,就可以在外二条件后面指定 go 等于零, 然后再来查看一下数据,可以看到所有的玩家都被删除了, 我们需要对数据库执行一些导入或者导出的操作,方便我们对数据进行备份,或者将数据从一个库迁移到另一个库中。比如这里我们就给各位同学准备了一些数据库文件,里面是我们课程中需要使用到的一些数据,方便大家跟着教程一边学习一边实践,以及在后续的课程中来演示一些比较复杂的 c 口语句。 看完这一小节之后,你就可以将这些数据导入到你自己的数据库中了。数据的导入导出可以使用命令来完成,也可以在图情话界面中直接操作。这里我们先来看一下命令行的方式,可以使用 mecco dump 命令来导出数据,输入 mecco dump 之后, 后面加上杠 u 参数,指定一个用户名,然后加上杠 p 参数,指定密码,后面再加上数据库的名称和表的名称,表的名称可以省略,如果省略的话就会导出整个数据库的所有数据,最后加上一个大于号和文件名来表示将数据导出到这个文件中。比如我们来导出一下 game 数据库中的数据,回车之后会提示 是输入密码,输入之后就会将数据导出到 gamersql 这个文件中了。我们来打开一下这个文件,可以看到里面就是一条条的 c 口语句,这些语句就是用来创建表以及插入数据的,这样我们就可以将这个文件分享给其他人,就可以直接导入到自己的数据库中了。 那下面就来看一下如何导入数据。由于后续的课程中会涉及到一些复杂的 c 口语句,会对数据有些要求,这里也提前准备好了一份数据,刚好趁着这个机会来导入一下,这样后面的课程中就可以直接使用了。 数据文件在我们的课程资料中,大家可以自行下载一下。导入数据使用的是 mysco 命令,输入 mysco 之后,后面一样也是跟上杠 u 指定用户名,然后是杠 p 参数指定密码,然后是数据库的名称,最后再加上一个小于号和文件名, 回车之后会提示输入密码,如果没有错误提示的话,导入就完成了。我们打开图形化工具来查询一下,就可以看到我们导入的这些数据, 当然也可以在图形画界面中来操作,这里就不再演示了。下节课开始我们会使用这些数据来讲解和练习 mayor 子句,用来提取那些满足指定标准的记录,它可以同 select, update 和 delete 一起使用,比如查找所有等级为一的玩家,就可以在 where 后面加上条件, level 等于一就可以了。除了等号之外,还有其他的比较运算符都可以使用,比如大于小于大于等于,小于等于不等于等等。 有的时候我们需要查找满足多个条件的数据,比如查找等级大于一并且小于五的玩家,就可以使用 on 来连接这两个条件。为了后面加上第一个条件 level 大于一,然后再加上一个 on, 再加上一个条件 level 小于五。 执行完成之后就可以看到结果中只有等级在一和五之间的玩家了。同样的,如果想要查找经验大于一并且小于五的玩家,就可以把 level 换成 exp, 然后再来执行一下,那就可以看到现在结果中只有经验在一和五之间的玩家了。除了按的以外,还有 alt 和 note 这两个逻辑运算符。需要注意的是,如果同时使用他们的话,是需要注意一下他们之间的优先级的。优先级顺序是 note 大于 on 的大于二。 比如我们想查找等级大于一小于五或者经验大于一小于五的玩家,就可以把上面两条按的语句用二来连接起来,这样就可以把刚刚的两个查询结果合并起来了。执行之后就可以看到结果中有等级大于一小于五的玩家,也有经验大于一小于五的玩家。这里因为按的的优先级要更高一些,所以先执行了两个按的,然后才执行的二。 我们也可以使用括号来改变优先级,比如使用括号把中间的两个条件括起来的话,那么就会先执行中间括号中的偶尔条件,然后再执行两边的按的了,可以看到执行的结果也发生了变化。之前我们使用了等号来查找等级为一的玩家,但 但是如果我们想查找多个不同等级的玩家,就可以使用 in 来指定多个值。比如查找等级为一三五的玩家的话,就可以在第二条件后面加上一个 in, 然后在括号中指定一三五这三个值,中间使用逗号隔开,这样就可以查找等级为一三五的玩家了。印还经常会和此查询一起使用,这个后面我们会详细讲解, 可以使用 betin 和暗的来指定一个连续的范围,比如我们想查找等级在一和十之间的玩家,就可以在威尔条件后面加上一个 level 字段,然后使用 betin 和暗的来指定一个范围,比如一到十,这样就可以查找等级在一和十之间的玩家了,包括一和十。执行之后就可以看到返回了我们想要的结果, 这条语句也等价于 level 大于等于一,并且小于等于十,他们的执行结果是一样的,我们可以在条件语句的前面加上一个 note 来表示取反,比如刚刚的条件前面加上 note 的话, 就表示等级不在一和十之间的玩家了。 note 可以加在任何一个条件语句前面,比如刚刚我们执行过的 in, 或者是各种比较运算服都可以。 有的时候我们需要进行一些模糊查询,比如查找姓王的玩家或者名字中包含王的玩家,这个时候就可以使用 like 来查找 like, 后面加上一个用来匹配的模式,模式中可以使用下面两种通配符,百分号表示任意一个字符,下划线表示任意一个字符。比如查找姓王的玩家的话,就可以在威尔条件后面加上一个 name like, 然后使用一对单元号把王括起来,后面加上一个百分号,表示名字中第一个字是王,后面可以是任意多个字符的玩家。 执行之后可以看到返回了所有姓王的玩家。而如果我们想查找名字中包含王字的玩家,就可以在王的前面也加上一个百分号,表示前面也有可能是任意多个字符,这样就可以查找到名字中包含王的玩家了。 可以看到查询结果中除了刚刚所有姓王的玩家以外,多了一个兰陵王。如果我们想查找姓王并且名字只有两个字的玩家呢?这个时候就可以使用下划线来匹配一个字符,这样结果中就只剩下王五一个,其他三个字的就都被过滤掉了。同样的,如果在后面再加一个下划线的话,就可以查找名字是三个字的王姓玩家了。 有的时候我们需要查找的模式比较复杂,就可以使用 regular expression 来匹配正则表达式,正则表达式中可以使用通配符来定义匹配规则,可以使用的通配符包括下面这些, 点号表示匹配任意一个字符,减小号匹配开头 w 匹配结尾。使用中括号括起来的字符列表表示匹配其中任意一个字符。也可以使用中杠的表示一个范围,比如中括号零杠九就表示匹配零到九之间的任意一个数字。中括号 a 杠 z 就表示匹配任意一个小写字母。竖线表示或者的意思,比如 a 竖线 b 就表示 是匹配 a 或者 b, 还是刚刚的例子,我们想查找姓王并且名字只有两个字的玩家,我们来看一下政策表达式的方式应该怎么写。 vr 后面加上一个字段 name, 然后是表示使用政策表达式的关键字 r 一区 exp 后面加上一个我们想要的政策表达式就可以了。 这里的减角号表示开头, w 表示结尾,点表示匹配任意一个字符,这样就可以查找姓王并且名字只有两个字的玩家了。那如果想查找名字中包含王字的玩家呢?那就只留下王字,其他都去掉就可以了。 注意这里并不需要加上百分号或者下划线,正则表达适中,并没有这两个通配符,他们是在 like 中才有的,大家不要搞混了。如果想查找名字中包含王或者章的玩家,就可以使用中括号把王和章括起来, 表示匹配其中任意一个字符,这样只要名字中包含王或者张的玩家就都可以被查找出来了。我们来执行一下,就可以看到我们想要 的结果了。另外一种方式是使用竖线来表示,或者可以把中括号去掉,然后在王和章之间加上一个竖线,我们来执行一下,可以看到结果是一样的。下面我们来做一些练习,巩固一下刚刚学到的内容,大家可以暂停来自己尝试一下,我们会在下面给出答案。 有的时候我们需要查找某个列的纸是空的数据,这个时候有一个需要注意的地方就是不能使用等号来判断,这也是很多同学最开始的时候容易搞错的地方。 比如想查找邮箱为空的玩家,就不能使用一秒等于 note 来判断,因为 note 值与其他任何值都不相等,包括 note 本身。所以如果我们使用下面的语句来查找没有填写邮箱的玩家的话,就会得到一个空的结果级,而这并不是我们想要的结果。 正确的做法是使用 is now 来判断,这样就可以查找到没有填写邮箱的玩家了。同样的,如果我们想查找填写了邮箱的玩家,就可以使用 is not now 来判断。 myseco 还提供 用一个专门用来比较 note 的比较操作符,就是在等号两边分别加上将括号把它括起来,这样也是可以查找到邮箱是 note 玩家的。但是我还是推荐大家使用 east note 来判断,因为这种写法更加直观,也比较常用,而且在 oracle 等其他数据库中也是通用的。 还有一点需要注意的就是,有的时候数据库中的数据是一个空字符串,表面上看 top 闹都是空,但实际上他们也是不一样的闹需要使用 is not 来判断,而空字符串应该使用等号来判断。看一下下面这个例子,相信大家就能明白了, 还是来查询一下没有填写邮箱的玩家。回车之后可以找到两条记录,这两条记录的邮箱都是空的,然后在后面再加上一个一秒等于空字不串的条件, 然后来执行一下,可以看到查询的结果中多了一条记录,而这条记录的邮箱是一个空字符串,也就是说 no 表示没有值,也就是没有填写邮箱,而空字符串表示填写了一个空的值。这样他们的区别是不是就很明显了呢? 奥特曼用来对查询结果按照某个字段来进行排序,如果不指定的话,默认是升序排序。比如想要按照等级从小到大的顺序来把玩家排列起来的话,就可以在查询语句的后面加上一个奥特曼,然后指定一个列的名称,比如这里就用等级 level, 这样就可以按照等级升序排列了。如果想要降序排列的话,可以在列名后面加上 dsc 再来执行一下,这样就可以按照等级来降序排列了。如果想要按照多个列来进行排序的话,可以在后面加上一个列名,比如我们在等级降序的基础上再加上一个按照经验升序排列,也就是在后面再加上一个 efp 就可以了。后面什么都不加的话,默认就是按升序来排列,当然也可以显示的加上一个 asc 来表示升序, 那我们再来执行一下,这样返回的结果就先按照等级来降序排列,等级相同的话再按照他们的经验来升序排列了。奥特拜后面除了可以使用列名之外,还可以使用列的序号来排序,比如 如果我们想要按照等级降序来排列的话,就可以在后面加上一个五,因为等级 level 是这个表的第五列,然后后面再加上表示降序的 d, e, s, c 来执行一下,可以看到这样结果也是一样的。 聚合函数用来对某个列执行一些计算,比如求和平均值,最大值,最小值等等。常用的聚合函数包括下面这些,比如想知道所有玩家的总人数,就可以使用 cont c like 后面加上一个 com 的星,然后是 freeman 和表明,然后执行一下就可以看到结果了。或者查询所有玩家的平均等级,就可以使用 avg 这个函数括号中指定要计算的列名就可以了,类似的还有求和最大值,最小值等等,大家可以可以下自己尝试一下。 有的时候我们想要统计一下所有玩家中的男女比例,就可以使用分组查询的方式来实现。 globa 用来对查询结果进行分组,后面加上一个或者多个列名,表示按照这些列来分组。然后前面的 c like 语句中就可以使用 我们刚刚学到的 content 或者 some 这些聚合函数来对这个列进行计算了,这样可能还是不太好理解,我们来看一个例子,比如我们想知道所有玩家中每个等级的玩家有多少名,就可以使用 green 来统计, green 后面加上一个 level 表示按照等级来分组。 前面的 select 语句后面加上等级和一个 count 括号 level 来计算每个等级的玩家有多少名,我们来执行一下, 这样就得到了每个等级的玩家数量了。 gruba 还经常和 having 一起使用,用来对分组后的结果进行过滤,比如我们想知道刚刚的结果中数量大于四的等级有哪些,就可以在后面加上一个 having count 括号 level 大于四,这样结果中就会只保留数量大于四的等级了。 另外一个经常同古鲁拜一起使用的是奥德拜来对结果进行排序,比如刚刚的结果并没有一个固定的顺序,如果我们想按照数量来降序排列的话,就可以在后面加上一个奥德拜 count 括号 level, 然后加上一个表示降去的 ds c 就可以了。生活中实际这样的例子也非常多,比如热搜榜,排行榜等等。同样的大家也可以尝试一下其他的聚合函数。 下面来做一个小练习,统计每个姓氏玩家的数量,并将结果按照数量来降去排列,只显示数量大于等于五的姓氏,你可以暂停来自己尝试一下,我们会在下面给出答案, 怎么样,你做出来了吗?这里涉及到一个函数 substrain, 它的作用是截取字符串的一部分,第一个参数是要截取的字符串,第二个参数是开始为止,从一开始。第三个参数是截取的长度。那这里的 substring name e, e 就表示截取 name 字段的第一个字符,也就是姓氏。然后再使用 grouby 来按照姓氏分组,再使用 heavy 来过滤数量大于等于五的 形式。最后使用奥特拜来将序排列。 limit 用来限制查询结果的数量,比如刚刚的练习中,我们得到了所有玩家的姓氏和数量,如果我们只想返回姓氏排行榜的前三名,应该怎么做呢?这个时候就可以在后面加上一个 limit 三就可以了, 来执行一下,这样就只返回了前三名的形式。厘米,他也可以指定一个偏移量,比如我们想返回第四名到第六名的话,就可以在后面再加上一个逗号三,第一个三表示偏移量,表示从第四名开始,第二个三表示返回的数量。 这里有个问题,就是由于我们前面已经限定了数量大于等于五,所以这里只返回了第四名和第五名的姓氏,因为第六名的数量不到五个,所以被过滤掉了。那我们把还用这个条件去掉,再来执行一下,就可以看到返回结果中有第六名的姓氏了, 他只有四个人,所以刚刚被过滤掉了。这种方式其实也是分页查询的原理,也就是我们在各种网站上 常经常看到的分页效果。 distinct 关键字可以用来去除重复的记录,比如我们想知道所有玩家的性别,就可以使用 distinct 来去除重复的记录,这样就可以得到驱虫之后的结果了。 uni 用来合并两个查询的结果, 在之前我们查询过等级为一到三的玩家,来复制一下这条语序,然后再来执行一下,可以看到结果中有三条记录,然后再来查询一下经验为一到三的玩家。 执行之后可以看到结果中有四条记录。那如果想把这两个查询结果合并起来的话,也就是所有等级为一到三以及所有经验为一到三的玩家的话,就可以使用 uni 来合并一下。 合并的方式也非常简单,只需要把两条语句用 uni 连接起来就可以了。我们来执行一下可以看到这样就可以得到所有等级为一到三以及所有经验为一到三的玩家的并级了。需要 注意的是, unny 默认会去除重复的记录,比如刚刚的结果中,第一条语句有三条记录,第二条语句有四条记录。但是如果我们把两条语句合并起来执行的话,结果却只有六条,原因是因为其中一个玩家既满足等级为一到三级,又满足经验为一到三, 所以在合并的时候就被去掉了一条,如果不想去掉的话,可以使用 uni 二来合并,在 uni 的后面加上一个 out 关键字,再来执行一下,就可以看到结果中有七条记录了。 uni 和二有些类似,只不过二是用来合并两个条件的,而 uni 是用来合并两个查询结果的。 uni 用来合并两个查询结果,也就是取两个查询结果的病急,而 intersect 则是用来查找两个结果的交集的。还是刚刚的例子,我们把 uni 换成 intersect 就可以查找这两个结果的交集了。我们来执行一下,可以看到结果中只有刚刚重复的吕秀才这一条记录了。 except 用来查找两个查询结果的差集。 还是刚刚的例子,我们把 intersect 换成 except, 就可以查找这两个结果的差集了。也就是说查找等级为一到三的玩家,但是经验不在一到三之间的玩家,可以看到结果中只有两条记录,刚刚的吕秀才就被过滤掉了。 有的时候我们需要使用一个查询的结果作为另一个查询的条件,这个时候就可以使用此查询了。比如我们想知道所有等级大于平均等级玩家,就可以先查询一下平均等级, 可以使用 avg 喊出来求出所有玩家的平均等级,然后再把这个平均等级作为条件来查询,大于这个平均等级的玩家在前面加上一个 where level 大于就可以了。 此查询除了可以用在威尔词句中之外,还可以用在 slag 语句中,比如我们想知道所有玩家的等级和平均等级的差值,就可以在 slag 语句中使用此查询。我们先来查询一下所有玩家的等级,然后在后面加上一个平均等级。 这里的 select average level from player 就是一个自杀群,可以看到平均等级是一个浮点数,看起来并不是很方便,可以使用 run 函数来做一个四舍五入,这样就得到了一个整数的平均等级了,再用玩家的等级减去这个平均等级, 那就得到了每个玩家的等级,平均等级以及他们之间的差值了。注意看一下结果中每一列的名字,最后两列的名字直接使用了我们刚刚的表达式,这样不太方便阅读。那我们也可以使用一个 x 关键字来给这个列起一个别名,比如平均值这一列,我们可以起一个名字叫做 ivory 曲,最后这个差值的列可以叫做 deep。 再来查询一下,可以看到结果中的列名已经变成了我们刚刚起的别名了,这样看起来就更加人性化,也方便理解了。除了在威尔词句或者 select 语句中使用之外,此查询还可以用在 update 语句, delete 语句, creat 或者 insert 等等各种语句中使用。我们也可以使用此查询来创建一个新的表,比如 可以把所有等级小于五的玩家数据插入到一个新的表中,表明就叫做 new player。 还是先来查询一下所有等级小于五的玩家,然后在前面加上 corry table, 后面加上表明就可以了。执行之后这个新的表就创建完成了。再来查询一下, 可以看到这个新的表被成功的创建了,他的结构和 player 表是完全相同的,里面只有等级小于五的玩家数据。最后再来看一下如何使用此查询来插入数据。 比如刚刚我们创建的新表中只有等级在五级以下的玩家,现在我们想把等级在六到十之间的玩家也插入到这个新的表中,那么就可以使用 inside in two 语句来插入数据。 inside in to 后面加上要插入的表明,然后后面加上自查询的结果就可以了。执行完成之后,可以看到提示我们插入了多少行数据,然后再来查询一下这个新的表, 可以看到等级在六到十之间的玩家也被成功的插入到这个表中了。 exist 用来判断一个查询是否有结果,他的反馈值只有零和一两种,比如 你想知道是否有等级大于一百的玩家,就可以使用 exist 来判断一下。 exist 后面加上一个字,查询,也就是我们想要判断的查询,这里的话就是查询所有等级大于一百的玩家。我们来执行一下,可以看到结果是零,就表示并不存在等级大于一百的玩家。那如果把条件改成等级大于十呢? 再来执行一下,可以看到结果是一就表示存在等级大于十的玩家。 表关联用来查询多个表中的数据,关联的表之间必须有相同的字段,一般会使用表的逐渐和外线来关联。 有关联分为下面几种类型,内连接,只返回两个表中都有的数据。左连接就是返回左表中所有的数据和右表中匹配的数据,右表中没有的数据用 note 填充。相应的右连接就是返回右表中所有的数据和左表中匹配的数据,左表中没有的数据用 note 填充。下面就来看一下这 几种关联的具体用法。游戏中除了玩家之外还需要有装备,我们先来看一下装备表的结构,这个表的结构非常简单,只有三个字段,分别是装备的 id 名称以及所属玩家的 id。 内连接就是使用 inner join 关键字来指定关联的表,然后是 on 关键字和两个表中关联的字段,最后可以加上位尔关键字和查询条件。那我们就来执行一下这条语句, 这样就把玩家表和装备表关联起来了。可以看到我们结果中既包含玩家的信息,也包含了玩家对应装备的信息,他们之间使用玩家 id 这个字段来关联起来。 左连接用来查询左表中所有的数据和右表中匹配的数据,右表中没有匹配数据的话就会使用 note 填充,还是刚刚的例子,我们来使用左连接来查询一下,看看结果是什么样的。直接把 in the drive 换成 left drive 就可以了,然后再来执行一下这条语句, 可以看到结果中包含了玩家表的所有数据,然后是玩家对应的装备信息,有装备的话就会显示装备的信息,如果没有的话就会使用 note 填充。同样的右连接就是用来查询右表中所有的数据和左表中匹配的数据,左表中没有的数据就会使用 note 填充, 还是刚刚的例子,我们来改成右链接,再来查询一下,看看结果是什么样的。直接把 left drawing 改成 right drawing 就可以了。然后再来执行一下,可以看到结果中包含了装备表的所有数据,以及这些装备所对应的玩家的信息,没有对应关系的玩家信息部分就可以使用 note 来填充。 表连接除了使用 joy 和 on 关键词来指定关联的字段之外,还可以使用 where 关键词来制定。还是刚刚的例子,我们可以把 joy 去掉,表明后面加上逗号,然后在 where 后面加上关联的条件,再来执行一下,可以看到结果是一样的。 也可以在表明后面加上别名,然后在外耳关键字后面使用别名来指定关联的条件,再来执行一下,可以看到也是没有问题的。表关联也可以使用多个表,时间关系,这里就不延迟了。数据库中有个技能表 skill, 大家可以刻下自己尝试一下。使用连接的时候需要注意的一点就是迪卡尔奇的问题, 如果连接没有指定条件或者条件不正确的话,就会产生迪卡尔吉,比如如果把上面查询语句的条件去掉的话, 那结果就会是这个样子的。可以看到我们的结果中每一条数据都会和另一个表中的每一条数据进行组合,这样就会产生很多的数据,而一般这并不是我们希望看到的,所以在使用连接的时候一定要注意连接条件是不是正确的。 其实表连接的本质就是 dk 二级,再加上条件过滤,如果不加过滤条件的话,那当然就会把所有的数据都组合起来了。 锁眼是一种用来提高查询效率的数据结构,它可以帮助我们快速的定位到我们想要的数据,如果没有锁眼的话,就只能从头开始便利所有的数据,直到找到满足条件的数据为止。当数据非常少的时候,这样并不会有什么问题,但是如果当数据量非常大的时候,查询效率就会直线下降, 锁眼就是为了解决这个问题而产生的。下面先来看一下如何在买 c 口中创建和使用锁眼。可以在建表的时候直接指定锁眼,也可以在建表之后再来添加一个锁眼。锁眼的创建语法像下面这样, creatinex 是创建锁眼的关键字 音代词,前面可以加上可选的所以类型, uniq 表示唯一,所以 fox 表示全文,所以 special 表示空间,所以再加上一个所以的名称,后面是按关键字和表明表示要在哪张表上创建,所以最后使用括号括起来的一个或者多个字段名,这些字段名就是我们要对哪些字段 来创建锁眼。一般来说,我们会对一张表的逐渐字段或者经常用来查询的字段创建锁眼,也就是威尔后面的查询条件字段,这样可以提高查询的效率。为了让大家最直观的看到锁眼的效果,我们随机生成了两张有两千万条数据的表,这两张表的结构和内容都是完全相同的,他们的结构非常简单,只有四个字段。 再分别来看一下这两张表的数据量,可以看到他们的数据量都是两千万条。下面我们在其中一张表上建立所演,另一张不建立,然后来比较一下他们的查询效率。 我们给 fast 这张表的 email 字段来创建一个索眼, create index, 后面加上索眼的名称,比如这里就叫做 email index, 然后是一个 on 关键字,后面加上表明 fast, 最后是用括号括起来的 email 字段, 然后来执行一下。注意,这里根据数据量的不同,创建所有的时间也会有所不同,这里我们的数据量比较大,所以创建所有的时间会比较长一些,大家耐心等待一下, 等待的过程中,先来介绍一下如何查看锁眼,可以使用 show index from 语句来查询,后面加上表的名称就可以了,可以看到刚刚的锁眼已经创建完成了,再来执行一下这个查询语句, 然后在下面就可以看到所以你的名称,字段的名称,所以你的类型等等清晰了。下面就来比较一下这两张表的查询效率。我们就以查询邮箱以 abcd 开头的数据为例,先来查询一下没有所以你的这张表。为了让两边的结果一样,我们再按照 id 字段来排个序,然后来执行一下, 在下面可以看到语句正在执行,可以看到执行的时间。好的,执行完成了,可以看到执行时间大概是五秒左右。同样的语句,我们再来查询一下有锁眼的这张表 瞬间就完成了,这就是锁眼的一个作用,可以帮助我们快速定位到我们想要的数据,从而来提高查询的效率。删除锁眼,使用照片代词语句后面加上锁眼的名称,然后是 on 关键词和表的名称。比如我们 想要删除刚刚创建的这个锁眼的话,就输入照片 decks, 然后是锁眼的名称 email index, 后面加上 on 关键字和表的名称。 fast 执行之后再来查询一下, 可以看到缩影已经被删除了。除了使用 created index 语句来创建缩影之外,还可以在修改表结构的时候来创建缩影。比如我们想要给 fast 表的内幕字段创建一个缩影的话,那么就可以使用 alter table 语句后面加上表明 fast, 然后是 add index 关键字表示要添加一个缩眼, 后面加上左眼的名称内幕 index, 最后是用括号括起来的内幕字段,也可以在键表语句中直接指定一个左眼时间关系,这里就不延时了,大家可以自己尝试一下。 视图是一种虚拟存在的表,它本身并不包含数据,而是作为一个查询语句保存在数据字典中。当我们查询视图的时候,它会根据查询语句的定义来动态的生成数据。 创建视图使用 crater 语句,比如我们可以创建一个玩家表中等级在前十名的排行榜视图, crater 后面加上视图的名称,然后是 x 关键字后面加上一个想要查询的 club 语序就可以了。这里就是查询玩家表中等级在前十名的数据, 然后来执行一下,这样试图就创建成功了。试图的使用和表是一样的,可以使用正常的 select 语句来查询试图,比如来查询一下刚刚创建的,试图就可以看到试图返回的数据了,而且当表中的数据发生变化的时候,试图中的数据也会随着变化,比如把第一名的等级改成十,执行一下 update 的语句, 然后再来查询一下,试图可以看到试图中的数据也发生了变化,这就是试图的一个特性,试图中的数据是动态的,他会随着表中数据的变化而变化修改。试图使用 auto vivo 语句,后面加上试图的名称,然后是 it 关键字和新的 语句就可以了。比如我们想要把数据改成从小到大排序的话,就可以在 outer view 后面加上视图的名称 top ten, 然后是 s 关键字后面加上一个新的 select 语句,把上面的语句复制一下,然后去掉 d, e, s, c, 再来执行一下,这样试图就修改成功了。然后我们再来重新查询一下,试图可以看到试图中的数据已经变成从小到大排序了,我们可以使用招 vivo 语句来删除,试图后面加上想要删除的试图的名称就可以了。这个非常简单,这里就不再演示了,大家可以自己尝试一下。

现在来看麦收购的命,他是一个自行管理操作的工具,我们可以通过他来查看服务端配置,以及创建删除数据库等等,我们来看怎么用。在 linux 里面,我们拿到一个命令,不会用的话可以查看帮助信息,比如麦收扣,我们不会用,那就敲一个麦收扣,看看黑啊不。这里就可以看到用法, 卖收口,然后跟上选项,最后可以跟上数据库。熟悉吧,来看前面这个命令,卖收口开头,然后杠 u、 杠 p、 杠 a, 七杠大、 p 杠一,这些都是选项,最后可以跟上数据库名,和这里的用法是一样的。 下面可以看到各种各样的选项,大部分都是不常用的,可以看到杠一选项,他的说明是 x q 的 command quat, 执行命令并退出,接着还有杠 h、 杠 p、 杠大 p 杠 u, 上面这里还有一个杠杠 ss mod, 之前我们不是遇到了卖,这个版本不一样不能远程连接吗?会出现 线 ssl 协议不匹配,我们用这个选项就可以解决,让它等于 dc 波就可以了,但这样连接不会使用 ssl 加密,不太安全,所以不建议这么做,我就不演示了,其他的我们就不看了,都是不常用的。现在我们来看麦斯口的密,敲一个杠杠 help, 可以看到它的用法是 mask 的命,然后跟上选项,后面跟命令,它同样有杠 h 杠屁杠大屁 杠 you, 然后再来看它可以执行的行命令,往下翻,它可以创建数据库,删除数据库,还可以做一些刷新操作,比如我们熟悉的刷新权限, 还有刷新表,刷新日志等等。还可以查看服务端活跃的现成,一起杀掉卖社会现成,把旧密码改为新密码,下一档关闭服务。后面还有 studieslive, 开启组成复制, stops, the level, 停止组成复制,这些都是我们后面高级篇要讲的, 最后还有 very boss 打印所有的变量 version, 获取服务端版本信息。有的同学看到这么多英文就开始慌了,其实是不难的,个别单词不认识,翻译一下就好了。 ok, 接下来我们就来演示几个命令,现在创建一个数据库吧,来看一下命令 quit, 然后跟上数据库名就可以了。 来试试看 mac 哥的命,刚又入的刚 p 一二三四,我们要操作数据库,肯定是需要账号密码的,然后创建数据库可以得 dbr, 已经成功了,这个警告见过很多次了,就是密码展示出来了,不太安全。数据库肯定是建出来了的,我们用麦收口来查一下麦收口杠优注的杠 p 一二三四,然后杠 e 没问题吧。 ok, 咱们再来改一下密码吧,来看命令用法, password, 跟上新密码,来试试卖搜狗的命杠 youtube 一二三四 password, 然后是新密码,我们改成 六七八,自信爆了一个 l, 他说我们的密码不符合当前策略。不对啊,我们之前不是改过密码策略吗?安装的时候就改过了。再来看一下安装步骤,现在你应该就恍然大悟了,我们这里设置的是全局变量,全局变量会在服务端重启之后失效,除非我们把它写在配置文件里面。来试试看,把这两行复制一下,然后打开配置文件, 粘贴蛋白色和地下面保存退出。当然我们现在是学习,为了方便可以降低密码复杂度,如果是工作中的话,肯定是越复杂越好。然后我们重启服务, 这时候我们再来修改密码就没问题了,密码已经修改成功了,这个警告不用管,不影响。现在我们来登录一下 mesco, 刚要入的杠 p 一二三四就登不上去了,然后我们改成五六七八就可以了,我们还是改回去,改成一二三四。 ok。 关于 mescal 的密我们就讲这么多,其他命令用法都是一样的,比如下蛋, variables 这些加在最后就可以了,我就不演示了。

你在工作中是如何使用数据库的?数据库呢,是一种存储和管理数据的工具,它被广泛的应用于各种软件和系统中。在软件测试过程中,主要有以下几个方面啊,一、要验证数据的准确性和完整性在测试用列的过程中呢,需要对数据库的数据进行准确性和完整性验证,以确保软件功能的正确性。 进行 bug 定位的时候呢,需要用到数据库中去查看数据的详细信息,以帮助分析和解决问题。构造测试的场景在构造某种测试场景的时候呢,可以在数据库里面直接修改数据,以验证软件在不同情况下的响应和表现。数据库的升级 在软件升级的过程中呢,通常会涉及到对历史的数据的处理,这种情况下就需要执行最后语句进行升级并应用的结果。所以呢,对于我们测试员来说呢,了解数据库的基本操作是非常必要的,例如如何插入数据、修改数据、查询数据等。同时,一些数据库的可视化工具,比如 navi kit, 也可以提高测试员的工作的效率和便携性。

如何导入数据库? 添加数据库设置名称、用户名和密码, 点击后面的导入, 上传 sql 文件, 打入后登录后台显示 sql 错误, 修改代码中的数据库连接文件配置, 配置完毕了。