增(写操作)
插入多条记录 INSERT [INTO] tb_name[col_name,......] VALUES(value1,value2)
可嵌入子查询的单条记录插入 INSERT [INTO] tb_name SET col_name={EXPR|DEFAULT},...;<br>eg. INSET tb1(col_name) SELECT col_name(same) FROM tb2 WHERE expr
将查询结果插入记录 INSERT [INTO] tb_name[(col_name,...)SELECT....
改(写操作)
单表更新 UPDATE [LOW_PRIORITY][IGNORE] SET col_name1={EXPR1|DEFAULT},col_name2={EXPR2|DEFAULT}...[WHERE EXPR]
多表更新 UPDATE table_references SET col_name={expr1|DEFAULT}[,col_name2={expr2|DEFAULT}] WHERE where_condition
查(读取操作)
查看
查看库存在:SHOW DATABASES [Like 'pattern|WHERE expr]
查看当前打开的数据库:SELECT DATABASES( ) 修改提示符可显示当前数据库
查看表存在 SHOW TABLES [FROM db_name] [Like 'pattern|WHERE expr]
查看列存在(查看数据表结构)SHOW COLUMNS FROM tb_name;
查看记录存在:select * from table1 where 范围
查询表达式<br>SELECT select_expr1 [,select_expr2...]<br> [<br> FROM TABLE reference<br> [WHERE where_condition]<br> [GROUP BY {col_name|position} [ASC|DESC],...] <br> [HAVING where_conditon]<br> [ORDER BY {col_name|expr|position},...]<br> [LIMIT {[offset,] row_count|row_count OFFSET offset} <br> ][\G;]
语句解释<br> SELECT 要返回的列或表达式<br> FROM 从中检索数据的表<br> WHERE 行级过滤<br> GROUNP BY 分组说明<br> HAVING 组级过滤<br> ORDER BY 输出排序顺序<br> LIMIT 要检索的行数<br>
对查询题目结构化思考
执行阶段逻辑
条件表达式WHERE<br>SELECT * FROM tb_name WHERE expr;<br>select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料!
查询结果分组 GROUP BY (结合聚合函数进行分组计算)<br><span>SELECT column_name, aggregate_function(column_name) </span><span>FROM table_name</span><br><span>WHERE column_name operator value </span><span>GROUP BY column_name;</span><br>
指定分组条件HAVING(指定则只对部分记录分组)<br>[HAVING where_conditon] 要使用此条件要么出现聚合函数,要么条件中字段为查询语句中已有字段<br>
对查询结果排序ORDER BY<br>[ORDER BY {col_name|expr|position},...]
限制查询结果数量LIMIT<br>[LIMIT {[offset,] row_count|row_count OFFSET offset} <br>
合并结果集 UNION [ALL]<br><span style="font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 1em;">SELECT expression1</span><span style="font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 1em;">,</span><span style="font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 1em;"> expression2</span><span style="font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 1em;">,</span><span style="font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 1em;"> </span><span style="font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 1em;">...</span><span style="font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 1em;"> expression_n </span><span style="font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 1em;">FROM tables </span><span style="font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 1em;">[</span><span style="font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 1em;">WHERE conditions</span><span style="font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 1em;">]<br></span><span style="font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 1em;">UNION </span><span style="font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 1em;">[</span><span style="font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 1em;">ALL </span><span style="font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 1em;">|</span><span style="font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 1em;"> DISTINCT</span><span style="font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 1em;">] <br></span><span style="font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 1em;">SELECT expression1</span><span style="font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 1em;">,</span><span style="font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 1em;"> expression2</span><span style="font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 1em;">,</span><span style="font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 1em;"> </span><span style="font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 1em;">...</span><span style="font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 1em;"> expression_n FROM tables </span><span style="font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 1em;">[</span><span style="font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 1em;">WHERE conditions</span><span style="font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 1em;">];</span>
子查询
<div>子查询是指在另一个查询语句中的SELECT子句。</div><div> SELECT * FROM t1 WHERE column1 = (SELECT column1 FROM t2);</div><div> 其中,SELECT * FROM t1 ...称为Outer Query[外查询](或者Outer Statement),外查询可以是增删改查,</div><div> SELECT column1 FROM t2 称为Sub Query[子查询]。</div>
使用比较运算符的子查询 = > < !=
子查询返回多个结果时候用ANY SOME ALL返回一个值
使用[NOT]IN的子查询 =ANY等效于IN,!=ALL|<>ALL等效于 NOT IN
使用[NOT]EXISTS的子查询 子查询返回任何行 EXISTS将返回TRUE,否则返回FALSE
排序
前10条记录 : select top 10 * form table1 where 范围
选择在每一组b值相同的数据中对应的a最大的记录的所有信息(类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.)
select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b)
随机选择记录:select newid()