码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • MySQl_2


    目录

    函数

    一.字符串函数 

    二.数值函数 

     三.日期函数 

    四.流程控制函数

     约束

    多表查询

    多表关系

    一.内连接

    二.外连接

     三.自连接

    四.联合查询

     五.子查询

            标量子查询

             列子查询

             行子查询

            表子查询


    函数

    一.字符串函数 

    二.数值函数 

    SELECT LPAD(FLOOR(RAND()*1000000),6,'0');//生成6位随机数

     三.日期函数 

    四.流程控制函数

     约束

    1.概念:作用于字段上的规则,用于限制存储在表中的数据

    2.使用:在create创建表或者alter修改表时,添加约束。 

    AUTO_INCREMENT 自动递增

    3.外键

    在创建表时,添加外键

    create table 表名(

            字段名 数据类型

            ...

            [constraint] [外键名称] foreign key (外键字段名) references  主表(主表列名)

    ); 

    为表中已有字段,添加外键

    alter table 表名 add constaint 外键名称 foreign key (外键字段名) references 主表(主表列名); 

     删除外键

    alter table 表名 drop foreign key 外键名称;

    外键删除/更新行为

            在添加外键时,后面跟上  on update 行为 on delete 行为 ;

    cascade 级联

    多表查询

    多表关系

            1.多对一(一对多)  e.g. 员工与部门

    实现:在多的一方建立外键,指向一的一方的主键。

            2.多对多        eg.学生选修课程

    实现:建立中间表,至少包含两个外键,分别关联两方主键

            3.一对一

            用于单表拆分

    实现:在其中一方添加外键,另一方添加主键,并且设置外键unique

    多表查询时,应添加过滤条件,消除无效的笛卡尔积

    一.内连接

            相当于查询俩表或多表的交集部分数据

     隐式内连接

    select student.name,sc.courseid from student ,student_course sc where student.id=sc.studentid;

     显式内连接

    select student.name,sc.courseid from student [inner]jion student_course sc on student.id=sc.studentid;

    可读性和可维护性:显式内连接在语法上更加明确和直观,易于理解和维护。它可以清楚地表达出连接操作和连接条件。相比之下,隐式内连接的语法相对简洁,但在复杂的查询中可能会较难理解和调试。

    二者执行内连接的操作是相同的,只是语法形式不同

    二.外连接

    左外连接和内连接都是基于连接条件将两个表中符合条件的行进行匹配。但是左外连接会返回左表中所有的行,不管是否在右表中有与之匹配的行;而内连接只返回两个表中匹配的行。

    右表中没有与之匹配的行,对应的列值将为NULL。

     三.自连接

            表必须起别名

    按需求不同,选择内连接/外连接进行自连接查询

    应用场景:员工包括普通员工和领导,当查所属领导时,可使用。

    四.联合查询

     五.子查询

            标量子查询

             列子查询

    子查询 返回  一列多行

      依据学生id,查询该名学生的选课情况。

    select id,name,teacherId,teacherName,description from course where id in(select courseid from student_course where studentid=?)
             行子查询

    子查询 返回 一行多列

    select * from student where (age,sex,class) =(select age,sex,class from student where name="Lee")
            表子查询

    子查询 返回 多行多列 

    操作符主要为in 常放于from后,作为一张临时表,再和其他表进行连查操作

    这张临时表应起别名

    *参考视频 bilibili黑马程序员*

  • 相关阅读:
    前端监控系列4 | SDK 体积与性能优化实践
    《016.SpringBoot+vue校园社团管理系统》【有文档】
    java设计模式学习笔记总结
    049:vue+openlayers鼠标pointermove显示城市名片(示例代码)
    详解MySQL隔离级别
    java数据结构与算法刷题-----LeetCode27:移除元素
    5. Spring Boot配置绑定
    ORM框架SQLAlchemy
    QT连接MySQL数据库,手动编译动态链接库,解决QMYSQL driver not loaded错误
    [含毕业设计论文+PPT+源码等]ssm校友录网站+Java后台管理系统|前后分离VUE
  • 原文地址:https://blog.csdn.net/weixin_73118927/article/details/130113832
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号