• 数据库查询语法


    基础查询

    SELECTDISTINCT:去除重复记录)
    	字段列表
    FROM
    	表名列表
    WHERE
    	条件列表
    GROUP BY
    	分组字段
    HAVING
    	分组后条件
    ORDER BY
    	排序字段(ASC:默认升序,DESC降序)/*如果有多个排序条件,只有当前面的条件值一样时才会根据之后的条件进行排序*/
    LIMIT
    	分页限定
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    条件查询

    符号功能
    >大于
    <小于
    <=小于等于
    >=大于等于
    =等于
    <>或!=不等于
    BETWEEN…AND…在某个范围内
    IN(…)多选一
    LIKE 占位符模糊查询”_“单个任意字符”%“多个任意字符
    IS NULL是NULL
    IS NOT NULL非NULL
    AND 或 &&
    OR或双竖线或者
    NOT或!

    分组查询 GROUP BY

    聚合函数

    概念:将一列数据作为一个整体,进行纵向计算,(求平均值)

    函数名功能
    count(列名)计数(一般选用不为null的)
    max(列名)最大值
    min(列名)最小值
    sum(列名)求和
    avg(列名)均值

    null值不参与所有聚合函数运算

    SELECT 聚合函数名(列名) FROM TABE_NAME;
    
    • 1

    分组查询语法

    SELECT ... FROM TABLE_NAME [WHERE 条件] GROUP BY 分组字段名[HAVING 分组后过滤条件]
    
    • 1

    eg:查询男女各自平均分

    SELECT sex ,avg(math) from stu group by sex;
    
    • 1

    eg:查询男女各自平均分,及人数,分数低于70不参与计算,分组之后人数大于2人

    select sex,count(*),avg(math) from stu where math >70 group by sex having count(*)>20;
    
    • 1

    where是在分组前进行限定,不满足条件不参与分组
    having实在分组之后过滤结果
    where无法对聚合函数进行判断,而having可以
    执行顺序:where》聚合函数》having

    分页查询 LIMIT

    eg:每页显示n条数据查询第m页

    select * from table_name limit  (m-1)*n,n;//起始索引(当前页码-1)* 每页数据条数
    
    • 1

    约束

    • 约束作用于列上,用于限制加入表的数据
    • 约束是为了保证数据的正确性,有效性,完整性
    关键字描述
    NOT NULL非空 :列中数据不为null
    UNIQUE唯一:类中数据各有不同
    PRIMARY KEY主键 :一行数据的唯一标识(默认非空却唯一)
    CHECK检查:保证列中数据满足某条件
    DEFAULT默认:保存数据是,未指定值则采用默认值
    FOREIGN KEY外键:建立两表之间的数据链接,保证数据的一致性和完整性

    补充:列数据自动增长:auto_increment;
    mysql不支持检查约束

    外键约束

    创建外键

    建表时添加约束

    creat table xxx(
    	... ...,
    	[CONSTRAINT] 外键名 FOREIGN KEY(外键列名) REFERENCES 主表名(主表列名)
    );
    
    • 1
    • 2
    • 3
    • 4

    建表后

    ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN KEY(外键字段) REFERENCES 主表名(主表列名)
    
    • 1

    删除外键

    ALTER TABLE 表名 DROP FOREIGN KEY 外键名
    
    • 1

    主表与从表:可以理解为主表为基础表,提供主键作为从表的外键

    数据库设计

    数据库设计概念:

    • 根据业务系统具体需求,结合所选DBMS,为业务系统构造出最有数据存储模型
    • 建立数据量中的表结构以及表与表之间的关联关系的过程

    实施步骤:

    1. 需求分析:(数据是什么?有什么属性?数据与属性的特点?)
    2. 逻辑分析:(ER图对数据库进行逻辑建模,不需要考虑DBMS)
    3. 物理分析:(根据数据库自身特点把逻辑设计转换为物理设计——建库建表)
    4. 维护设计:(1、对新需求进行建表2、表优化)

    多表查询

    连接查询

    内连接

    查询A,B交集数据

     #隐式内连接
     SELECT 字段列表 FROM1,表2... WHERE 条件
    #显式内连接
     SELECT 字段列表 FROM1[INNER] JOIN2 ON 条件
    
    • 1
    • 2
    • 3
    • 4

    外连接

    左外连接

    查询左表所有数据和交集部分数据

    SELECT 字段列表 FROM1 LEFT [OUTER] JOIN2 ON 条件;
    
    • 1

    右外连接

    查询右表所有数据和交集部分数据

    SELECT 字段列表 FROM1 RIGHT [OUTER] JOIN2 ON 条件
    
    • 1

    子查询

    查询中嵌套查询

    SELECT 字段列表 FROM * WHERE 字段名>(子查询);#单行单列
    SELECT 字段列表 FROM * WHERE 字段名 in (子查询);#多行单列
    SELECT 字段列表 FROM(子查询) WHERE 条件;#多行多列,虚拟表
    
    • 1
    • 2
    • 3

    事务

    JDBC及事务

  • 相关阅读:
    Java版分布式微服务云开发架构 Spring Cloud+Spring Boot+Mybatis 电子招标采购系统功能清单
    CRM项目 - 心得
    【LeetCode:2736. 最大和查询 | 贪心 + 二分 + 单调栈】
    React native 近期Android 无法编译的问题解决
    vue3后台管理系统之路由守卫
    备赛蓝桥杯-算法-动态规划
    Django教程
    我在滴滴做开源
    数据分析手册-R语言
    芯动联科冲刺科创板:年营收1.7亿 北方电子院与中城创投是股东
  • 原文地址:https://blog.csdn.net/ou_yang_mu_ling/article/details/126365471