mysql增删改查操作
一.增:insert
1.一次插入一条数据:insert into 表名 values (值1,值2…)
2.一次插入多条:insert into 表名 values (值1,值2…),(值1,值2…)
3.通过查询来插入数据:insert into 表1 select * from 表2 where 条件(把表2的符合条件的数据 插入到表1中)
例:INSERT INTO stuinfo2 SELECT * FROM stuinfo WHERE stusex=’男
二.删(删除有三种方法可以删除)
delete:
只删除数据,但是没有删除表结构,标识列不会清零
语法:delete from 表名
只删除一条数据:
delete from 表名 where 条件
truncate:
只删除数据,但是没有删除表结构,标识列会清零
语法:truncate 表名
drop:
直接删除表结构
语法:drop table 表名
只删除一条数据:
delete from 表名 where 条件
三.改:update
语法:update 表名 set 要修改的列=修改的值 where 条件
四. 查(重点)
一切的根源:
select * from 表名 查询整表
select 列名 from 表名 查询部分
关键字 :where + 条件
逻辑词的使用:and or not
and :并且
or: 或者
not: 非
案例:查询年龄在18-22之间的学生
in
模糊查询
案例:学号最后一位是2或者3的学生
查询姓李的同学
like 关键字:
SELECT * FROM 表名 WHERE 字段名 LIKE “李%”;
%的用法: 前后都有,包含即可
在前面,以什么结尾
在后面,以什么开头
占位符的使用
LIKE “”;
下划线的长度决定了字符的长度
聚合函数
max:最大值
min:最小值
sum:求和
avg:平均数
count:统计/计数
排序
排序的语法【order by】
SELECT * FROM 表名 ORDER BY 列名 ASC
SELECT * FROM 表名 ORDER BY 列名 DESC
分页 :limit
limit 起,截取几条
语法:LIMIT 2,3
分组: group by
案例:给男女分组后,统计个数
having :分组后在过滤
总结顺序:
S……F…..W…..G…..H……O
去重复 :DISTINCT
如何:SELECT DISTINCT(z_money) FROM zhangwu
合并查询结果集
前提:两张表结构【字段个数、类型】必须一致
合并过滤重复结果集
select 字段列表1 from 表1
Union
Select 字段列表2 from 表2
合并不过滤重复结果集
select 字段列表1 from 表1
Union All
Select 字段列表2 from 表2
常见的多表查询的方式:
交叉查询【不推荐】
语法:
select * from 表1,表2
现象:笛卡尔积
内连接查询【重点】
解释:
查询的结果集——两表有关联性的数据
语法:select * from 表1 as 别名1 inner join 表2 as 别名2 on 别名1.公共列=别名2.公共列;
select * from 表1,表2 where 表1.公共列=表2.公共列;
外连接查询
左外连接
查询的结果集——两表有关联性的数据、左边表的全部
select * from 表1 as 别名1 left join 表2 as 别名2 on 别名1.公共列=别名2.公共列;
右外连接
select * from 表1 as 别名1 right join 表2 as 别名2 on 别名1.公共列=别名2.公共列;