玖叶教程网

前端编程开发入门

Mysql数据增删查改(mysql增删改查实例)

1、管理数据

-- *************** 一、 数据增删修改操作 ********************---------

-- 1.1 查看表的数据

SELECT * FROM student;


-- 1.2 插入数据

-- 插入所有列(所有列的值都要按顺序依次插入)

INSERT INTO student VALUES(1,'eric',20,'广州人','男');

INSERT INTO student VALUES(2,'rose',25,'佛山人','女');


-- 插入部分列(列的数据和值的顺序和数量一定保持一致!)

INSERT INTO student(id,NAME,age,remark2) VALUES(3,'jacky',27,'佛山人');


-- 1.3 修改数据

-- 修改所有(用的很少)

UPDATE student SET gender='男';

-- 修改某个某些条件的数据(用的较多)

UPDATE student SET gender='女' WHERE id=2;


-- 修改多个列(SET 列名=值,列名=值...)

UPDATE student SET age=28,remark2='韶关人' WHERE id=2;


-- 1.4 删除数据

-- 删除表的所有数据(用的较少)

-- 注意:

-- 1)只能删除表中的数据,不能影响表中的自增长约束

-- 2)使用delete删除的数据,通过事务可以回滚。

-- 3)后面带条件

DELETE FROM student;


-- 删除部分

DELETE FROM student WHERE id=3;


-- 删除所有数据

-- 注意:

-- 1)既能删除表的数据,也能够把表的子增长约束置为0.

-- 2)使用truncate删除的数据,不能回滚!

-- 3)后面不能带条件

TRUNCATE TABLE student;

2、查询数据(重点)

2.1 查询所有列

-- 2.1 查询所有列

SELECT * FROM student;

2.2 查询指定列

-- 2.2 查询指定列(多个列之间以逗号分隔)

SELECT NAME,gender FROM student;

2.3 查询时指定别名

-- 2.3 查询时给列指定别名(AS)

SELECT NAME AS '姓名',gender AS '性别' FROM student;

-- AS可以省略

SELECT NAME '姓名',gender '性别' FROM student;

2.4 合并列查询

-- 2.5 合并列查询

-- 添加servet,jsp成绩列

ALTER TABLE student ADD servlet INT,ADD jsp INT;

SELECT * FROM student;

UPDATE student SET servlet=86,jsp=75 WHERE id=1;

UPDATE student SET servlet=90,jsp=65 WHERE id=2;

UPDATE student SET servlet=78,jsp=50 WHERE id=3;

UPDATE student SET servlet=85,jsp=80 WHERE id=4;


-- 需求: 查询每个学生的servlet和jsp的总成绩

-- 注意: 必须是数值类型

SELECT NAME '姓名',(servlet+jsp) '总成绩' FROM student;


-- 注意,和数值以外合并没有意义

SELECT NAME '姓名',(gender+jsp) FROM student;

2.5 查询时添加常量列

-- 2.4 查询时添加常量列

-- 需要: 在查询学生表时都带上一个班级列,内容为"java就业班"

SELECT NAME '姓名',gender '性别',age '年龄','java就业班' AS '班级' FROM student;

2.6 查询去除重复数据

-- 2.6 查询去除重复数据

-- 需求: 统计学生都来自于哪里

SELECT DISTINCT remark2 FROM student;

-- 这种语法也可以

SELECT DISTINCT(remark2) FROM student;

2.7 条件查询

-- 2.7 条件查询(where)

SELECT * FROM student;

-- 1) 逻辑条件: and or

-- 需求: 查询id值为3,且性别为男的学生(交集:两个条件同时满足)

SELECT * FROM student WHERE id=3 AND gender='男';


-- 需求:查询id为3,或性别为男的学生(并集: 两个条件其中一个满足)

SELECT * FROM student WHERE id=3 OR gender='男';


-- 2)比较条件: > < >= <= = between and

-- 需求: 查询servlet分数大于80分的学生

SELECT * FROM student WHERE servlet>80;

-- 需求:查询jsp分数小于或等于80分的学生

SELECT * FROM student WHERE jsp<=80;

SELECT * FROM student WHERE jsp<80 OR jsp=80;

-- 需求: 查询servlet成绩大于等于80,且小于等于88的学生

SELECT * FROM student WHERE servlet>=80 AND servlet<=88;

-- 等价于上面

SELECT * FROM student WHERE servlet BETWEEN 80 AND 88; -- (包前包后)


-- 3)判空条件: ='' is null <>'' is not null

UPDATE student SET remark2="" WHERE id=1;

UPDATE student SET remark2=NULL WHERE id=4;


-- 需求: 查询remark字段为空的学生(包含null,也包含字符串)

-- null 和 空字符串的区别:

-- null: 没有数据。 判断null: is null,判断不为null: is not null

-- 空字符: 有数据,数据就是空字符串。判断空字符: =''; 判断不为空字符串: <>''

SELECT * FROM student WHERE remark2 IS NULL;

SELECT * FROM student WHERE remark2='';


SELECT * FROM student WHERE remark2 IS NULL OR remark2='';


-- 需求:查询remark字段不为空的学生

SELECT * FROM student WHERE remark2 IS NOT NULL AND remark2<>'';


-- 4) 模糊条件: like

-- like后面跟上符合

-- %: 表示任意多个字符(0-多个)

-- _: 表示一个字符

-- 需求: 查询姓张的学生

SELECT * FROM student WHERE NAME LIKE '张%';

-- 需求: 查询姓名中包含'张'字的学生

SELECT * FROM student WHERE NAME LIKE '%张%';

-- 需求: 查询姓张,且姓名只有两个字的学生

SELECT * FROM student WHERE NAME LIKE '张__';

2.8 聚合查询

-- 2.8 聚合查询

SELECT * FROM student;

DELETE FROM student WHERE id=5;

-- 需求: 查询所有学生servlet的总分 (SUM: 求和函数)

SELECT SUM(servlet) FROM student;


-- 需求: 查询所有学生servlet的平均分(AVG; 平均函数)

SELECT AVG(servlet) FROM student;


-- 需求:查询最高的servlet分数(MAX:最大值函数)

SELECT MAX(servlet) FROM student;


-- 需求:查询最低的servlet分数(MIN:最小值函数)

SELECT MIN(servlet) FROM student;


-- 需求: 一共几个学生(COUNT: 统计数量函数)

SELECT COUNT(*) FROM student;

SELECT COUNT(id) FROM student; -- 效率会比count(*)效率稍高


-- 注意: 聚合函数,会排除null值的数据

SELECT COUNT(remark2) FROM student;

2.9 分页查询

-- 2.11 分组查询

-- 需求: 查询男女的数量各自多少

-- 预期结果:

-- 男 3

-- 女 2

-- 1) 对性别进行分组(group by) 2)在分组基础上进行聚合函数总计


SELECT gender,COUNT(*) '人数' FROM student GROUP BY gender;

2.10 分组筛选

-- 2.12 分组筛选(group by + having(条件))

-- 需求: 查询人数大于2的性别

-- 1)分组 2)统计 3)条件

SELECT gender,COUNT(*) '人数' FROM student GROUP BY gender HAVING COUNT(*)>2;

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言