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