MySQL
文章平均质量分 93
我叫向同学
永远不要停下前进的脚步
展开
-
【MySQL】使用触发器
目录触发器创建触发器删除触发器使用触发器INSERT触发器DELETE触发器UPDATE触发器关于触发器的进一步介绍触发器MySQL语句在需要时被执行,存储过程也是如此。但是,如果你想要某条语句(或某些语句)在事件发生时自动执行,怎么办呢?例如:每当增加一个顾客到某个数据库表时,都检查其电话号码格式是否正确,州的缩写是否为大写;每当订购一个产品时,都从库存数量中减去订购的数量;无论何时删除一行,都在某个存档表中保留一个副本。所有这些例子的共同之处就是他们都需要在某个表发生更改时自动处理。这确原创 2021-02-28 22:02:59 · 266 阅读 · 1 评论 -
【MySQL】使 用 游 标
目录游标使用游标创建游标打开和关闭游标使用游标数据游标MySQL检索操作返回一组称为结果集的行。这组返回的行都是与SQL语句相匹配的行(零行或多行)。使用简单的SELECT语句,例如,没有办法得到第一行、下一行或前10行,也不存在每次一行地处理所有行的简单方法(相对于成批地处理它们)。有时,需要在检索出来的行中前进或后退一行或多行。这就是使用游标的原因。 游标( cursor) 是一个存储在MySQL服务器上的数据库查询,它不是一条SELECT语句,而是被该语句检索出来的结果集。在存储了游标之后,应用原创 2021-02-28 20:56:54 · 349 阅读 · 0 评论 -
【MySQL】使用存储过程
目录存储过程为什么要使用存储过程使用存储过程执行存储过程创建存储过程删除存储过程使用参数建立智能存储过程检查存储过程存储过程迄今为止,使用的大多数SQL语句都是针对一个或多个表的单条语句。并非所有操作都这么简单,经常会有一个完整的操作需要多条语句才能完成。例如,考虑以下的情形。为了处理订单,需要核对以保证库存中有相应的物品。如果库存有物品,这些物品需要预定以便不将它们再卖给别的人,并且要减少可用的物品数量以反映正确的库存量。库存中没有的物品需要订购,这需要与供应商进行某种交互。关于哪些物品入库原创 2021-02-24 22:33:56 · 410 阅读 · 1 评论 -
【MySQL】使用视图
视图视图就是虚拟的一张表。与包含数据的表不一样,视图只能使用时动态检索数据的查询。理解视图最好的一个办法就是看一个例子:SELECT cust_name, cust_contact FROM customers, orders, orderitems WHERE customers.cust_id = orders.cust_id AND orderitems.order_num = orders.order_num AND prod_id = 'TNT2'此查询用来检索了原创 2021-02-21 22:05:03 · 295 阅读 · 0 评论 -
【MySQL】创建和操纵表
创建表MySQL不仅用于表数据操纵,而且还可以用来执行数据库和表的所有操作,包括表本身的创建和处理。一般有两种创建表的方法:使用具有交互式创建和管理表的工具;表也可以直接用MySQL语句操纵。为了用程序创建表,可使用SQL的CREATE TABLE语句。值得注意的是,在使用交互式工具时,实际上使用的是MySQL语句。但是,这些语句不是用户编写的,界面工具会自动生成并执行相应的MySQL语句(更改现有表时也是这样)。表创建基础为利用CREATE TABLE创建表,必须给出下列信息:新表的原创 2021-02-20 22:00:50 · 172 阅读 · 0 评论 -
【MySQL】插入数据
数据插入毫无疑问, SELECT是最常使用的SQL语句了。但是,还有其他3个经常使用的SQL语句需要学习。第一个就是INSERT。顾名思义, INSERT是用来插入(或添加)行到数据库表的。插入可以用几种方式使用:插入完整的行;插入行的一部分;插入多行;插入某些查询的结果知识点补充: 插入及系统安全 可针对每个表或每个用户,利用MySQL的安全机制禁止使用INSERT语句。插入完整的行把数据插入表中的最简单的方法是使用基本的INSERT语法,它要求指定表名和被插入到新行中的值。下面举原创 2021-02-19 20:57:15 · 392 阅读 · 0 评论 -
【MySQL】全文本搜索
目录理解全文本搜索使用全文本搜索启用全文本搜索支持进行全文本搜索理解全文本搜索并非所有引擎都支持全文本搜索MySQL支持几种基本的数据库引擎。并非所有的引擎都支持全文本搜索。两个最常使用的引擎为MyISAM和InnoDB,前者支持全文本搜索,而后者不支持。这就是为什么 多 数 样 例 表 使 用 InnoDB , 而 有 一 个 样 例 表( productnotes表)却使用MyISAM的原因。如果你的应用中需要全文本搜索功能,应该记住这一点。LIKE关键字,它利用通配操作符匹配文本(和部分文本原创 2021-02-05 21:43:19 · 604 阅读 · 2 评论 -
【MySQL】组合查询
本文讲述如何利用UNION操作符将多条SELECT语句组合成一个结果集。组合查询多数SQL查询都只包含从一个或多个表中返回数据的单条SELECT语句。 MySQL也允许执行多个查询(多条SELECT语句),并将结果作为单个查询结果集返回。这些组合查询通常称为并( union) 或复合查询(compound query)。有两种基本情况,其中需要使用组合查询:在单个查询中从不同的表返回类似结构的数据;对单个表执行多个查询,按单个查询返回数据。组合查询和多个WHERE条件多数情况下,组合相同表原创 2021-01-31 18:21:10 · 295 阅读 · 0 评论 -
【MySQL】创建高级联结
目录使用表别名使用不同类型的联结自联结自然联结外部联结使用带聚集函数的联结使用联结和联结条件本文将讲解另外一些联结类型(包括它们的含义和使用方法),介绍如何对被联结的表使用表别名和聚集函数。使用表别名如何使用别名引用被检索的表列。给列起别名的语法如下: select concat(rtrim(vend_name),'(',rtrim(vend_country),')') as vend_title from vendors order by vend_name;别名除了用于列名和计算字段外,原创 2021-01-31 16:45:26 · 157 阅读 · 0 评论 -
【MySQL】联结表
目录联结关系表为什么要使用联结创建联结WHERE子句的重要性内部联结联结多个表本文将介绍什么是联结,为什么要使用联结,如何编写使用联结的SELECT语句。联结SQL最强大的功能之一就是能在数据检索查询的执行中联结(join)表。联结是利用SQL的SELECT能执行的最重要的操作,很好地理解联结及其语法是学习SQL的一个极为重要的组成部分。关系表理解关系表的最好方法是来看一个现实世界中的例子。假如有一个包含产品目录的数据库表,其中每种类别的物品占一行。对于每种物品要存储的信息包括产品描述和价格,以及原创 2021-01-31 14:05:53 · 217 阅读 · 0 评论 -
【MySQL】使用子查询
本文介绍什么是子查询以及如何使用它们。数据库及资料地址子查询SELECT语句是SQL的查询。迄今为止我们所看到的所有SELECT语句都是简单查询,即从单个数据库表中检索数据的单条语句。**查询(query)**任何SQL都是查询。但是此术语一般指select语句。SQL还允许创建子查询( subquery) ,即嵌套在其他查询中的查询。为什么要这样做呢?理解这个概念的最好方法是考察几个例子。使用子查询进行过滤本文所有章中使用的数据库都是关系表,订单存储在这两个表中,对于包含订单号、客户id、订原创 2021-01-31 11:16:16 · 407 阅读 · 0 评论 -
【MySQL】分组数据
目录数据分组创建分组过滤分组分组和排序SELECT子句顺序本文将介绍如何分组数据,以便能汇总表内容的子集。这涉及两个新SELECT语句子句,分别是GROUP BY子句和HAVING子句。数据分组从上一篇文章知道, SQL聚集函数可用来汇总数据。这使我们能够对行进行计数,计算和与平均数,获得最大和最小值而不用检索所有数据。目前为止的所有计算都是在表的所有数据或匹配特定的WHERE子句的数据上进行的。提示一下,下面的例子返回供应商1003提供的产品数目:select count(*) as num_p原创 2021-01-28 21:26:00 · 273 阅读 · 0 评论 -
【MySQL】汇 总 数 据
本文介绍什么是SQL的聚集函数以及如何利用它们汇总表的数据。聚集函数我们经常需要汇总数据而不用把它们实际检索出来,为此MySQL提供了专门的函数。使用这些函数, MySQL查询可用于检索数据,以便分析和报表生成。这种类型的检索例子有以下几种。确定表中行数(或者满足某个条件或包含某个特定值的行数)。-获得表中行组的和。找出表列(或所有行或某些特定的行)的最大值、最小值和平均值。上述例子都需要对表中数据(而不是实际数据本身)汇总。因此,返回实际表数据是对时间和处理资源的一种浪费(更不用说带宽了)原创 2021-01-28 20:07:56 · 566 阅读 · 0 评论 -
【MySQL】使用数据处理函数
目录函数使用函数文本处理函数本文介绍什么是函数, MySQL支持何种函数,以及如何使用这些函数。函数与其他大多数计算机语言一样, SQL支持利用函数来处理数据。函数一般是在数据上执行的,它给数据的转换和处理提供了方便。在前一章中用来去掉串尾空格的RTrim()就是一个函数的例子。函数没有SQL的可移植性强 能运行在多个系统上的代码称为可移植的( portable)。相对来说,多数SQL语句是可移植的,在SQL实现之间有差异时,这些差异通常不那么难处理。而函数的可移植性却不强。几乎每种主要的DBMS的原创 2021-01-27 21:22:04 · 332 阅读 · 0 评论 -
【MySQL】创建计算字段
目录计算字段拼接字段使用别名执行算术计算本文介绍什么是计算字段,如何创建计算字段以及怎样从应用程序中使用别名引用它们。计算字段存储在数据库表中的数据一般不是应用程序所需要的格式。下面举几个例子。如果想在一个字段中既显示公司名,又显示公司的地址,但这两个信息一般包含在不同的表列中。城市、州和邮政编码存储在不同的列中(应该这样),但邮件标签打印程序却需要把它们作为一个恰当格式的字段检索出来。列数据是大小写混合的,但报表程序需要把所有数据按大写表示出来。物品订单表存储物品的价格和数量,但不需要存储原创 2021-01-26 21:46:19 · 653 阅读 · 0 评论 -
【MySQL】使用正则表达式 进行搜索
目录正则表达式介绍使用MySQL正则表达式基本字符匹配进行OR匹配匹配几个字符之一匹配范围匹配特殊字符匹配字符类匹配多个实例定位符本文将学习如何在MySQL WHERE子句内使用正则表达式来更好地控制数据过滤。正则表达式介绍前面两篇文章中的过滤例子允许用匹配、比较和通配操作符寻找数据。对于基本的过滤(或者甚至是某些不那么基本的过滤),这样就足够了。但随着过滤条件的复杂性的增加, WHERE子句本身的复杂性也有必要增加。这也就是正则表达式变得有用的地方。正则表达式是用来匹配文本的特殊的串(字符集合)。原创 2021-01-25 22:20:56 · 250 阅读 · 0 评论 -
【MySQL】用通配符进行过滤
目录LIKE操作符百分号( %)通配符下划线( _)通配符本文介绍什么是通配符、如何使用通配符以及怎样使用LIKE操作符进行通配搜索,以便对数据进行复杂过滤。LIKE操作符前面介绍的所有操作符都是针对已知值进行过滤的。不管是匹配一个还是多个值,测试大于还是小于已知值,或者检查某个范围的值,共同点是过滤中使用的值都是已知的。但是,这种过滤方法并不是任何时候都好用。例如,怎样搜索产品名中包含文本anvil的所有产品? 用简单的比较操作符肯定不行,必须使用通配符。利用通配符可创建比较特定数据的搜索模式。在原创 2021-01-25 18:57:48 · 171 阅读 · 0 评论 -
【MySQL】之数据过滤
目录组合WHERE子句AND操作符OR操作符计算次序IN操作符NOT操作符本文说明如何组合WHERE子句以建立功能更强的更高级的搜索条件。我们还将学习如何使用NOT和IN操作符。组合WHERE子句为了进行更强的过滤控制, MySQL允许给出多个WHERE子句。这些子句可以两种方式使用:以AND子句的方式或OR子句的方式使用。操作符(operator) 用来联结或改变WHERE子句中的子句的关键字。也称为逻辑操作符( logical operator) 。AND操作符为了通过不止一个列进行过滤,可原创 2021-01-25 18:57:24 · 202 阅读 · 0 评论 -
【MySQL】过滤数据
本文将如何使用SELECT语句的WHERE子句指定搜索条件。使用WHERE子句数据库表一般包含大量的数据,很少需要检索表中所有行。通常只会根据特定操作或报告的需要提取表数据的子集。只检索所需数据需要指定搜索条件( search criteria) ,搜索条件也称为过滤条件( filter condition) 。在SELECT语句中,数据根据WHERE子句中指定的搜索条件进行过滤。WHERE子句在表名(FROM子句)之后给出,如下所示: select prod_name,prod_price fro原创 2021-01-25 13:46:49 · 307 阅读 · 0 评论 -
【MySQL】排序检索数据
本文将讲授如何使用SELECT语句的ORDER BY子句,根据需要排序检索出的数据。排序数据下面的SQL语句返回某个数据库表的单个列。但请看其输出,并没有特定的顺序。其实,检索出的数据并不是以纯粹的随机顺序显示的。如果不排序,数据一般将以它在底层表中出现的顺序显示。这可以是数据最初添加到表中的顺序。但是,如果数据后来进行过更新或删除,则此顺序将会受到MySQL重用回收存储空间的影响。因此,如果不明确控制的话,不能(也不应该)依赖该排序顺序。关系数据库设计理论认为,如果不明确规定排序顺序,则不应该假原创 2021-01-25 13:46:32 · 121 阅读 · 0 评论 -
【MySQL】之检索数据
SELECT语句如何使用SELECT语句从表中检索一个或多个数据列。检索单个列 select prod_name from products;上述语句利用SELECT语句从products表中检索一个名为prod_name的列。所需的列名在SELECT关键字之后给出, FROM关键字指出从其中检索数据的表名。此语句的输出如下所示:未排序数据 如果读者自己试验这个查询,可能会发现显示输出的数据顺序与这里的不同。出现这种情况很正常。如果没有明确排序查询结果),则返回的数据的顺序没有特殊意义。返回数据原创 2021-01-24 18:47:17 · 350 阅读 · 0 评论 -
【MySQL】使用MySQL
连接MySQL与所有客户机—服务器DBMS一样,要求在能执行命令之前登录到DBMS。 登录名可以与网络登录名不相同(假定你使用网络)。 MySQL在内部保存自己的用户列表,并且把每个用户与各种权限关联起来。在最初安装MySQL时,很可能会要求你输入一个管理登录(通常为root)和一个口令。如果你使用的是自己的本地服务器,并且是简单地试验一下MySQL,使用上述登录就可以了。但现实中,管理登录受到密切保护(因为对它的访问授予了创建表、删除整个数据库、更改登录和口令等完全的权限)。连接到MySQL,需要原创 2021-01-24 17:17:18 · 3619 阅读 · 0 评论 -
【MySQL】MySQL简介
什么是MySQL数据的所有存储、检索、管理和处理实际上是由数据库软件——DBMS( 数据库管理系统)完成的。 MySQL是一种DBMS,即它是一种数据库软件。MySQL优点成本——MySQL是开放源代码的,一般可以免费使用(甚至可以免费修改)。性能——MySQL执行很快(非常快)。可信赖——某些非常重要和声望很高的公司、站点使用MySQL,这些公司和站点都用MySQL来处理自己的重要数据。简单——MySQL很容易安装和使用。客户机—服务器软件DBMS可分为两类:一类为基于共享文件系统的D原创 2021-01-24 16:55:36 · 2285 阅读 · 2 评论 -
【MySQL】了解SQL
目录什么是SQL数据库基础什么是数据库(database)什么是表(table)列(column)和数据类型(datatype)行(row)主键(primary key)什么是SQLSQL(发音为字母S-Q-L或sequel)是结构化查询语言(Structured QueryLanguage)的缩写。 SQL是一种专门用来与数据库通信的语言。SQL有如下的优点。SQL不是某个特定数据库供应商专有的语言。几乎所有重要的DBMS都支持SQL,所以,学习此语言使你几乎能与所有数据库打交道。SQL原创 2021-01-24 16:26:55 · 109 阅读 · 0 评论