首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SQL知识点总结

我觉得对于SQL语句,清楚知道它执行的顺序,对于写sql语句非常重要                                   sql查询中用到的关键词主要包含六个,并且他们的书定顺序依次为...(1)group by语句对select后所选择的字段有一定的限制,即select后没有使用聚合函数的字段必须包含在group by 语句后面的结果集中。...而结果集列名称一般指的是select 后字段 As "结果集的名称"。 (4)GROUP BY 语句中的空,如果分组包含一个空则该行将成为结果中的一个组。...如果分组包含多个空,则这些空将放入一个组中。 (5)GROUP BY 语句中可以使用 ALL(可选)关键字,返回由GROUP BY 子句生成的所有组。...] SELECT  语句n 其中:ALL表示合并结果集中包含所有查询语句产生的全部记录,包括重复的记录。

2.2K10
您找到你想要的搜索结果了吗?
是的
没有找到

mysql复合索引、普通索引总结

包含多个的主键始终会自动以复合索引的形式创建索引,其的顺序是它们表定义中出现的顺序,而不是主键定义中指定的顺序。考虑将来通过主键执行的搜索,确定哪一应该排在最前面。...请注意,创建复合索引应当包含少数几个,并且这些经常在select查询里使用。复合索引里包含太多的不仅不会给带来太多好处。...只要有可能,就应该选择一个数据最整齐、最紧凑的数据(如一个整数类型的数据)来创建索引。 2、唯一索引 普通索引允许被索引的数据包含重复的。...如果能确定某个数据将只包含彼此各不相同的,在为这个数据创建索引的时候就应该用关键字UNIQUE把它定义为一个唯一索引。...查询命令去检索那些包含着一个或多个给定单词的数据记录了。

2.7K20

SQL基础查询方法

