MySQL学习笔记(二)
2015-11-26 20:52
549 查看
1.插入记录
2.
更新记录(单表更新)
3.删除记录(单表删除)
4.查找记录
(1)查询表达式select_expr
每个表达式表示想要的一列,必须要有一个。
多个列之间以英文逗号分隔。
星号
查询表达式可以使用[AS] alias_name为其赋予别名。
别名可用于GROUP BY,ORDER BY或HAVING语句。
(2)条件表达式WHERE
对记录进行过滤,如果没有指定WHERE子句,则显示所有记录。在WHERE表达式中,可以使用MySQL支持的函数或运算符。
(3)查询结果分组GROUP BY
(4)分组条件HAVING
(5)对结果进行排序ORDER BY
(6)限制查询结果返回的数量
5.子查询
子查询(Subquery)是指出现在其他SQL语句内的SELECT语句。
子查询指嵌套在查询内部,且必须始终出现在圆括号内。
子查询可以包含多个关键字或条件,如DISTINCT、GROUP BY、ORDER BY、LIMIT等。
子查询的外层可以是:SELECT,INSERT,UPDATE,SET或DO。
子查询可以返回标量、一行、一列或子查询。
(1)使用比较运算符的子查询
=、>、<、>=、<=、<>、!=、<=>
语法结构
(2)使用[NOT]IN的子查询
语法结构
=ANY运算符与IN等效
!=ALL或<>ALL与NOT IN等效
(3)使用[NOT] EXISTS子查询
如果子查询返回任何行,EXISTS将返回TRUE;否则为FALSE。
(4)将查询结果写入数据表
6.多表更新
7.连接类型
INNER JOIN,内连接 在MySQL中,JOIN,CROSS JOIN和INNER JOIN是等价的
LEFT [OUTER] JOIN,左外连接
RIGHT [OUTER] JOIN,右外连接
语法结构
8.数据表参照
数据表可以使用tb_name [AS] alias赋予别名
9.连接条件
使用ON关键字来设定连接条件,也可以使用WHERE来代替
通常使用ON关键字来设定连接条件,使用WHERE关键字进行结果集记录的过滤。
10.CREATE …SELECT
创建数据表同时将查询结果写入到数据表
11.自身连接
同一个数据表对其自身进行连接。
12.多表删除
方法一:INSERT [INTO] tb_name[(col_name,...)] {VALUES | VALUE}({expr | DEFAULT},...),(...),... 方法二:INSERT [INTO] tb_name SET col_name={expr | DEFAULT},... 说明:与第一种方法的区别在于,此方法可以使用子查询(SunQuery),且只能插入一条记录 方法三:INSERT [INTO] tb_name[(col_name,...)] SELECT ...
2.
更新记录(单表更新)
UPDATE [LOW_PRIORITY] [IGNORE] table_reference SET col_name1={expr | DEFAULT}[,col_name2={expr | DEFAULT}]...[WHERE where_condition]
3.删除记录(单表删除)
DELETE FROM tb_name [WHERE where_condition]
4.查找记录
SELECT select_expr [,select_expr ...] [ FROM table_references [WHERE where_condition] [GROUP BY {col_name | position} [ASC | DESC],...] [HAVING where_condition] [ORDER BY {col_name | expr | positon} [ASC | DESC],...] [LIMIT {[offset,] row_count | row_count OFFSET offset}] ]
(1)查询表达式select_expr
每个表达式表示想要的一列,必须要有一个。
多个列之间以英文逗号分隔。
星号
(*)表示所有列。tb_name.*可以表示命名表的所有列。
查询表达式可以使用[AS] alias_name为其赋予别名。
别名可用于GROUP BY,ORDER BY或HAVING语句。
(2)条件表达式WHERE
对记录进行过滤,如果没有指定WHERE子句,则显示所有记录。在WHERE表达式中,可以使用MySQL支持的函数或运算符。
(3)查询结果分组GROUP BY
[GROUP BY {col_name | position} [ASC | DESC],...]
(4)分组条件HAVING
[HAVING where_condition]
(5)对结果进行排序ORDER BY
[ORDER BY {col_name | expr | positon} [ASC | DESC],...]
(6)限制查询结果返回的数量
[LIMIT {[offset,] row_count | row_count OFFSET offset}]
5.子查询
子查询(Subquery)是指出现在其他SQL语句内的SELECT语句。
子查询指嵌套在查询内部,且必须始终出现在圆括号内。
子查询可以包含多个关键字或条件,如DISTINCT、GROUP BY、ORDER BY、LIMIT等。
子查询的外层可以是:SELECT,INSERT,UPDATE,SET或DO。
子查询可以返回标量、一行、一列或子查询。
(1)使用比较运算符的子查询
=、>、<、>=、<=、<>、!=、<=>
语法结构
operand comparison_operator subquery 用ANY,SOME或ALL修饰比较运算符 operand comparison_operator ANY (subquery) operand comparison_operator SOME (subquery) operand comparison_operator ALL (subquery)
(2)使用[NOT]IN的子查询
语法结构
operand comparison_operator [NOT]IN (subquery)
=ANY运算符与IN等效
!=ALL或<>ALL与NOT IN等效
(3)使用[NOT] EXISTS子查询
如果子查询返回任何行,EXISTS将返回TRUE;否则为FALSE。
(4)将查询结果写入数据表
INSERT [INTO] tb_name[(col_name,...)] SELECT ...
6.多表更新
UPDATE table_references SET col_name1={expr1 | DEFAULT} [,col_name2={expr2 | DEFAULT}] [WHERE where_condition]
7.连接类型
INNER JOIN,内连接 在MySQL中,JOIN,CROSS JOIN和INNER JOIN是等价的
LEFT [OUTER] JOIN,左外连接
RIGHT [OUTER] JOIN,右外连接
语法结构
table_reference {[INNER|CROSS] JOIN | {LEFT|RIGHT} [OUTER] JOIN} table_reference ON condition_expr
8.数据表参照
table_reference tb_name [[AS] alias]|table_subquery [AS] alias
数据表可以使用tb_name [AS] alias赋予别名
9.连接条件
使用ON关键字来设定连接条件,也可以使用WHERE来代替
通常使用ON关键字来设定连接条件,使用WHERE关键字进行结果集记录的过滤。
10.CREATE …SELECT
创建数据表同时将查询结果写入到数据表
CREATE TABLE [IF NOT EXISTS] tb_name [(create_definition,...)] select_statement
11.自身连接
同一个数据表对其自身进行连接。
例:tdb_goods>SELECT s.type_id,s.type_name,p.type_name FROM tdb_goods_types AS -> s LEFT JOIN tdb_goods_types AS p ON s.parent_id=p.type_id;
12.多表删除
DELETE tb_name[.*][,tb_name[.*]]... FROM table_references [WHERE where_condition]
相关文章推荐
- MySQL中的integer 数据类型
- MySQL存储过程
- mysql中int、bigint、smallint 和 tinyint的区别与长度
- mysql load data 导出、导入 csv
- source命令执行SQL脚本文件
- MySQL创建用户及权限控制
- MySQL管理数据表
- linux下mysql添加用户
- mysql procedure
- mysql触发器
- MySQL 备份和恢复策略
- mac下安装mysql(转载)
- mysql 修改编码 Linux/Mac/Unix/通用(杜绝修改后无法启动的情况!)
- MySQL数据的导出、导入(mysql内部命令:mysqldump、mysql)
- mysql数据行转列
- Linux下修改MySQL编码的方法
- MySQL Server 日志
- MySQL 安全事宜
- MySQL 备份与恢复