CRUD
Data Manipulate Language
FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY
Group By 在 3-2
HAVING 在 3-3
ORDER BY 在 3-4
语法
SELECT <列名1> AS id,
<列名2> AS "名称"
FROM <表名>
WHERE <条件表达式>
GROUP BY <列名1>,<列名2>
HAVING <条件表达式>
ORDER BY <列名1>,<列名2> DESCSELECT 后 使用 , 分割
AS 别名,中文使用 " 包裹
GROUP BY 分组
DISTINCT 去除重复。(非常鸡肋)
NULL 被视为单独一类类,''也是。
多列时候,数据完全一致,才会被认为重复。
ORDER BY
- ASC 升序
- DESC 降序
- 可以使用聚合函数,即根据之前没有的数据进行排序
SELECT 可以单独使用,如
INSERT
INSERT INTO <表名> (列1, 列2, 列3, ……) VALUES (值1, 值2, 值3, ……);()内的叫做清单
如果在创建表时,设置了 DEFAULT 就可以不用填入
INSERT...SELECT
sql
INSERT INTO UserCopy (id,name)
SELECT id,name
FROM Usermulti row INSERT
不建议大量使用,不易查错。
sql
INSERT INTO User (id,name)
VALUES
(1,'张三'),
(2,'李四'),
(3,'王五');DELETE
DELETE FROM <表名>
WHERE <条件>;没有 WHERE 会删除整个表中的数据!
UPDATE
UPDATE <表名>
SET <列名> = <表达式>
WHERE <条件>;没有 WHERE 会修改整个表中的数据!
部分 DMS 还支持:
sql
UPDATE User
SET name = 'RX2060',
price = '850',
date = '2023-10-28'
WHERE
id = 123;TRANSACTION
ACID
- 原子性 Atomicity
- 一致性 Consistency
- 隔离性 Isolation
- 持久性 Durability
原子性:要么全部执行,要么全部不执行 一致性:数据 需要满足表的约束 隔离性:数据互不干扰 持久性:数据不会丢失
sql
-- MySQL
START TRANSACTION;
-- PostgreSQL SQLServer
BEGIN TRANSACTION;
-- 提交
COMMIT;
-- 回滚
ROLLBACK;TRUNCATE
一个非通用的 删除表中所有数据的指令,优势是快。