MySQL学习笔记(二)

本文详细介绍了SQL的基本操作,包括插入、更新、删除、查找记录的方法,以及子查询的应用、多表更新、不同类型的连接方式等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值