WHERE 子句指定出条件: Product 表中,只有 ListPrice 中的大于 40的产品的产品ID、名称以及标价¨G0GSELECT关键字之后所列出的列名(ProductID、Name...WHERE子句指定出条件:Product表中,只有ListPrice中的大于40,该所在的行才符合 SELECT 语句的要求。...这使结果集中得以包含基表中不存在,但是根据基表中存储的计算得到的。这些结果集被称为派生。 表达式可以包含 $ROWGUID 关键字。它解析为对表中具有 ROWGUIDCOL 属性的的引用。...[] IN ( [第一个透视的], [第二个透视的], ......WHERE 和 HAVING 是筛选器。这两个子句指定一系列搜索条件,只有那些满足搜索条件的行才用于生成结果集。我们称满足搜索条件的行包含在结果集中

4.2K10

MySQL模糊查询再也用不着 like+% 了!

( 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 布尔搜索使用特殊查询语言的规则来解释搜索字符串

1.3K30

MySQL 模糊查询再也不用like+%了

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。

15310

mysql索引使用技巧及注意事项

INSERT 与 UPDATE 语句拥有索引的表中执行会花费更多的时间,而SELECT 语句却会执行得更快。这是因为,进行插入或更新时,数据库也需要插入或更新索引。...fulltext index(全文索引):可以针对中的某个单词,但效率确实不敢恭维 组合索引:实质上是将多个字段建到一个索引里,的组合必须唯一 (1)使用ALTER TABLE语句创建索性        ...如果索引长度过长,这种索引时将会产生很大的索引文件,不便于操作,可以使用前缀索引方式进行索引,前缀索引应该控制一个合适的点,控制0.31黄金即可(大于这个就可以创建)。...使用方法,select语句前加上Explain就可以了: Explain select * from user where id=1;   尽量避免这些不走索引的sqlSELECT `sname`...使用索引时,有一些技巧:     1.索引不会包含有NULL的        只要包含有NULL,都将不会被包含在索引中,复合索引中只要有一含有NULL,那么这一对于此符合索引就是无效的。

2.4K70

SQL命令 UNION

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

1.5K20

sql必知必会1

将之前学习的数据库知识整理下,主要是看的**《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

59420

MySQL 模糊查询再也不用 like+% 了!

( 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 布尔搜索使用特殊查询语言的规则来解释搜索字符串

6.5K30

MySQL 模糊查询再也不用like+%了

( 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 布尔搜索使用特殊查询语言的规则来解释搜索字符串

2.4K30

基础篇:数据库 SQL 入门教程

SQL 基础语言学习 了解 SQL 基础语句使用之前,我们先讲一下 表 是什么? 一个数据库通常包含一个或多个表。每个表由一个名字标识(例如“客户”或者“订单”)。表包含带有数据的记录(行)。...Persons; 可以发现,结果集中,Wilson 被列出了多次。...语法: AND 运算符实例: SELECT * FROM 表名称 WHERE 运算符 AND 运算符 ; OR 运算符实例: SELECT * FROM 表名称 WHERE 运算符 ...SQL 高级言语学习 LIKE – 查找类似 LIKE 操作符用于 WHERE 子句中搜索中的指定模式。...VIEW – 视图 SQL 中,视图是基于 SQL 语句的结果集的可视化的表。 视图包含行和,就像一个真实的表。视图中的字段就是来自一个或多个数据库中的真实的表中的字段。

8.9K10

SQL高级查询方法

WHERE [NOT] EXISTS (subquery) 许多包含子查询的 Transact-SQL 语句都可以改用联接表示。其他问题只能通过子查询提出。... Transact-SQL 中,包含子查询的语句和语义上等效的不包含子查询的语句(即联接的方式)性能上通常没有差别。但是,一些必须检查存在性的情况中,使用联接会产生更好的性能。...指定用于比较各的逻辑运算符(例如 = 或 )。 可以 FROM 或 WHERE 子句中指定内部联接;而只能在 FROM 子句中指定外部联接。...当某一行另一个表中没有匹配行时,另一个表的选择列表列将包含。如果表之间有匹配行,则整个结果集行包含基表的数据。 交叉联接 交叉联接将返回左表中的所有行。左表中的每一行均与右表中的所有行组合。...若要用新名称引用结果集中的某(例如在 ORDER BY 子句中),必须按第一个 SELECT 语句中的方式引用该 SELECT city AS Cities FROM stores_west UNION

5.7K20

两万字图文 SQL 零基础入门,不怕你学不会,就怕你不收藏!❤️

SQL 基础语言学习 了解 SQL 基础语句使用之前,我们先讲一下 表 是什么? 一个数据库通常包含一个或多个表。每个表由一个名字标识(例如“客户”或者“订单”)。表包含带有数据的记录(行)。...Persons; 可以发现,结果集中,Wilson 被列出了多次。...语法: AND 运算符实例: SELECT * FROM 表名称 WHERE 运算符 AND 运算符 ; OR 运算符实例: SELECT * FROM 表名称 WHERE 运算符 ...SQL 高级言语学习 ???? LIKE – 查找类似 LIKE 操作符用于 WHERE 子句中搜索中的指定模式。...VIEW – 视图 SQL 中,视图是基于 SQL 语句的结果集的可视化的表。 视图包含行和,就像一个真实的表。视图中的字段就是来自一个或多个数据库中的真实的表中的字段。

8.3K10

SQL数据分析:从基础入门到进阶,提升SQL能力

SQL 基础语言学习 了解 SQL 基础语句使用之前,我们先讲一下 表 是什么? 一个数据库通常包含一个或多个表。每个表由一个名字标识(例如“客户”或者“订单”)。表包含带有数据的记录(行)。...Persons; 可以发现,结果集中,Wilson 被列出了多次。...,结果集中只显示了一 Wilson,显然已经去除了重复列。...语法: SELECT 列名称 FROM 表名称 WHERE 运算符 ; 下面的运算符可在 WHERE 子句中使用: 操作符 描述 = 等于 不等于 > 大于 < 小于 >= 大于等于 <=...语法: AND 运算符实例: SELECT * FROM 表名称 WHERE 运算符 AND 运算符 ; OR 运算符实例: SELECT * FROM 表名称 WHERE 运算符

2.9K41

MIMIC数据库,常用查询指令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 中使用一或者多,但是必须保证要排序的必须存在。

37440

一个分页排序SQL查询结果集不确定的案例

第二种方式是去掉查询第二层的WHERE ROWNUM <= 30语句,查询的最外层控制分页的最小和最大。...(此处原文有一些限定条件,确保第一条SQL的结果集肯定包含第二条和第三条的结果集,即CLS_CODE=B应该只有一条记录在第二条或第三条SQL的结果集中。)...其次,第一次执行第一条和第二条SQL,结果集没有C_CODE=B的记录,但实际应该至少有一个结果集中包含这条记录。...order by的id重复较多,从两次查询结果集中可以看出,对应的所有记录ID都是重复的0,1001-1010和1001-1011记录的行数正确,但对应的DATA是不同的,1001-1010的第...可以看出,两次查询的结果集中,相同行数的data字段是相同的,即已经是确定的结果集了。

1.4K30

【MySQL探索之旅】MySQL数据表的增删查改(初阶)

select name,id from result; 2.3 表达式查询 -- 表达式不包含表达式 select id,name,10 from result; -- 表达式包含一个字段 select...为查询结果中的指定别名,表示返回的结果集中,以别名作为该的名称,语法: select 表达式 as 别名 from 表名; -- 表中列名=别名 select id,name,chinese+math...(1) not 条件为 TRUE(1),结果为 FALSE(0) 【注意】: where 条件可以使用表达式,但是不能使用as 别名 SQL 的执行顺序 遍历表 代入条件 计算列名中的表达式......and... -- 查询语文[80,90]之间的同学 select * from result where chinese between 80 and 90; -- 替换成 and 实现 select...修改(Update) 语法: update 表名 set 列名 = where 表达式; 示例: -- 将张三的数学成绩修改80 update result set math = 80 where

8110
领券