• SQL:增、删、改、查 基本语句 Navicat建库(用法 + 例子)


    新建数据库

    在这里插入图片描述

    新建表

    主键:像人的身份证号一样,唯一代表。

    右键表->新建 输入内容

    在这里插入图片描述

    添加数据

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    增、删、改、查

    select 查找

    select 属性名 form 表名

    select name, sex, age from student
    
    • 1

    在这里插入图片描述

    * 查找所有信息

    select * from student
    
    • 1

    在这里插入图片描述

    where 筛选符合条件的

    select * from student where sex = '男'
    
    • 1

    在这里插入图片描述

    insert 添加

    insert into 表名(要添加的属性) value(添加的属性值)

    insert into student(name, sex, age, classid) value("小李李","男", 18, 2) 
    
    • 1

    在这里插入图片描述

    delete 删除

    delete form 表名 where 删除符合的条件

    delete from student where id = 3
    
    • 1

    表示为 删除id值为3的人信息。

    update 修改

    update 表名 set 要改的属性 where 筛选需要改的条件

    表示为将 id 为 4 的人的姓名改成哈哈,性别改成女,年龄改为 2。

    update student set name="哈哈", sex="女", age=2 where id = 4
    
    • 1

    在这里插入图片描述

    where 扩展

    可以发现删、改、查、都需要查找目标用到where

    = < > <= >= != <> 比较运算符

    和上面 = 用法相似
    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    and or 逻辑运算符

    select * from student where sex="男" and math > 60 or chinese > 60 and sex="女"
    
    • 1

    在这里插入图片描述

    between…and… 介于…和…之间

    相当于 >= <=

    在这里插入图片描述

    in 包含

    方便批量操作

    在这里插入图片描述

    like 模糊查询

    需要配合占位符使用,不加占位符与等号没有区别

    _代表一位字符
    %代表任意位字符(0位也算)

    在这里插入图片描述

    is null 为空的

    在这里插入图片描述

    查询扩展

    order by 排序

    asc 升序 desc 降序

    select * from student order by age asc
    
    • 1

    在这里插入图片描述

    limit start count / count offset start 限制查询

    select * from student limit 2, 3
    
    • 1

    聚合查询

    sum() avg() count() max() min() 配合分组使用

    group by 分组查询

    求男女年龄平均值

    select sex, sum(age)/count(age), avg(age) from student group by sex
    
    • 1

    在这里插入图片描述

    having 分组后筛选

    求男女数学平均分后,只查看男生的。

    select sex, avg(math) from student group by sex having sex = "男"
    
    • 1

    在这里插入图片描述

    综合练习

    含义:挑选男生,以个人(id)分组,平均分大于60的,以总分降序,只显示前三人,的名字、性别、总分、平均分。
    注意书写顺序

    select name, sex, sum(math + english+ chinese) 总分, sum(math + english+ chinese) / 3 平均分 from student where sex = "男" group by id having 平均分 > 60 order by 总分 desc limit 0, 3;
    
    • 1

    在这里插入图片描述

    多表

    下面例子以如下表操作。

    student:

    idnamesexageaddressmathchineseenglishclass
    2李四18保定9087771
    3王浩10廊坊6677221
    4哈哈2北京7876551
    5杜甫19上海6772882
    6花花46天津4534982
    7丽丽7河南5687782
    8小明37河北9878672
    9小李25邯郸6746563
    10小花28石家庄2365453
    11小王137845343
    12李华209956233
    13李玉与16457865

    class:

    cidclass_num
    12301
    22302
    32303
    42304

    where 多表查询

    如果我们不用 where 而是直接合表,会显示笛卡尔积的结果,显然不是我们需要的。

    样例截图未全截,明白意思即可。

    select * from class, student 
    
    • 1

    在这里插入图片描述

    我们需要的是班级编号与学生班级编号一一对应的和表结果,可以在where后面加上需要的判断条件来显示。

    select * from class, student where class.cid = student.class
    
    • 1

    在这里插入图片描述

    join on 内、外连接

    [inner] join 内连接 与 where 用法相似

    select * from class join student on class.cid = student.class
    
    • 1

    在这里插入图片描述

    left [outer] join 左外连接

    select * from student left join class on class.cid = student.class
    
    • 1

    可以发现student中班级为空的也展现出来了。

    在这里插入图片描述

    right [outer] join 右外连接

    与左连接相同,左右的区分,就是看书写的顺序而已。
    菜鸟教程里的图解,还是很容易理解之间的区别的。

    在这里插入图片描述

    union 属性相同 合表

    将男女筛选出来再合起来。

    select * from student where sex="男" 
    union 
    select * from student where sex="女"
    
    • 1
    • 2
    • 3

    在这里插入图片描述

  • 相关阅读:
    Elasticsearch与Kafka集成:实现数据流处理
    java计算机毕业设计客服管理系统源码+mysql数据库+系统+lw文档+部署
    Java基础—重新抛出异常
    【LeetCode-简单】509. 斐波那契数(详解)
    VMware vcenter/ESXI系列漏洞总结
    【Vue五分钟】五分钟了解--Vue过渡
    深度学习之基于YoloV5抽烟检测系统
    1. Vue 3.0介绍
    DollarTree(美元树)验厂需要注意哪些方面?
    阿里云服务器e系列性价比首选?性能如何?
  • 原文地址:https://blog.csdn.net/Cosmoshhhyyy/article/details/133383339