• 数据库基本增删改查语法和多表联查的方式


    一、新增 
    语法:insert  into  表名(字段名)  values (值);
    例:insert into Strdents (姓名,性别,出生日期)  values  ('张三','男','2022-9-10');

    查询得到的数据个数、顺序、数据类型等,必须与插入的项保持一致。

    二、删除
    1、使用delete删除数据某些数据
    语法:DELETE FROM 表名 WHERE 条件;

    2、使用truncate table 删除整个表的数据
    语法:TRUNCATE  TABLE 表名;
    TRUNCATE是一个特殊的删除语句,又叫做清空语句;

    注:删除表的所有行,但表的结构、列、约束、索引等不会被删除;不能用于有外建约束引用的表。

    三、修改
    1、使用update更新修改数据 
    语法:UPDATE 表名  SET 字段名1 = 值1 , 字段名2 = 值2, ….   WHERE 条件;
    set后面可以紧随多个数据列的更新值(非数字要引号);where子句是可选的(非数字要引号),用来限制条件,如果不选则整个表的所有行都被更新。

    四、查询
    1、普通查询
        a.查询所有数据行和列
                     例:select * from student
            说明:查询student表中所有行和列。

        b.条件查询
                         例:select * from student where ssex = '男';
            说明:查询student表中所有性别为男的信息。
        c.在查询中使用as更改列名(起别名)
            例:select name as 姓名 from student where  gender='男'
            说明:查询student表中性别为男的所有行,显示name列,并将name列改名为(姓名)显示。

           d.查询是否为空
            例:select name from student  where email is null
            说明:查询student表中email为空的所有行,并显示name列;
            SQL语句中用is null或者is not null来判断是否为空。
           e.查询排序(关键字:order by , asc , desc)
            例:select * from student  where grade >= 60 order by desc
            说明:查询student表中成绩大于等于60的字段并按降序显示;默认为asc升序

    2.模糊查询
           a.使用like进行模糊查询
            例:select * from student  where name like '赵%';
            说明:查询显示student表中,name字段第一个字为赵的同学

           b.使用between在某个范围内进行查询
            例:select * from student where age between 18 and 20;
            说明:查询显示student表中年龄在18到20之间的同学
        
        c.使用in在列举值内进行查询(in后是多个的数据)
            例:select name from studnet where address in ('北京','上海','唐山');
            说明:查询studnet表中address值为北京或者上海或者唐山的记录,显示name字段

    3.分组查询
       a.使用group by进行分组查询
        例:select studentID as 学员编号, AVG(score) as 平均成绩   from sc  group by studentID

               b.使用having子句进行分组筛选
        例:select studentID as 学员编号, AVG(score) from sc group by studentID having count(score)>1
        说明显示分组后count(score)>1的行,由于where只能在没有分组时使用,分组后只能使用having来限制条件。

    五、多表联查
    a.左连接:
    语法:select * from 表1 left join 表2 on 表1.字段1=表2.字段1
    left join:获取左表所有记录,即使右表没有对应匹配的记录。
    b.右连接:
    语法:select * from 表1 right join 表2 on 表1.字段1=表2.字段1
    right join: 与left join 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。
    c.交集:
    语法:select * from 表1 inner join 表2 on 表1.字段1=表2.字段1
    组合两个表中的记录,只要在公共字段中有相符合的值,都会被取到,即在表中至少一个匹配时,就会返回记录,实际结果为两张或多张表的交集。
    d.并集:
    select * from 表1 union (select * from 表2)
    union合并的是结果集,不区分来自于哪一张表,所有可以合并多张表查询出来的数据,但是会过滤掉重复的数据。

  • 相关阅读:
    【老生谈算法】matlab实现图论程序算法大全——图论程序算法大全
    【元宇宙欧米说】web2创作者为什么以及如何进入web3?
    软考高项 重要知识点整理
    Qt入门(四)——连续播放图片(两种定时器的运用)
    MyBatis-Plus之DML编程控制
    软件设计模式白话文系列(四)工厂模式
    Windows网络系统架构
    基于Dijkstra、A*和动态规划的移动机器人路径规划(Matlab代码实现)
    SAP PI 配置SSL链接接口报错问题处理Peer certificate rejected by ChainVerifier
    一、shell编程之shell简介
  • 原文地址:https://blog.csdn.net/ylimhsjyn/article/details/126830969