SQL学习
墨染百城
目前专注于数据分析、大数据计算方面的学习
展开
-
【书山有路】SQL必知必会 第1课
这一课介绍SQL究竟是什么,它能做什么事情。概念 模式:表具有一些特性,这些特性定义了数据在表中如何存储,包含存储什么样的数据,数据如何分解,各部分信息如何命名等信息。描述表的这组信息就是所谓的模式(schema)。模式可以用来描述数据库中特定的表,也可以用来描述整个数据库(和其中表的关系)。 数据类型兼容:数据类型及其名称是SQL不兼容的一个主要原因。要在创建表结构时记住这些差异。 标准SQL:A原创 2017-03-31 11:44:20 · 692 阅读 · 0 评论 -
【书山有路】SQL必知必会 第14课
本课的主题是“组合查询”,讲述如何利用UNION操作符将多条SELECT语句组合成一个结果集。组合查询主要有两种情况使用组合查询: 在一个查询中从不同的表返回结构数据 对一个表执行多个查询,按一个查询返回数据 UNION规则 UNION必须由两条或两条以上的SELECT语句组成。 UNION中的每个查询必须包含相同的列、表达式或聚集函数 列数据类型必须兼容:类型不必完全相同,但必须是DBMS可以隐式原创 2017-04-04 23:48:53 · 686 阅读 · 0 评论 -
【书山有路】SQL必知必会 第13课
本章的主题是“创建高级联结”,主要介绍如何使用表别名,如何对被联结的表使用聚集函数。提示 表的别名只在查询执行中使用,不返回到客户端。 使用表别名SQL允许给表名起别名,有两个主要理由: 缩短SQL语句 允许在一条SELECT语句中多次使用相同的表 自连接自连接通常作为外部语句,用来替代从相同表中检索数据的使用子查询语句。许多DBMS处理联结远比处理子查询快得多。自然联结无论何时对表进行连接,应该至原创 2017-04-04 23:37:07 · 651 阅读 · 0 评论 -
【书山有路】SQL必知必会 第12课
本章的主题是“联结表”,主要介绍什么是联结,为什么使用联结,如何编写使用联结的SELECT语句。概念 由没有联结条件的表关系返回的结果为笛卡尔积。检索出的行的数目将是第一个表中的行数乘以第二个表中的行数。笛卡尔积又称为Cross Join 警告 要保证所有的联结都有WHERE子句,否则DBMS将返回比想要的数据多得多的数据。 DBMS在运行时关联指定的每个表,以处理联结。这种处理可能非常耗费资源,因原创 2017-04-04 23:14:32 · 735 阅读 · 0 评论 -
【书山有路】SQL必知必会 第11课
本章的主题是“使用子查询”,介绍什么是子查询,以及如何使用它们。提示 在WHERE子句中使用子查询能够编写出功能很强且很灵活的SQL语句。对于能嵌套的子查询的书目没有限制,不过在实际使用时由于性能的限制不能嵌套太多的子查询。 也可以在计算字段中使用子查询。 警告 使用子查询并不总是执行这类数据检索的最有效方法。 子查询SQL允许创建子查询,即嵌套在其他查询中的查询。可以把一条SELECT语句返回的结原创 2017-04-03 15:45:20 · 865 阅读 · 0 评论 -
【书山有路】SQL必知必会 第10课
本章的主题是“分组数据”,介绍如何分组数据,以便汇总表内容的子集。涉及到GROUP BY和HAVING子句。提示 使用分组可以将数据分为多个逻辑组,对每个组进行聚集计算。 HIVING支持所有WHERE操作符。 WHERE在数据分组前进行过滤,HAVING在数据分组后进行过滤。 创建分组分组是使用SELECT语句和GROUP BY子句建立的。来看下面的SQL命令:SELECT vend_id, CO原创 2017-04-02 19:21:44 · 553 阅读 · 0 评论 -
【书山有路】SQL必知必会 第9课
本章的主题是“汇总数据”,介绍什么是SQL聚集函数,以及如何利用它们汇总表的数据。警告 AVG只能用来确定特定数值列的平均值,列名必须作为参数给出。为了获得多个列的平均值,必须使用多个AVG函数。 AVG函数忽略列值为NULL的行。 MAX函数忽略列值为NULL的行。 MIN函数忽略列值为NULL的行。 SUM函数忽略列值为NULL的行。 DISTINCT只能用于COUNT(column),不能用于原创 2017-04-02 00:08:13 · 477 阅读 · 0 评论 -
【书山有路】SQL必知必会 第8课
本章的主题是“使用数据处理函数”,介绍什么是函数,如何使用这些函数;还将讲解为什么SQL函数的使用可能会带来问题。概念 可移植:所编写的代码可以在多个系统上运行。 提示 为了代码的可移植性,许多SQL程序员不赞成使用特定于实现的功能。虽然这样做很有好处,但有的时候并不利于应用程序的性能。如果不使用这些函数,编写某些应用程序代码会很艰难。必须利用其他方法来实现DBMS可以非常有效完成的工作。 使用或不原创 2017-04-01 15:33:32 · 476 阅读 · 0 评论 -
【书山有路】SQL必知必会 第7课
本章的主题是“创建计算字段”,介绍什么是计算字段,如何创建计算字段,以及如何从应用程序中使用别名引用它们。概念 字段:基本上与列的意思相同,经常互换使用,不过数据库列一般称为列,而术语字段通常与计算字段一起使用。 拼接:将值联结到一起(将一个值附加到另一个值)构成单个值。 提示 只有数据库知道SELECT语句中哪些列是实际的列表,哪些列是计算字段。从客户端来看,计算字段的数据与其他列的数据的返回方式原创 2017-04-01 10:31:56 · 548 阅读 · 0 评论 -
【书山有路】SQL必知必会 第6课
本章的主题是“用通配符进行过滤”,主要介绍什么是通配符,如何使用通配符以及怎样使用LIKE操作进行通配搜索。概念 通配符:用来匹配值的一部分的特殊字符。 搜索模式:由字面值、通配符或者两者构成的搜索条件。 谓词:取值为TRUE、FALSE或UNKNOWN的表达式。 提示 当操作符是谓词时,它不是操作符。 通配符搜索只能用于文本字段(串),非文本数据类型字段不能使用通配符搜索。 通配符可在搜索模式中的原创 2017-04-01 09:59:23 · 637 阅读 · 0 评论 -
【书山有路】SQL必知必会 第5课
这一课讲授的主题是“高级数据过滤”,组合WHERE子句建立功能更强的搜索条件。还将学习NOT和IN操作符。提示 WHERE子句中的AND操作符优先级高于OR操作符。所以应该使用圆括号正确的分组。 IN操作符IN操作符用于范围匹配,范围中的每个条件都可以进行匹配。使用下面的代码:SELECT prod_name,prod_price FROM Products WHERE vend_id IN ('D原创 2017-03-31 13:24:48 · 712 阅读 · 0 评论 -
【书山有路】SQL必知必会 第4课
这一章的主题是“过滤数据”,讲授如何使用SELECT的WHERE子句指定搜索条件。提示 数据也可以在应用层过滤,SQL检索出超出实际所需的数据,然后客户端代码提取出需要的行。通常这种做法及其不妥,让客户端应用处理数据库的工作会极大地影响应用的性能,并且使创建的应用不具备可伸缩性。还将导致网络带宽的浪费。 使用IS NULL来过滤NULL值。 概念 可伸缩性,是一种对软件系统计算处理能力的设计指标,高原创 2017-03-31 13:13:05 · 602 阅读 · 0 评论 -
【书山有路】SQL必知必会 第3课
这一课的主题是“排序检索数据”,主要讲授如何使用ORDER BY子句。概念 子句:SQL语句由子句构成,有些字句是必须的,有些则是可选的。一个子句通常由一个关键字加上所提供的数据组成。 提示 在指定一条ORDER BY子句时,应该保证它是SELECT语句中最后一条子句。如果它不是最后的子句,将会出现错误。 ORDER BY可以使用非选择的列进行排序。默认是升序排序。 警告 在多个列上进行降序排序,必原创 2017-03-31 12:59:24 · 542 阅读 · 0 评论 -
【书山有路】SQL必知必会 第2课
这一课的主题是“检索数据”,介绍如何使用SELECT语句从表中检索一个或多个数据列。提示 SQL语句后要加分号 对SQL关键字使用大写,对列名和表命使用小写。这样做使代码更易于调试和阅读。 多数SQL开发人员认为,将SQL语句分成多行更容易阅读和调试。 SQL语句一般返回原始的、无格式的数据。数据的格式化是表示问题,而不是检索问题。 警告 一般而言,除非你确实需要表中的每一列,否则最好别使用*通配符原创 2017-03-31 12:47:48 · 759 阅读 · 0 评论 -
【书山有路】SQL必知必会 第22课
第15课到21课也看过了,感觉没有什么记笔记的需要。本课很重要,一定要记一下。本课的主题是“高级SQL特性”,介绍约束、索引和触发器。概念 约束:管理如何插入或处理数据库数据的规则。 约束引用完整性利用键来建立一个从一个表到另一个表的引用,保证只在表中插入合法(存在于引用列)的数据。主键保证一列中的值是唯一的,且永不改动。外键有助于防止意外删除。唯一约束保证一列中的数据是唯一的。检查约束用户自定义约原创 2017-04-05 09:59:23 · 743 阅读 · 0 评论