您的位置:首页 > 数据库 > MySQL

MySQL学习笔记(二)

2015-11-26 20:52 549 查看
1.插入记录

方法一: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