欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

mysql数据的基本操作(增删改查)及示例

程序员文章站 2022-03-29 20:47:15
一、添加数据格式:INSERT INTO 表名(字段) VALUES(值)1、同时给所有字段添加数据2、给指定字段添加数据3、不指定字段添加数据(不建议使用)所有的字段都必须给值,如果不给值需要使用null进行占位4、给某一字段批量添加数据二、修改数据格式: UPDATE 表名 SET 字段名=’value’WHERE 字段=值;注意:必须添加where条件,如果不加,会将表中所有的数据进行更新三、删除数据格式:DELETE FROM 表名 WHERE 字段=值;...

一、添加数据

格式:INSERT  INTO  表名(字段)  VALUES()

1、同时给所有字段添加数据

insert into users(id,name,age,gender,phnoe) values(1,'男神',18,'1','521');

2、给指定字段添加数据(如果表中有非空字段必须指定·)

insert into users(name) values('女神');

3、不指定字段添加数据(不建议使用)

所有的字段都必须给值,如果不给值需要使用null进行占位

insert into users values(null,'雷布斯',38,'1','158888888');

4、给某一字段批量添加数据

INSERT INTO 表名(字段) VALUES(),();

二、修改数据

格式: UPDATE 表名 SET  字段名=valueWHERE  字段=;
注意:必须添加where条件,如果不加,会将表中所有的数据进行更新
UPDATE users SET age=18 WHERE id=1;

三、删除数据

格式:DELETE  FROM  表名 WHERE  字段=;
注意:必须添加where条件,如果不加,会将表中所有的数据进行删除
DELETE FROM USERS WHERE name='男神'

四、查询数据

查询语句一般书写顺序:
SELECT * FROM user WHERE 条件 GROUP BY 字段 HAVING 条件 	ORDER BY 字段 LIMIT 3;


1、基本查询

SELECT 列名1,列名2 FROM 表名;

别名查询:
SELECT 列名1 as 别名1,列名2 as 别名2 FROM 表名;

查所有列:
SELECT * FROM 表名;

2、where条件查询

mysql数据的基本操作(增删改查)及示例

SELECT 字段名 FROM 表名 WHERE 条件;
查询年龄不等于18岁的所有用户信息:
SELECT * FROM USERS WHERE age!=18;

查询年龄不在1921岁之间的所有用户信息:
SELECT * FROM USERS WHERE age not between 19 and 21;

查询id是2357的所有用户信息:
SELECT * FROM USERS WHERE id in (2,3,5,7);

查询python和linux班的所有女生信息:
SELECT * FROM users WHERE (class='python' or class='linux') and gender='0';
SELECT * FROM users WHERE class in ('python','linux')  and gender='0';

3、模糊查询 LIKE

%表示任意位数的任意字符,_表示一位任意字符

查询名字以‘王’开头的用户信息:
SELECT * FROM USERS WHERE name LIKE '王%';

查询email中包含g的所有用户信息:
SELECT * FROM USERS WHERE email LIKE '%g%';

查询姓名是两个字的用户信息:
SELECT * FROM USERS WHERE name LIKE '__';

4、聚合查询

聚合函数一般需要配合分组去使用,不能使用在where条件中。
max()、min()、count()、avg()、sum()

统计当前表男生的数量:
SELECT COUNT(*) FROM user WHERE gender='1';

查询python班级最大年龄最小年龄以及平均:
SELECT MAX(age),MIN(age),AVG(age) FROM user WHERE class='python';

5、去除重复数据 DISTINCT

查询不重复的班级:
SELECT DISTINCT class FROM  user;

查询不重复的班级和性别
SELECT  DISTINCT class,gender FROM user;

6、分组

查询表中有哪些班级
SELECT  class  FROM  user  GROUP BY  class;

统计当前表中男生和女生的人数个多少人
SELECT  gender,count(*)  FROM  user  GROUP BY  gender; 

统计每个班,男生和女生各多少人
SELECT  class,gender,count(*)  FROM  user  GROUP BY  class,gender;

7、having子句查询

having是分组的子查询语句,只能写在GROUP BY后面

统计每个班级的人数,并查询班级人数大于2的班级:
SELECT class,count(*) from user GROUP BY class HAVING COUNT(*)>2;

2.	查询每个班级男生人数等于2的班级
SELECT class,gender,count(*) FROM user GROUP BY class,gender HAVING gender=1 and COUNT(*)>=2;

8、排序 ORDER BY

默认升序排序ASC,降序排序DESC

查询所有学员信息 并按照年龄进行降序排序:
SELECT * FROM user ORDER BY age DESC;

查询python班的男生信息,并按照年龄进行降序排序:
SELECT * FROM user WHERE class='python’ and gender=1 ORDER BY age DESC; 

按照班级进行升序,并按照年龄进行降序排序:
SELECT * FROM user ORDER BY class ASC,age DESC; 

9、分页 LIMIT

LIMIT m,n
m是跳过多少行,n是显示几行

SELECT * FROM `user` LIMIT 2;
SELECT * FROM `user` LIMIT 2,4;

mysql数据的基本操作(增删改查)及示例

10、嵌套查询

将一条sql查询语句的结果 嵌入到另一个查询语句中使用

  • 作为数据源使用
查询年龄大于18岁的男生:
SELECT * FROM (SELECT * FROM user WHERE gender =1) AS user1 WHERE user1.age >18;

mysql数据的基本操作(增删改查)及示例

  • 作为查询条件使用
查询年龄大于19岁的女生:
SELECT * FROM `user` WHERE id in (SELECT id FROM `user` WHERE age>19) AND gender=0;

mysql数据的基本操作(增删改查)及示例

11、多表查询

①.WHERE关联查询

格式:SELECT * FROM1,2 WHERE 关联条件;

②.连接查询

a.内连接 INNER JOIN
内连接(交集查询):查询结果和where查询的结果一样.
格式:SELECT * FROM1 INNER JOIN2 ON 关联条件 WHERE 条件

mysql数据的基本操作(增删改查)及示例

b.左连接 LEFT JOIN
格式:select * from 左表 left join 右表 on 关联条件;

以左表为主表,将左表中所有的数据查询出来向右表的数据进行匹配,如果右表中没有对应的数据,以null进行占位。
mysql数据的基本操作(增删改查)及示例

查询人数少于三个的班级:
select c.name,count(*) from class c left join stu s on c.id=s.cid group by c.name having count(*)<3;
b.右连接 RIGHT JOIN
格式:select * from 左表 right join 右表 on 关联条件;

以右表为主表,将右表中所有的数据查询出来,向左表中去匹配对应的数据,如果左表没有对应的数据以null占位
mysql数据的基本操作(增删改查)及示例

查询每个学生所在班级,按照年龄从大到小排列:
select stu.id,stu.name,stu.age,stu.phone,class.name from class right join stu on class.id=stu.cid order by stu.age desc;

本文地址:https://blog.csdn.net/Hzfeng666/article/details/106029301