• SQL 速查


    • 关系数据库,基于关系模型,使用关系(表)存储数据,同时定义了完整性约束。常见的关系数据库系统包括:Oracle、MySQL/MariaDB、SQL Server、PostgreSQL 等等。
    • SQL,结构化查询语言,访问和操作关系数据库的标准语言。SQL 具有声明性,是一种面向集合的编程语言。

    1、单表查询

    SELECT col1, col2 AS c2 -- 列别名 FROM t; -- 基本查询
    
    SELECT * FROM t; -- 查询所有字段
    
    SELECT col1, col2, … FROM t WHERE conditions; -- 过滤条件
    
    SELECT col1, col2, … FROM t ORDER BY col1 ASC, col2 DESC; -- 排序
    
    SELECT col1, col2, … FROM t ORDER BY col1 ASC, col2 DESC OFFSET m ROWS FETCH FIRST n ROWS ONLY; -- 限定数量 
    LIMIT n OFFSET m; -- 非标准实现
    
    SELECT col1, col2, agg_fun() -- 聚合函数 FROM t GROUP BY col1, col2 -- 分组汇总 
    HAVING conditions; -- 分组后过滤
    
    

    2、多表连接

    SELECT t1.col1, t2.col2, … FROM t1 INNER JOIN t2 ON conditions; -- 内连接 SELECT t1.col1, t2.col2, … FROM t1 LEFT JOIN t2 ON conditions; -- 左连接
    
    SELECT t1.col1, t2.col2, … FROM t1 RIGHT JOIN t2 ON conditions; -- 右连接
    
    SELECT t1.col1, t2.col2, … FROM t1 FULL JOIN t2 ON conditions; -- 全连接
    
    SELECT t1.col1, t2.col2, … FROM t1 CROSS JOIN t2 ON conditions;-- 交叉连接
    
    SELECT a.col1, b.col2, … FROM t1 a -- 表别名 JOIN t1 b ON conditions; -- 自连接
    
    

    3、集合运算

    SELECT col1, col2, … FROM t1 UNION [ALL]
    
    SELECT c1, c2, … FROM t2; -- 并集运算
    
    SELECT col1, col2, … FROM t1 INTERSECT SELECT c1, c2, … FROM t2; -- 交集运算
    
    SELECT col1, col2, … FROM t1 EXCEPT -- MINUS
    
    SELECT c1, c2, … FROM t2; -- 差集运算
    
    

    4、子查询

    SELECT col1, (subquery) AS c2 -- 标量子查询 FROM t;
    
    SELECT col1, col2, … -- 行子查询 FROM t WHERE (col1, col2) = (subquery);
    
    SELECT t1.col1, t2.c2, … FROM t1 JOIN (subquery) t2 -- 表子查询 ON conditions;
    
    SELECT t1.col1, t1.col2, … FROM t1 WHERE EXISTS ( -- 关联子查询 SELECT 1FROM t2 WHERE t2.c1 = t1.col1);
    
    

    5、数据操作

    INSERT INTO t(col1, col2, …) VALUES (val1, val2, …); -- 插入单条数据
    
    INSERT INTO t(col1, col2, …) SELECT …; -- 插入查询结果 
    
    UPDATE t SET col1 = val1, col2 = val2 WHERE conditions; -- 更新数据
    
    DELETE FROM t WHERE conditions; -- 删除数据 
    
    MEGRE INTO t1 USING t2 ON (condition) WHEN MATCHED THEN UPDATE SET col1 = val1, col2 = val2, ... WHEN NOT MATCHED THEN INSERT (col1, col2, ...) VALUES (val1, val2, ...); -- 合并数据
    
    

    6、数据定义

    CREATE TABLE t ( col1 INT NOT NULL PRIMARY KEY, col2 VARCHAR(50) NOT NULL, col3 DATE ); -- 创建表
    
    CREATE TABLE t(col1, col2, …) SELECT … ; -- 基于查询结果创建表
    
    ALTER TABLE t ADD col3 INT; -- 增加字段
    
    ALTER TABLE t RENAME COLUMN col1 TO c1;
    
    ALTER TABLE t DROP COLUMN col1;
    
    DROP TABLE t; -- 删除表
    
    TRUNCATE TABLE t; -- 删除表中所有数据
    
    CREATE VIEW v AS SELECT …; -- 创建视图
    
    DROP VIEW v; -- 删除视图
    
    CREATE [UNIQUE] INDEX idx ON t(col1, col2); -- 创建索引
    
    DROP INDEX idx; -- 删除索引
    

    扩展内容
    • 查询条件包括:=、!=、<>、<、<=、>、>=、BETWEEN、IN、EXISTS、LIKE、AND、OR、NOT、IS [NOT] NULL、ANY、ALL
    • 完整性约束包括:PRIMARY KEY、NOT NULL、FOREIGN KEY、CHECK、UNIQUE、DEFAULT。
    • 常见聚合函数:AVG、COUNT、SUM、MIN、MAX。

    我唯一的害怕,是你们已经不相信了——不相信规则能战胜潜规则,不相信学场有别于官场,不相信学术不等于权术,不相信风骨远胜于媚骨,在这个怀疑的时代,我们仍然要有信仰,信仰努力而不是运气,这个世界虽然不够纯洁,但我仍然相信它还不能埋没真正有才华的人
  • 相关阅读:
    周总结(第十一周)
    周总结(第十周)
    周总结(第九周)
    周总结(第八周)
    周总结(第七周)
    周总结(第六周)
    周总结(第5周)
    周总结(第四周)
    周记
    补周记
  • 原文地址:https://www.cnblogs.com/wyh0923/p/13944630.html
Copyright © 2020-2023  润新知