一、新增 
语法: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合并的是结果集,不区分来自于哪一张表,所有可以合并多张表查询出来的数据,但是会过滤掉重复的数据。