各子句一般要分行写。 使用缩进提高语句的可读性。 列的别名 列的别名: 重命名一个列。 使用方式: 紧跟列名,也可以在列名和别名之间加入关键字‘AS'。...过滤和排序数据 过滤: 对于查询到的数据使用某些自定义条件进行筛选 WHERE子句 SELECT 列名1, 列名2 , ...FROM 表名WHERE 过滤条件;...使用WHERE 子句,将不满足条件的行过滤掉。...补充:赋值使用 := 符号 在使用WHERE子句过滤数据的时候可以使用比较运算符 查询薪水小于3000的员工的名字和薪水 SELECT last_name, salary FROM employees...= 'SA_REP'; ORDER BY 子句 对虚表的记录进行排序, 所以通常是在虚表的记录确定下来以后.
使用子查询时还需要考虑以下几点: ntext,text和image数据类型不允许从子查询返回 ORDER BY子句不能用于子查询,除非使用TOP操作符 使用子查询的视图无法更新 COMPUTE和INTO...WHERE子句中子查询的示例 有时你想根据SELECT语句的结果来驱动WHERE子句条件。 当您在WHERE子句中的SELECT语句时,此SELECT语句实际上是一个子查询。...要演示在WHERE子句中使用子查询,假设您需要显示包含购买超大型长袖徽标运动衫的Sales.SalesOrderDetail记录。 清单3中的代码通过使用子查询来满足我的显示要求。...[SalesOrderDetail] WHERE ProductID = 716; 清单4:TOP子句中的子查询 清单4中的代码使用从子查询返回的OrderQty值来标识将在TOP子句中使用的值。...我的子查询返回包含ProductID为716的最后10个Sales.alesOrderDetail记录。 清单7中的代码是一个非常简单的例子,说明如何在FROM子句中使用子查询。
4、应尽量避免在where子句中使用or来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,可以使用UNION合并查询:select id from t where num=10 union all...28、索引的使用规范: 索引的创建要与应用结合考虑,建议大的OLTP表不要超过6个索引; 尽可能的使用索引字段作为查询条件,尤其是聚簇索引,必要时可以通过index index_name来强制指定索引.../01’ (< 1秒) 30、当有一批处理的插入或更新时,用批量插入或批量更新,绝不会一条条记录的去更新。...为了避免在更新前SELECT,使用INSERT ON DUPLICATE KEY或者INSERT IGNORE,不要用UPDATE去实现,不要使用MAX,使用索引字段和ORDER BY子句,LIMIT...EXPLAIN的查询结果还会告诉你你的索引主键被如何利用的,你的数据表是如何被搜索和排序的。
4、应尽量避免在where子句中使用or来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,可以使用UNION合并查询:select id from t where num=10 union all...28、索引的使用规范: 索引的创建要与应用结合考虑,建议大的OLTP表不要超过6个索引; 尽可能的使用索引字段作为查询条件,尤其是聚簇索引,必要时可以通过index index_name来强制指定索引;.../01’ (< 1秒) 30、当有一批处理的插入或更新时,用批量插入或批量更新,绝不会一条条记录的去更新。...为了避免在更新前SELECT,使用INSERT ON DUPLICATE KEY或者INSERT IGNORE,不要用UPDATE去实现,不要使用MAX,使用索引字段和ORDER BY子句,LIMIT...EXPLAIN的查询结果还会告诉你你的索引主键被如何利用的,你的数据表是如何被搜索和排序的。
NOT NULL COMMENT '创建时间', update_time DATETIME NOT NULL COMMENT '更新时间', primary key(id) ) COMMENT...光看概念,晦涩难懂,我们结合具体的例子来看关联子查询 还是以商品表:t_commodity 为例,如何选取出各商品类别中高于该类别平均出售价格的商品,可能大家还没明白这个需求,那么我们具体点 ...在对表中某一部分记录的集合进行比较时,就可以使用关联子查询,当出现 “限定” 或 “限制” 这样的词汇时,通常会使用关联子查询。 ...、BETWEEN 等运算符一起使用,使用起来也是非常灵活的;标量子查询出现的位置就更灵活了,并不仅仅局限于 WHERE 子句中,通常任何可以使用单一值的位置都可以使用,SELECE 子句、GROUP BY...子句、HAVING 子句、ORDER BY 子句,也就是说,能够使用常量或者列名的地方,都可以使用标量子查询。
4 应尽量避免在 where 子句中使用 or 来连接条件, 否则将导致引擎放弃使用索引而进行全表扫描, 可以 使用UNION合并查询:select id from t where num=10 union...28 索引的使用规范:索引的创建要与应用结合考虑,建议大的OLTP表不要超过6个索引;尽可能的使用索引字段作为查询条件,尤其是聚簇索引,必要时可以通过index index_name来强制指定索引;避免对大表查询时进行...用批量插入或批量更新,绝不会一条条记录的去更新!...为了 避免在更新前SELECT,使用INSERT ON DUPLICATE KEY或者INSERT IGNORE ,不要用UPDATE去实现,不要使用 MAX,使用索引字段和ORDER BY子句,LIMIT...EXPLAIN 的查询结果还会告诉你你的索引主键被如何利用的,你的数据表是如何被搜索和排序的……等等,等等。
4,应尽量避免在 where 子句中使用 or 来连接条件, 否则将导致引擎放弃使用索引而进行全表扫描, 可以 使用UNION合并查询: select id from t where num=10 union...28,索引的使用规范:索引的创建要与应用结合考虑,建议大的OLTP表不要超过6个索引;尽可能的使用索引字段作为查询条件,尤其是聚簇索引,必要时可以通过index index_name来强制指定索引;避免对大表查询时进行...用批量插入或批量更新,绝不会一条条记录的去更新!...为了 避免在更新前SELECT,使用INSERT ON DUPLICATE KEY或者INSERT IGNORE ,不要用UPDATE去实现,不要使用 MAX,使用索引字段和ORDER BY子句,LIMIT...EXPLAIN 的查询结果还会告诉你你的索引主键被如何利用的,你的数据表是如何被搜索和排序的……等等,等等。
4,应尽量避免在 where 子句中使用 or 来连接条件, 否则将导致引擎放弃使用索引而进行全表扫描, 可以 使用UNION合并查询:select id from t where num=10 union...28,索引的使用规范:索引的创建要与应用结合考虑,建议大的OLTP表不要超过6个索引;尽可能的使用索引字段作为查询条件,尤其是聚簇索引,必要时可以通过index index_name来强制指定索引;避免对大表查询时进行...,绝不会一条条记录的去更新!...为了 避免在更新前SELECT,使用INSERT ON DUPLICATE KEY或者INSERT IGNORE ,不要用UPDATE去实现,不要使用 MAX,使用索引字段和ORDER BY子句,LIMIT...EXPLAIN 的查询结果还会告诉你你的索引主键被如何利用的,你的数据表是如何被搜索和排序的……等等,等等。
4、应尽量避免在 WHERE 子句中使用 OR 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,可以使用 UNION 合并查询:select id from t where num=10 union...代替 select count(1) 来判断是否存在记录。...28、索引的使用规范: 索引的创建要与应用结合考虑,建议大的 OLTP 表不要超过 6 个索引; 尽可能的使用索引字段作为查询条件,尤其是聚簇索引,必要时可以通过 index index_name 来强制指定索引...为了避免在更新前 SELECT,使用 INSERT ON DUPLICATE KEY 或者 INSERT IGNORE;不要用 UPDATE 去实现,不要使用 MAX;使用索引字段和 ORDER BY子句...EXPLAIN 的查询结果还会告诉你你的索引主键被如何利用的,你的数据表是如何被搜索和排序的。
4 应尽量避免在 where 子句中使用 or 来连接条件, 否则将导致引擎放弃使用索引而进行全表扫描, 可以使用 UNION 合并查询: select id from t where num=10 union...28 索引的使用规范:索引的创建要与应用结合考虑,建议大的OLTP表不要超过6个索引;尽可能的使用索引字段作为查询条件,尤其是聚簇索引,必要时可以通过index index_name来强制指定索引;避免对大表查询时进行...当有一批处理的插入或更新时,用批量插入或批量更新,绝不会一条条记录的去更新!...为了避免在更新前 SELECT,使用 INSERT ON DUPLICATE KEY 或者 INSERT IGNORE ,不要用UPDATE去实现,不要使用 MAX,使用索引字段和 ORDER BY 子句...EXPLAIN 的查询结果还会告诉你你的索引主键被如何利用的,你的数据表是如何被搜索和排序的……等等,等等。
应尽量避免在 where 子句中使用 or 来连接条件, 否则将导致引擎放弃使用索引而进行全表扫描, 可以 使用UNION合并查询: select id from t where num=10 union...索引的使用规范:索引的创建要与应用结合考虑,建议大的OLTP表不要超过6个索引;尽可能的使用索引字段作为查询条件,尤其是聚簇索引,必要时可以通过index index_name来强制指定索引;避免对大表查询时进行...,绝不会一条条记录的去更新!...为了避免在更新前SELECT,使用INSERT ON DUPLICATE KEY或者INSERT IGNORE ,不要用UPDATE去实现,不要使用 MAX,使用索引字段和ORDER BY子句,LIMIT...EXPLAIN 的查询结果还会告诉你你的索引主键被如何利用的,你的数据表是如何被搜索和排序的……等等,等等。
4、应尽量避免在 WHERE 子句中使用 OR 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,可以使用 UNION 合并查询: select id from t where num=10 union...代替 select count(1) 来判断是否存在记录。...28、索引的使用规范: 索引的创建要与应用结合考虑,建议大的 OLTP 表不要超过 6 个索引;尽可能的使用索引字段作为查询条件,尤其是聚簇索引,必要时可以通过 index index_name 来强制指定索引...为了避免在更新前 SELECT,使用 INSERT ON DUPLICATE KEY 或者 INSERT IGNORE;不要用 UPDATE 去实现,不要使用 MAX;使用索引字段和 ORDER BY子句...EXPLAIN 的查询结果还会告诉你你的索引主键被如何利用的,你的数据表是如何被搜索和排序的。
上篇教程我们介绍了 MySQL 的安装以及如何在客户端连接并管理 MySQL 数据库,今天我们来简单过一下日常常用的 SQL 语句,以 phpMyAdmin 作为 GUI 工具为例进行演示。...数据表索引 关于数据表索引的类型、创建和维护我们在后面会结合实战项目进行介绍,这里不单独展开了。...查询 SQL 语句 不指定查询条件默认返回所有查询结果,你也可以通过 WHERE 子句指定查询条件返回特定结果: SELECT * FROM `post` WHERE id = 1; 还可以指定要查询的字段...更新SQL语句 点击「执行」按钮进行更新,就可以看到修改后的字段值了,在进行 UPDATE 更新时,需要特别关注 WHERE 子句,因为如果没有设置 WHERE 条件,会更新整张表。...删除 SQL 语句 和 UPDATE 一样,如果没有通过 WEHRE 子句设置删除条件,也会删除整张表记录,所以在执行删除操作前需要格外注意。
保存 年月日,时分秒 3. timestamp 邮戳: 该类型可以保存 年-月-日 : 时分秒 它和datetime最大的区别是,当你upda某条记录的时候...3、delete from 表名 where 条件, 注意: 如果不使用where子句,将删除表中所有数据。 所有要小心使用 注意事项: 1....4.删除表中数据也可使用Truncate table语句,它和delete 有所不同、 ---truncate table 表名 ,可以删除表的记录,速度快,但 不能回滚。 4....select distinct * from book ; ---使用where子句,进行过滤查询。 ---like语句中,%代表0个或者多个任意字符,_代表一个字符。...使用order by子句排序查询结果,子句应位于select语句的结尾。
4,应尽量避免在 where 子句中使用 or 来连接条件, 否则将导致引擎放弃使用索引而进行全表扫描, 可以 使用UNION合并查询: select id from t where num=10 union...28,索引的使用规范:索引的创建要与应用结合考虑,建议大的OLTP表不要超过6个索引;尽可能的使用索引字段作为查询条件,尤其是聚簇索引,必要时可以通过index index_name来强制指定索引;避免对大表查询时进行...用批量插入或批量更新,绝不会一条条记录的去更新!...EXPLAIN 的查询结果还会告诉你你的索引主键被如何利用的,你的数据表是如何被搜索和排序的……等等,等等。...(mediumint就比int更合适) 比如时间字段:datetime和timestamp, datetime占用8个字节,而timestamp占用4个字节,只用了一半,而timestamp表示的范围是
(2)需求说明 要求执行你透视转换,为每个员工和客户组合返回一行记录,其中包含这一组合的订货量。期望的输出结果如下图所示: ? ...使用该子句,可以方便地在同一个查询中定义多个分组集。...因为TRUNCATE会以最小模式记录日志,而DELETE则以完整模式记录日志。所以,各位,谨慎使用TRUNCATE。...: (1)Jackson,《30分钟全面解析-SQL事务+隔离级别+阻塞+死锁》 (2)BIWork,《SQL Server 中的事务与事务隔离级别以及如何理解脏读, 未提交读,不可重复读和幻读产生的过程和原因...一般来说,如果按固定顺序一次处理一行的游标方式涉及到的数据访问要比基于集合的方式少得多,则使用游标会更加有效,前一篇提到的连续聚合就是这样的一个例子。 如何使用游标呢? ?
4、应尽量避免在where子句中使用or来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,可以使用UNION合并查询:select id from t where num=10 union all...28、索引的使用规范: 索引的创建要与应用结合考虑,建议大的OLTP表不要超过6个索引; 尽可能的使用索引字段作为查询条件,尤其是聚簇索引,必要时可以通过index index_name来强制指定索引;...EXPLAIN的查询结果还会告诉你你的索引主键被如何利用的,你的数据表是如何被搜索和排序的。...4、应尽量避免在where子句中使用or来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,可以使用UNION合并查询:select id from t where num=10 union all...28、索引的使用规范: 索引的创建要与应用结合考虑,建议大的OLTP表不要超过6个索引; 尽可能的使用索引字段作为查询条件,尤其是聚簇索引,必要时可以通过index index_name来强制指定索引;
如果只需要 记录年份,则使用YEAR类型即可;如果只记录时间,只须使用TIME类型。如果同时需要记录日期和时间,则可以使用TIMESTAMP或者DATETIME类型。...19、在WHERE子句中必须使用圆括号吗? 任何时候使用具有AND和OR操作符的WHERE子句,都应该使用圆括号明确操作顺序。...20、更新或者删除表时必须指定WHERE子句吗? 在前面章节中可以看到,所有的UPDATE和DELETE语句全都在WHERE子句中指定了条件。...如果省略WHERE子句,则UPDATE或DELETE将被应用到表中所有的行。因此,除非确实打算更新或者删除所有记录,否则要注意使用不带WHERE子句的UPDATE或DELETE 语句。...建议在对表进行更新和删除操作之前,使用SELECT语句确认需要删除的记录,以免造 成无法挽回的结果。 21、索引对数据库性能如此重要,应该如何使用它? 为数据库选择正确的索引是一项复杂的任务。
如果只需要 记录年份,则使用YEAR类型即可;如果只记录时间,只须使用TIME类型。如果同时需要记录日期和时间,则可以使用TIMESTAMP或者DATETIME类型。...19、在WHERE子句中必须使用圆括号吗? 任何时候使用具有AND和OR操作符的WHERE子句,都应该使用圆括号明确操作顺序。...20、更新或者删除表时必须指定WHERE子句吗? 在前面章节中可以看到,所有的UPDATE和DELETE语句全都在WHERE子句中指定了条 件。...如果省略WHERE子句,则UPDATE或DELETE将被应用到表中所有的行。因此,除非 确实打算更新或者删除所有记录,否则要注意使用不带WHERE子句的UPDATE或DELETE 语句。...建议在对表进行更新和删除操作之前,使用SELECT语句确认需要删除的记录,以免造 成无法挽回的结果。 21、索引对数据库性能如此重要,应该如何使用它? 为数据库选择正确的索引是一项复杂的任务。
领取专属 10元无门槛券
手把手带您无忧上云