我觉得对于SQL语句,清楚知道它执行的顺序,对于写sql语句非常重要 sql查询中用到的关键词主要包含六个,并且他们的书定顺序依次为...(1)group by语句对select后所选择的字段有一定的限制,即select后没有使用聚合函数的字段必须包含在group by 语句后面的结果集中。...而结果集列名称一般指的是select 后字段 As "结果集列的名称"。 (4)GROUP BY 语句中的空值,如果分组列包含一个空值则该行将成为结果中的一个组。...如果分组列包含多个空值,则这些空值将放入一个组中。 (5)GROUP BY 语句中可以使用 ALL(可选)关键字,返回由GROUP BY 子句生成的所有组。...] SELECT 语句n 其中:ALL表示在合并结果集中包含所有查询语句产生的全部记录,包括重复的记录。
引言:CRUD 即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词的首字母缩写 一.新增数据 1.单行数据 + 全列插入: -- 插入两条记录,value_list....查询字段为表达式: 4.1 表达式不包含字段: 4.2 表达式包含一个字段: 4.3 表达式包含多个字段: 5 别名: 为查询结果中的列指定别名,表示返回的结果集中,以别名作为该列的名称...NULL 数据排序,视为比任何值都小,升序出现在最上面,降序出现在最下面 7.3. 使用表达式排序: 7.3....Where条件可以使用表达式,但不能使用别名。 (因为SQL查询语句,先执行from-->where-->select,最后是order by) 2....FROM 表名 [WHERE ...] [ORDER BY ...] LIMIT n; 从 s 开始,筛选 n 条结果: SELECT ... FROM 表名 [WHERE ...]
结果被存储在一个结果表中,称为结果集 SELECT * from student_db; 2.SQL SELECT DISTINCT 语句 DISTINCT 去重一列重复的数据 SELECT DISTINCT...操作符用于在 WHERE 子句中搜索列中的指定模式。...选取 couintry以 "U" 开始的所有国家 SELECT * FROM student_db WHERE country REGEXP '^[U]'; 12.SQL IN 操作符 IN 操作符允许在...SELECT * FROM student_db WHERE country IN ('CN','JA'); 13.SQL BETWEEN 操作符 BETWEEN 操作符选取介于两个值之间的数据范围内的值...约束(Constraints) 在 SQL 中,我们有如下约束: NOT NULL - 指示某列不能存储 NULL 值。
简单、易用 SQL语言是一种高度结构化的语言,SQL中的关键词基本都是常见的英文单词(如SELECT、WHERE、ORDER BY等),且大部分关键字与该英文单词的愿意相同或接近,非常易于理解。...WHERE 设置筛选条件。用于在SELECT、UPDATE、DELETE等语句中指定筛选条件。...否 SELECT * FROM sheet1 WHERE age > 20;表示从名称为“sheet1”的数据表中筛选并返回“age”大于20的行。 GROUP BY 对查询结果集中的数据进行分组。...GROUP BY经常与 COUNT()、SUM()、AVG()、MAX()、MIN()等子句配合使用,可以基于指定的一列或多列的值(如总数、平均值、最大值、最小值等),对表行进行分类汇总。...否 SELECT * FROM sheet1 ORDER BY age DESC;表示查询名称为“sheet1”的数据表,并返回所有数据,且数据按“age”一列的值降序排列。
包含多个列的主键始终会自动以复合索引的形式创建索引,其列的顺序是它们在表定义中出现的顺序,而不是在主键定义中指定的顺序。在考虑将来通过主键执行的搜索,确定哪一列应该排在最前面。...请注意,创建复合索引应当包含少数几个列,并且这些列经常在select查询里使用。在复合索引里包含太多的列不仅不会给带来太多好处。...只要有可能,就应该选择一个数据最整齐、最紧凑的数据列(如一个整数类型的数据列)来创建索引。 2、唯一索引 普通索引允许被索引的数据列包含重复的值。...如果能确定某个数据列将只包含彼此各不相同的值,在为这个数据列创建索引的时候就应该用关键字UNIQUE把它定义为一个唯一索引。...查询命令去检索那些包含着一个或多个给定单词的数据记录了。
(值, 值...), (值, 值...); 注:上面使用到的 ' ',可以用来表示字符串,或者用 " ",SQL没有 “字符” 这个类型。...如果右表中没有匹配的记录,则结果集中的右表列将包含 NULL。...如果左表中没有匹配的记录,则结果集中的左表列将包含 NULL。...通过创建唯一索引,数据库可以确保索引列中的所有值都是唯一的,这有助于保证数据的完整性。 6. 提高数据完整性 在某些情况下,索引还可以提高数据的完整性。...全文索引(FULLTEXT): 全文索引用于加速对文本字段的全文检索,如查找包含特定单词的记录。它适用于大量文本数据的搜索。
WHERE 子句指定出条件:在 Product 表中,只有 ListPrice 列中的值大于 40的产品的产品ID、名称以及标价¨G0G在SELECT关键字之后所列出的列名(ProductID、Name...WHERE子句指定出条件:在Product表中,只有ListPrice列中的值大于40,该值所在的行才符合 SELECT 语句的要求。...这使结果集中得以包含基表中不存在,但是根据基表中存储的值计算得到的值。这些结果集列被称为派生列。 表达式可以包含 $ROWGUID 关键字。它解析为对表中具有 ROWGUIDCOL 属性的列的引用。...[包含要成为列标题的值的列>] IN ( [第一个透视的列], [第二个透视的列], ......WHERE 和 HAVING 是筛选器。这两个子句指定一系列搜索条件,只有那些满足搜索条件的行才用于生成结果集。我们称满足搜索条件的行包含在结果集中。
MATCH ( title, body ) AGAINST ( 'MySQL' ); 上述语句,查询 title,body 列中包含 'MySQL' 关键字的行数量。...FROM `fts_articles`; 上述两种语句虽然得到的结果是一样的,但从内部运行来看,第二句 SQL 的执行速度更快些,因为第一句 SQL(基于 where 索引查询的方式)还需要进行相关性的排序统计...还可以通过 SQL 语句查询相关性: SELECT *, MATCH ( title, body ) against ( 'MySQL' ) AS Relevance FROM...fts_articles; 相关性的计算依据以下四个条件: word 是否在文档中出现 word 在文档中出现的次数 word 在索引列中的数量 多少个文档包含该 word 对于 InnoDB 存储引擎的全文检索...在 InnoDB 引擎中,参数 innodb_ft_min_token_size 的默认值是 3,innodb_ft_max_token_size 的默认值是 84。
( title, body ) AGAINST ( 'MySQL' ); 上述语句,查询 title,body 列中包含 'MySQL' 关键字的行数量。...FROM `fts_articles`; 上述两种语句虽然得到的结果是一样的,但从内部运行来看,第二句SQL的执行速度更快些,因为第一句SQL(基于where索引查询的方式)还需要进行相关性的排序统计...; 相关性的计算依据以下四个条件: word 是否在文档中出现 word 在文档中出现的次数 word 在索引列中的数量 多少个文档包含该 word 对于 InnoDB 存储引擎的全文检索,还需要考虑以下的因素...: 查询的 word 在 stopword 列中,忽略该字符串的查询 查询的 word 的字符长度是否在区间 [innodb_ft_min_token_size,innodb_ft_max_token_size...在 InnoDB 引擎中,参数 innodb_ft_min_token_size 的默认值是3,innodb_ft_max_token_size的默认值是84 Boolean 布尔搜索使用特殊查询语言的规则来解释搜索字符串
INSERT 与 UPDATE 语句在拥有索引的表中执行会花费更多的时间,而SELECT 语句却会执行得更快。这是因为,在进行插入或更新时,数据库也需要插入或更新索引值。...fulltext index(全文索引):可以针对值中的某个单词,但效率确实不敢恭维 组合索引:实质上是将多个字段建到一个索引里,列值的组合必须唯一 (1)使用ALTER TABLE语句创建索性 ...如果索引列长度过长,这种列索引时将会产生很大的索引文件,不便于操作,可以使用前缀索引方式进行索引,前缀索引应该控制在一个合适的点,控制在0.31黄金值即可(大于这个值就可以创建)。...使用方法,在select语句前加上Explain就可以了: Explain select * from user where id=1; 尽量避免这些不走索引的sql: SELECT `sname`...使用索引时,有一些技巧: 1.索引不会包含有NULL的列 只要列中包含有NULL值,都将不会被包含在索引中,复合索引中只要有一列含有NULL值,那么这一列对于此符合索引就是无效的。
FROM Table2 如果联合分支中的列在长度、精度或比例上不同,则给结果列分配最大的值。...以下SQL构造通常不支持UNION %PARALLEL执行:外部连接、相关字段、包含子查询的IN谓词条件或集合谓词。...UNION ALL和聚合函数 SQL自动优化将UNION ALL聚合函数推入UNION分支子查询。 SQL计算每个子查询的聚合值,然后组合结果返回原始聚合值。...这种优化变换只在以下情况下发生: 外部查询FROM子句必须只包含一个UNION ALL语句。 外部查询不能包含WHERE子句或GROUP BY子句。 外部查询不能包含%VID(视图ID)字段。...在第二个示例中,UNION ALL返回所有值,包括重复值: SELECT Name FROM Sample.Employee WHERE Name %STARTSWITH 'A' UNION SELECT
将之前学习的数据库知识在整理下,主要是看的**《SQL必知必会》**。这本书不愧是经典,入门数据库真的完全足够啦! ?...语法清楚,更直观 求值顺序更容易管理 in子句中可以包含更多其他的select子句,动态地建立where子句 select prod_name, prod_price from products where...() 行数;count(*):统计所有的行数,包含列是NULL的行count(column):特定的列进行统计,忽略NULL值 max() 最大值忽略列值为NULL的行 min() 最小值忽略列值为NULL...的行 sum() 某列值之和忽略列值为NULL的行 select avg(prod_price) as avg_price from products where vend_id = 'DLL01';...,因为是默认ALL 只包含不同的列值,指定DISTINCT参数 DISTINCT参数不能用于count(*),只能用于count(column)指定特定字段 select avg(distinct prod_price
1.CRUD 注释:在SQL中可以使用“--空格+描述”来表示注释说明....(值,值...); into --可以省略; values -- 关键字....; 3.3 查询字段为表达式 -- 表达式不包含字段 SELECT id, name, 10 FROM exam_result; -- 表达式包含一个字段 SELECT id, name,...; 3.4 别名 为查询结果中的列指定别名,表示返回的结果集中,以别名作为该列的名称. -- 结果集中,表头的列名=别名 SELECT id, name, chinese + math + english...AND ... -- 查询语文成绩在 [80, 90] 分的同学及语文成绩 SELECT name, chinese FROM exam_result WHERE chinese BETWEEN 80
( title, body ) AGAINST ( 'MySQL' ); 上述语句,查询 title,body 列中包含 'MySQL' 关键字的行数量。... `fts_articles`; 上述两种语句虽然得到的结果是一样的,但从内部运行来看,第二句SQL的执行速度更快些,因为第一句SQL(基于where索引查询的方式)还需要进行相关性的排序统计,...; 相关性的计算依据以下四个条件: word 是否在文档中出现 word 在文档中出现的次数 word 在索引列中的数量 多少个文档包含该 word 对于 InnoDB 存储引擎的全文检索,还需要考虑以下的因素...: 查询的 word 在 stopword 列中,忽略该字符串的查询 查询的 word 的字符长度是否在区间 [innodb_ft_min_token_size,innodb_ft_max_token_size...在 InnoDB 引擎中,参数 innodb_ft_min_token_size 的默认值是3,innodb_ft_max_token_size的默认值是84 Boolean 布尔搜索使用特殊查询语言的规则来解释搜索字符串
( title, body ) AGAINST ( 'MySQL' ); Natural Language 上述语句,查询 title,body 列中包含 'MySQL' 关键字的行数量。...FROM `fts_articles`; 上述两种语句虽然得到的结果是一样的,但从内部运行来看,第二句SQL的执行速度更快些,因为第一句SQL(基于where索引查询的方式)还需要进行相关性的排序统计...; SQL语句查询相关性 相关性的计算依据以下四个条件: word 是否在文档中出现 word 在文档中出现的次数 word 在索引列中的数量 多少个文档包含该 word 对于 InnoDB 存储引擎的全文检索...,还需要考虑以下的因素: 查询的 word 在 stopword 列中,忽略该字符串的查询 查询的 word 的字符长度是否在区间 [innodb_ft_min_token_size,innodb_ft_max_token_size...在 InnoDB 引擎中,参数 innodb_ft_min_token_size 的默认值是3,innodb_ft_max_token_size的默认值是84 Boolean 布尔搜索使用特殊查询语言的规则来解释搜索字符串
SQL 基础语言学习 在了解 SQL 基础语句使用之前,我们先讲一下 表 是什么? 一个数据库通常包含一个或多个表。每个表由一个名字标识(例如“客户”或者“订单”)。表包含带有数据的记录(行)。...Persons; 可以发现,在结果集中,Wilson 被列出了多次。...语法: AND 运算符实例: SELECT * FROM 表名称 WHERE 列 运算符 值 AND 列 运算符 值; OR 运算符实例: SELECT * FROM 表名称 WHERE 列 运算符 值...SQL 高级言语学习 LIKE – 查找类似值 LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。...VIEW – 视图 在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表。 视图包含行和列,就像一个真实的表。视图中的字段就是来自一个或多个数据库中的真实的表中的字段。
WHERE [NOT] EXISTS (subquery) 许多包含子查询的 Transact-SQL 语句都可以改用联接表示。其他问题只能通过子查询提出。...在 Transact-SQL 中,包含子查询的语句和语义上等效的不包含子查询的语句(即联接的方式)在性能上通常没有差别。但是,在一些必须检查存在性的情况中,使用联接会产生更好的性能。...指定用于比较各列的值的逻辑运算符(例如 = 或 )。 可以在 FROM 或 WHERE 子句中指定内部联接;而只能在 FROM 子句中指定外部联接。...当某一行在另一个表中没有匹配行时,另一个表的选择列表列将包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。 交叉联接 交叉联接将返回左表中的所有行。左表中的每一行均与右表中的所有行组合。...若要用新名称引用结果集中的某列(例如在 ORDER BY 子句中),必须按第一个 SELECT 语句中的方式引用该列 SELECT city AS Cities FROM stores_west UNION
SQL 基础语言学习 在了解 SQL 基础语句使用之前,我们先讲一下 表 是什么? 一个数据库通常包含一个或多个表。每个表由一个名字标识(例如“客户”或者“订单”)。表包含带有数据的记录(行)。...Persons; 可以发现,在结果集中,Wilson 被列出了多次。...语法: AND 运算符实例: SELECT * FROM 表名称 WHERE 列 运算符 值 AND 列 运算符 值; OR 运算符实例: SELECT * FROM 表名称 WHERE 列 运算符 值...SQL 高级言语学习 ???? LIKE – 查找类似值 LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。...VIEW – 视图 在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表。 视图包含行和列,就像一个真实的表。视图中的字段就是来自一个或多个数据库中的真实的表中的字段。
SELECT 语句 SELECT 语句用于从数据库中选取数据。 结果被存储在一个结果表中,称为结果集。 SQL SELECT 语法 SELECT column1, column2, ......PostgresSQL 中的 WHERE 语句可以用 OR 包含多个过滤条件。 示例 IN IN 操作符允许您在 WHERE 子句中规定多个值。...value1:范围的起始值。 value2:范围的结束值。 模式匹配 LIKE 模式匹配功能主要用于搜索,常用的就是LIKE LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。...示例 %是为了避免在两个单词之间填充其他字符导致结果出错 lower 是把 label字段都变成小写,以避免没有匹配上而遗漏 模式匹配 POSIX 正则表达式 ~ ORDER BY 在 PostgreSQL..., .. columnN] [ASC | DESC]; 您可以在 ORDER BY 中使用一列或者多列,但是必须保证要排序的列必须存在。
SQL 基础语言学习 在了解 SQL 基础语句使用之前,我们先讲一下 表 是什么? 一个数据库通常包含一个或多个表。每个表由一个名字标识(例如“客户”或者“订单”)。表包含带有数据的记录(行)。...Persons; 可以发现,在结果集中,Wilson 被列出了多次。...,结果集中只显示了一列 Wilson,显然已经去除了重复列。...语法: SELECT 列名称 FROM 表名称 WHERE 列 运算符 值; 下面的运算符可在 WHERE 子句中使用: 操作符 描述 = 等于 不等于 > 大于 < 小于 >= 大于等于 <=...语法: AND 运算符实例: SELECT * FROM 表名称 WHERE 列 运算符 值 AND 列 运算符 值; OR 运算符实例: SELECT * FROM 表名称 WHERE 列 运算符 值
领取专属 10元无门槛券
手把手带您无忧上云