数据库(SQL)
文章平均质量分 83
阿拉辉
进击的小白
展开
-
实操展示SQL几个高级特性
高级SQL特性1约束1.1主键1.2外键1约束正确的进行关系数据设计,需要一种方法保证只在表中插入合法数据。虽然可以在插入新行的时候进行检查(在另一个表上执行SELECT,以保证所有值合法并存在),但最好不要这么做,原因如下:如果在客户端层面上实施数据库完整性规则,则每个客户端都要被迫实施这些规则,一定会有一些客户端不实施这些规则。在执行UPDATE和DELETE操作时,也必须实施这些规则。执行客户端检查是非常耗时的,而DBMS执行这些检查会相对高效。约束(constraint):管理如何插原创 2020-05-11 13:05:15 · 1152 阅读 · 0 评论 -
在数据库中使用游标
使用游标1游标2使用游标2.1创建游标2.2使用游标2.3关闭游标1游标有时,需要在检索出来的行中前进或后退一行或多行。这就是使用游标的原因。游标(cursor)是一个存储在MySQL服务器上的数据库查询,它不是一条SELECT语句,而是被该语句检索出来的结果集。在存储了游标之后,应用程序可以根据需要滚动混着浏览其中的数据。游标主要用于交互式应用,其中用户需要滚动屏幕上的数据,并对数据进行浏览或做出更改。2使用游标使用游标涉及几个明确的步骤在能够使用游标前,必须声明(定义)它。这个过程实际上原创 2020-05-10 20:05:19 · 2234 阅读 · 0 评论 -
数据库中如何管理事务处理
管理事务处理1事务处理2控制事务处理2.1使用ROLLBACK2.2使用COMMIT2.3使用保留点2.4更改默认的提交方式1事务处理事务处理(transaction processing)可以用来维护数据库的完整性,它保证成批的MySQL操作要么完全执行,要么完全不执行。并非所有引擎都支持事务处理MySQL支持几种基本的数据库引擎,MyISAM和InnoDB是两种最常使用的引擎。MyISAM不支持明确的事务处理管理,而nnoDB支持。下面是关于事务处理需要知道的几个术语:事务(transa原创 2020-05-10 18:48:38 · 1103 阅读 · 0 评论 -
在数据库中如何使用存储过程
使用存储过程1存储过程2为什么要使用存储过程3执行存储过程4创建存储过程1存储过程使用的大多数SQL语句都是针对一个或多个表的单条语句。并非所有操作都这么简单,经常会有一个完整的操作需要多条语句才能完成。那怎么编写代码呢?可以创建存储过程。存储过程简单来说,就是为以后的使用而保存的一条或多条MySQL语句的集合。可将其视为批文件,虽然它们的作用不仅限于批处理。2为什么要使用存储过程通过把处理封装在容易使用的单元中,简化复杂的操作(正如前面例子所述)。由于不要求反复建立一系列处理步骤,这保证了数原创 2020-05-10 17:32:10 · 3467 阅读 · 1 评论 -
在数据库中如何使用视图
使用视图1视图1.1为什么使用视图呢?1.2视图的规则和限制2使用视图2.1利用视图简化复杂的联结2.2用视图重新格式化检索出的数据2.3用视图过滤不想要的东西2.4使用视图与计算字段1视图视图是虚拟的表。与包含数据的表不一样,视图只包含使用动态检索数据的查询。用实例说话:输入SELECT cust_name,cust_contactFROM Customers,Orders,OrderItemsWHERE Customers.cust_id = Orders.cust_id AND Ord原创 2020-05-10 16:37:22 · 2065 阅读 · 0 评论 -
数据库中如何创建和操纵表
创建和操纵表1创建表1.1表创建的基础1.2使用NULL值1.3指定默认值2更新表3删除表重命名表1创建表SQL不仅用于表数据操纵,还用来进行数据库和表的所有操作,包括表本身的创建和处理。一般有两种表的创建方法:多数DBMS都有交互式创建和管理数据库表的工具;表也可以直接用SQL语句操纵。用程序创建表,可以使用SQL的CREATE TABLE语句。需要注意的是,使用交互式工具时实际上就是使用SQL语句。但是,这些语句不是用户编写的,界面工具会自动生成并执行相应的MySQL语句(更改现有表时也原创 2020-05-09 22:51:55 · 227 阅读 · 0 评论 -
面试常考知识点-联结表
这里写目录标题1.联结关系表2.创建联结内部联结联结多个表1.联结SQL最强大的功能之一就是能在数据检索查询的执行中联结(join)表。联结是利用SQL的SELECT执行的最重要的操作。关系表关系表的设计就是要保证把信息分解成多个表,一类数据一个表。各表通过某些常用的值(即关系设计中的关系(relational)互相关联。在这个例子中可以建立两个表,一个存储供应商信息,一个存储产品信息。ventors存储供应商信息,每个供应商占一行,每个供应商具有唯一的标识,此标识成为主键(primary key原创 2020-05-09 21:44:32 · 203 阅读 · 0 评论 -
MySQL中如何插入数据
插入数据1数据插入2插入完整行3插入多个行4插入检索出的数据1数据插入INSERT是用来插入(或添加)行到数据库表的。插入可以用几种方式使用:插入完整的行;插入行的一部分;插入多行;插入某些查询的结果。2插入完整行把数据插入表中的最简单的方法是使用基本的INSERT语法,要求指定表名和被插入到新行中的值。输入INSERT INTO customersVALUES(NULL, 'Pep E. LaPew', '100 Main Street', 'CA',原创 2020-05-09 21:52:13 · 38956 阅读 · 4 评论 -
如何利用UNION操作符进行组合查询
组合查询1.创建组合查询1.1使用UNION1.2UNION规则1.3包含或取消重复行1.4对组合查询结果排序1.创建组合查询可用UNION操作符来组合数条SQL查询。利用UNION,可给出多条SELECT语句,将它们的结果组合成单个结果集。1.1使用UNIONUNION的使用很简单。所需做的只是给出每条SELECT语句,在各条语句之间放上关键字UNION。举一个例子,假如需要价格小于等于5的所有物品的一个列表,而且还想包括供应商1001和1002生产的所有物品(不考虑价格)。输入SELECT原创 2020-05-09 21:50:53 · 1386 阅读 · 0 评论 -
创建高级联结
创建高级联结1.使用别名2.使用不同类型的联结2.1自联结2.2自然联结2.3外部联结3.使用带聚集函数的联结4.使用联结和联结条件1.使用别名别名除了用于列名和计算字段外,SQL还允许给表名起别名。这样做有两个主要理由:缩短SQL语句;允许在单条SELECT语句中多次使用相同的表。例如;SELECT cust_name,cust_contactFROM customers AS C,orders AS O,orderitems AS oiWHERE c.cust_id = o.cust原创 2020-05-09 21:47:26 · 208 阅读 · 0 评论 -
如何使用MySQL的全文本搜索功能
全本文搜索1.全文本搜索1.1理解全文本搜索2.使用全文搜索2.1启用全文本搜索支持2.2进行全文本搜索2.3使用查询扩展2.4布尔文本搜索2.5全文搜索的使用说明1.全文本搜索1.1理解全文本搜索并非所有引擎都支持全文本搜索两个最常使用的引擎为MyISAM和InnoDB,前者支持全文本搜索,而后者不支持。这就是为什么虽然本书中创建的多数样例表使用InnoDB,而有一个样例表(productnotes表)却使用MyISAM的原因。一些搜索机制的限制如下:性能——通配符和正则表达式匹配通常要求M原创 2020-05-09 21:46:32 · 1214 阅读 · 2 评论 -
如何对数据库表进行更新和删除数据
这里写目录标题1.更新数据2.删除数据3.更新和删除的指导原则1.更新数据为了更新(修改)表中的数据,可使用UPDATE语句。可采用两种方式更新UPDATE:更新表中特定行更新表中 所有行不要省略WHERE子句 在使用UPDATE时一定要注意细心。基本的UPDATE语句由3部分组成,分别是:要更新的表;列名和它们的新值;确定要更新行的过滤条件。举一个简单例子。客户10005现在有了电子邮件地址,因此他的记录需要更新,语句如下:UPDATE customers SET c原创 2020-05-09 21:45:30 · 5771 阅读 · 1 评论 -
MYSQL中使用子查询进行过滤
使用子查询子查询利用子查询进行过滤作为计算字段使用子查询子查询查询(query) 任何SQL语句都是查询。但此术语一般指SELECT语句。SQL还允许创建子查询(subquery),即嵌套在其他查询中的查询。利用子查询进行过滤例子:假如需要列出订购物品TNT2的所有客户(1) 检索包含物品TNT2的所有订单的编号。(2) 检索具有前一步骤列出的订单编号的所有客户的ID。(3) 检索前一步骤返回的所有客户ID的客户信息。输入SELECT cust_idFROM ordersWHERE原创 2020-05-08 23:04:14 · 1347 阅读 · 0 评论 -
对数据进行分组统计
数据分组创建分组过滤分组分组和排序SELECT子句顺序创建分组分组是在SELECT语句的GROUP BY子句中建立的。看一个例子输入SELECT vend_id,COUNT(*) AS num_prodsFROM productsORDER BY vend_id;输出分析;上面的SELECT语句指定了两个列,vend_id包含产品供应商的ID,num_prods为计算字段(用COUNT(*)函数建立)。GROUP BY子句指示MySQL按vend_id排序并分组数据。这导致对每个ve原创 2020-05-08 23:03:47 · 1396 阅读 · 0 评论 -
SQL -对数据进行汇总
汇总数据聚集函数聚集不同值组合聚集函数聚集函数聚集函数(aggregate function) 运行在行组上,计算和返回单个值的函数。SQL聚集函数函数说明AVG()返回某列的平均值COUNT()返回某列的行数MAX()返回某列的最大值MIN()返回某列的最小值SUM()返回某列值之和AVG函数使用AVG()返回products表中所有产品的平均价格输入SELECT AVG(prod_price) AS avg_priceFRO原创 2020-05-08 23:03:08 · 1397 阅读 · 0 评论 -
使用函数来处理数据
使用数据处理函数函数使用函数文本处理函数日期和时间处理函数数值处理函数函数SQL支持利用函数来处理数据。函数一般是在数据上执行的,它给数据的转换和处理提供了方便。函数的可移植性函数没有SQL可移植性强,能运行在多个系统的代码成为可移植的(Protable)。先对来说,多数SQL语句是可移植的,在SQL实现之间有差异时,这些差异通常不那么难处理。而函数的可移植性却不强。几乎每种主要的DBMS的实现都支持其他实现不支持的函数,而且有时差异还很大。使用函数大多数SQL实现支持以下类型的函数。1.用原创 2020-05-08 23:02:32 · 332 阅读 · 0 评论 -
SQL如何创建计算字段
创建计算字段拼接字段删除右侧多余空格执行算术计算MySQL算术符拼接字段拼接(concatenate) 将值联结到一起构成单个值。在MySQL的SELECT语句中,可使用Concat()函数来拼接两个列。输入SELECT Concat(vend_name, '(',vend_country,')')FROM vendorsORDER BY vend_name;分析:Concat...原创 2020-05-08 11:52:48 · 1469 阅读 · 0 评论