快速学会Mysql的增删改查

目录

1,查找前的准备工作

2,插入数据

3,修改数据

4,删除数据

5,数据查询

5.1 基本查询

5.1.1查询全部字段的全部数据

5.1.2查询部分字段的全部数据

5.1.3根据条件查询数据

5.1.4多个条件的查询

5.1.5模糊查询

5.1.6去重

5.1.7排序

5.1.8限制查询结果的数量

5.2 内连接

5.2.1显示内连接

5.2.2隐式内连接

5.3 外连接

5.3.1左外连接

5.3.2右外连接

5.4 聚合函数查询

5.5 子查询

5.5.1简单子查询

5.5.2ANY/SOME子查询

5.5.3All子查询

5.5.4NOT EXISTS子查询


1,查找前的准备工作

在我们进行操作前,先创建3个表,以便我们后续操作

CREATE DATABASE hqyj;
USE hqyj;
CREATE TABLE students(
    id INT AUTO_INCREMENT PRIMARY KEY,
    NAME VARCHAR(20),
    age INT,
    height FLOAT,
    gender CHAR(10),
    cls_id INT,
    is_delete INT
);
CREATE TABLE teachers(
    id INT PRIMARY KEY,
    NAME VARCHAR(20)
);
CREATE TABLE classes(
    id INT PRIMARY KEY,
    teacher_id INT,
    cls_content VARCHAR(100),
    cls_date DATETIME,
    NAME VARCHAR(50)
);
INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (1, '小明', 18, 180, '女', 1, 0);
INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (2, '小月月', 18, 180, '女', 2, 1);
INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (3, '彭于晏', 29, 185, '男', 1, 0);
INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (4, '刘德华', 59, 175, '男', 2, 1);
INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (5, '黄蓉', 38, 160, '女', 1, 0);
INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (6, '凤姐', 28, 150, '保密', 2, 1);
INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (7, '王祖贤', 18, 172, '保密', 1, 1);
INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (8, '周杰伦', 36, NULL, '男', 3, 0);
INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (9, '程坤', 27, 181, '男', 2, 0);
INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (10, '刘亦菲', 25, 166, '男', 2, 0);
INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (11, '猪猪侠', 33, 162, '保密', 3, 1);
INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (12, '静香', 12, 180, '女', 2, 0);
INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (13, '郭靖', 12, 170, '男', 3, 0);
INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (14, '周杰', 34, 176, '女', 1, 0);
INSERT INTO `teachers` (`id`, `name`) VALUES (1, '赵老师');
INSERT INTO `teachers` (`id`, `name`) VALUES (2, '孙老师');
INSERT INTO `teachers` (`id`, `name`) VALUES (3, '李老师');
INSERT INTO `teachers` (`id`, `name`) VALUES (4, '周老师');
INSERT INTO `classes` (`id`, `teacher_id`, `cls_content`, `cls_date`, `name`) VALUES (1, 1, '班级学生有较强的学习能力', '2024-10-01 00:00:00', 'python_01期');
INSERT INTO `classes` (`id`, `teacher_id`, `cls_content`, `cls_date`, `name`) VALUES (2, 2, '班级学生比较顽皮', '2024-11-01 00:00:00', 'python_02期');
INSERT INTO `classes` (`id`, `teacher_id`, `cls_content`, `cls_date`, `name`) VALUES (3, 2, '数据结构班', '2024-11-01 00:00:00', 'data_struct_01期');

2,插入数据

插入数据:insert into 表名 [(字段名)] values (字段对应的值1,字段对应的值2,.......)[,(字段对应的值1,字段对应的值2,.......)];

3,修改数据

修改数据:update 表名 set 字段名1=新的数据值,字段名2=新的数据值 [where 条件];

4,删除数据

delete from 表名;----------删除表里的数据,但是表仍然存在

delete from 表名 [where 条件];------------根据条件进行删除表里的数据

truncate table 表名;---------清空表里的数据,但表仍然存在,而且不能加条件

5,数据查询

5.1 基本查询

5.1.1查询全部字段的全部数据

查询全部字段的全部数据:select * from 表名;

5.1.2查询部分字段的全部数据

查询部分字段的全部数据:select 字段名1,字段名2......from 表名;

5.1.3根据条件查询数据

根据条件查询数据:select * from 表名 where 条件;

5.1.4多个条件的查询

多个条件的查询:条件与条件之间可以用and、or、in、between...and...来进行条件的连接

5.1.5模糊查询

模糊查询:select * from 表名 where 字段名 like '值';----------% _

5.1.6去重

select distinct 字段名 from 表名;

5.1.7排序

按照单个字段排序:select * from 表名 order by 字段名 asc/desc;(asc升序-默认,desc降序)

按照多个字段排序:select * from 表名 order by 字段名1 asc/desc,字段名2 asc/desc;

有条件的排序:select * from 表名 where 条件 order by 字段名 asc/desc;

5.1.8限制查询结果的数量

限制查询结果的数量:limit

5.2 内连接

5.2.1显示内连接

显示内连接:select 字段 from 表名1 inner join 表名2 on 两个表连接的条件 [where 条件];

5.2.2隐式内连接

隐式内连接:select 字段 from 表名1,表名2 where 两个表连接的条件 [and 其他查询的条件];

5.3 外连接

5.3.1左外连接

左外连接:select 字段 from 表名1 left join 表名2 on 两个表连接的条件 [where 条件];------左表的数据全部查询出来,右表符合条件的查询出来

5.3.2右外连接

右外连接:select 字段 from 表名1 right join 表名2 on 两个表连接的条件 [where 条件];------右表的数据全部查询出来,左表符合条件的查询出来

5.4 聚合函数查询

示例:查询班级学生的平均年龄

select avg(age) as '平均年龄' from students;

count()-计数

sum()-求和

max()-最大值

min()-最小值

avg()-平均值

5.5 子查询

5.5.1简单子查询

示例:查看刘德华同学的所在班级的所有同学

select * from students where cls_id = (select cls_id from students where name = '刘德华');

5.5.2ANY/SOME子查询

示例:查看赵老师所带的学生信息

select * from students where cls_id = any(select id from classes where teacher_id = (select id from teachers where name='赵老师'));

5.5.3All子查询

示例:查看学生所在班级

select * from students where cls_id >= all(select id from classes where teacher_id = (select id from teachers where name='赵老师'));

5.5.4NOT EXISTS子查询

示例:创建教师表

create table IF NOT EXISTS teachers(

id int primary key,

name varchar(20)

);

避免重复创建

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值