@lsyAndroid
2017-12-05T01:54:39.000000Z
字数 2095
阅读 645
MySQL 后端 爬虫
help show; -- 显示允许的show语句,查看show命令的常用用法
show columns from table_name;
select distinct vend_id from products;
需要注意的是,distinct关键字应用于所有的列,而不仅仅是前置它的列,也就是说,不是紧跟在distinct关键字之后的列起作用,而是对跟在distinct关键字之后的所有的列起作用。例如:
select distinct vend_id, prod_price from products;
除非指定的两个列都不同,否则所有行都将被检索出来。
注意,distinct必须使用列名,不能用于计算表达式。
对于LIMIT关键字,检索出来的第一行为行0, 也就是说:
select vend_id from products limit 5, 5;
是从第六行(行5)开始, 检索后面五行的内容。
在同时使用where子句和order by子句时,应该让order by子句位于where子句之后
在通过过滤选择出不具有特定值的行时, 你可能希望返回具有NULL值的行。但是,不可以,绝对不可以。
因为未知具有特殊的含义,数据库不知道它们是否匹配,所以在匹配过滤或者不匹配过滤时不返回它们。
| 子句 | 说明 | 是否必须使用 |
|---|---|---|
| select | 要返回的列或者表达式 | 是 |
| from | 从中检索数据的表 | 仅在从表选择数据时使用 |
| where | 行级过滤 | 否 |
| group by | 分组说明 | 仅在按组计算聚集时使用 |
| having | 组级过滤 | 否 |
| order by | 输出排序顺序 | 否 |
| limit | 要检索的行数 | 否 |
* 保证所有联结都有where子句,保证where子句的准确性
组合查询(UNION)
插入数据时,每一条insert语句都必须包含表中相应的列名。
插入数据时,可以省略某些列。省略的列必须满足:
注意:外键不能跨引擎,比如MyISAM与InnoDB引擎
一般的,将视图应用于检索(select)
使用order by关键字和limit关键字,能够找出一个列的中最高或者最低的值。
IN操作符的使用
功能相当于or,优点在于:
IN最大的优点时可以包含其他select子句,使得能够动态地建立where子句
使用通配符,like子句
通配符搜索的处理一般比前面讨论的其他的搜索所花的时间更长。
技巧在于:
注意放置的位置,谨慎思考
通过select Now()语句来返回当前日期和时间
where在数据分组前进行过滤, having在数据分组后进行过滤;
where过滤行, having过滤分组
一般在使用group by子句时,也应该给出order by子句,这是保证数据正确排序的唯一方法!
执行一个给定的SQL操作,一般存在不止一种方法。有必要对不同的选择机制进行实验,以找出最适合具体情况的方法。
使用update和delete语句的习惯性做法:
复杂的表结构更改一般需要手动删除的过程:
一定注意,在改动之前备份表