Mysql基础学习day02

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 本课程为MySQL基础学习第二天内容,涵盖数据定义语言(DDL)的表查询、修改与删除操作,以及数据操作语言(DML)的增删改查功能。通过具体SQL语句与实例演示,帮助学习者掌握MySQL表结构操作及数据管理技巧。

Mysql基础学习day02


  1. DDL-表查询
  1. 查询当前数据库所有表
-- 查看当前数据库所有表
show tables;
  • image.png
  • image.png

 b.查看指定表结构

-- 查看指定表结构
desc employee;
  • image.png
  • image.png

       c.查询指定表的建表语句

-- 查看指定表的建表语句
show create table employee;
  • image.png
  • image.png

      d.查询指定表的建表语句

2.DDL-表修改

a.添加字段

-- 添加字段
alter table employee
    add qq varchar(11) comment 'QQ号码';
alter table employee
    add update_time timestamp comment '更新时间';
  • image.png
  • image.png

b.修改字段

-- 修改字段
alter table employee
    change qq qq_number varchar(13) comment '新的QQ号码';
  • image.png
  • image.png

3.DDL-表删除    

a.删除字段

-- 删除字段
alter table employee
    drop qq_number;
  • image.png
  • image.png

b.修改表名

-- 修改表名
rename table employee to emp;
  • image.png
  • image.png

c.删除表

-- 删除表
drop table if exists emp;
  • image.png
  • image.png

4.DML-增加/插入(insert)

a. 插入单条数据(部分字段)

-- 插入单条数据(部分字段)
insert into emp(name, department, salary, phone_number, create_time)
values ('张三', '教育部', 1300, 12345678901, now());
  • image.png
  • image.png

b.插入单条数据(全部字段)

insert into emp
values (2, '李四', '教育部', '2023-01-01', 12000, 12345678902, now());
  • image.png
  • image.png

c.插入多条数据(部分字段)

-- 插入多条数据(部分字段)
insert into emp(name, department, salary, phone_number, create_time)
values ('钱八', '教育部', 10000, 12345678906, now()),
       ('周九', '教育部', 14000, 12345678907, now());
  • image.png
  • image.png

d.插入多条数据

-- 插入多条数据
insert into emp
values (5, '王五', '教育部', '2023-01-01', 15000, 12345678903, now()),
       (6, '赵六', '教育部', '2023-01-01', 11000, 12345678904, now()),
       (7, '孙七', '教育部', '2023-01-01', 20000, 12345678905, now());
  • image.png
  • image.png

5.DML-修改(update)

a.单条数据修改

# 将emp表中id为1的员工,薪资salary改为13000
update emp
set salary = 13000
where id = 1;
  • image.png
  • image.png

b.多条数据修改

# 将emp表中的入职时间entry_date改为2025-06-01
update emp
set entry_date  = '2025-06-01',
    update_time = now();
  • image.png
  • image.png

6.DML-删除(delete)

a.单条数据删除

-- 单条数据删除
delete
from emp
where id = 7;
  • image.png
  • image.png

b.多条数据删除

-- 多条数据删除
delete
from emp
where id > 4;
  • image.png
  • image.png

c.删除某个字段全部数据

-- 删除某个字段全部数据
update emp
set qq_number = null;
  • image.png
  • image.png

7.DQL-查询(select)

a.准备数据

# 准备数据
create table emp
(
    id          int unsigned primary key auto_increment comment 'ID,主键',
    username    varchar(20)      not null unique comment '用户名',
    password    varchar(32)      not null comment '密码',
    name        varchar(10)      not null comment '姓名',
    gender      tinyint unsigned not null comment '性别, 1:男, 2:女',
    phone       char(11)         not null unique comment '手机号',
    job         tinyint unsigned comment '职位, 1:班主任,2:讲师,3:学工主管,4:教研主管,5:咨询师',
    salary      int unsigned comment '薪资',
    image       varchar(300) comment '头像',
    entry_date  date comment '入职日期',
    create_time datetime comment '创建时间',
    update_time datetime comment '修改时间'
) comment '员工表';

-- 准备测试数据
INSERT INTO emp(id, username, password, name, gender, phone, job, salary, image, entry_date, create_time, update_time)
VALUES (1, 'shinaian', '123456', '施耐庵', 1, '13309090001', 4, 15000, '1.jpg', '2000-01-01', '2023-10-27 16:35:33',
        '2023-10-27 16:35:35'),
       (2, 'songjiang', '123456', '宋江', 1, '13309090002', 2, 8600, '2.jpg', '2015-01-01', '2023-10-27 16:35:33',
        '2023-10-27 16:35:37'),
       (3, 'lujunyi', '123456', '卢俊义', 1, '13309090003', 2, 8900, '3.jpg', '2008-05-01', '2023-10-27 16:35:33',
        '2023-10-27 16:35:39'),
       (4, 'wuyong', '123456', '吴用', 1, '13309090004', 2, 9200, '4.jpg', '2007-01-01', '2023-10-27 16:35:33',
        '2023-10-27 16:35:41'),
       (5, 'gongsunsheng', '123456', '公孙胜', 1, '13309090005', 2, 9500, '5.jpg', '2012-12-05', '2023-10-27 16:35:33',
        '2023-10-27 16:35:43'),
       (6, 'huosanniang', '123456', '扈三娘', 2, '13309090006', 3, 6500, '6.jpg', '2013-09-05', '2023-10-27 16:35:33',
        '2023-10-27 16:35:45'),
       (7, 'chaijin', '123456', '柴进', 1, '13309090007', 1, 4700, '7.jpg', '2005-08-01', '2023-10-27 16:35:33',
        '2023-10-27 16:35:47'),
       (8, 'likui', '123456', '李逵', 1, '13309090008', 1, 4800, '8.jpg', '2014-11-09', '2023-10-27 16:35:33',
        '2023-10-27 16:35:49'),
       (9, 'wusong', '123456', '武松', 1, '13309090009', 1, 4900, '9.jpg', '2011-03-11', '2023-10-27 16:35:33',
        '2023-10-27 16:35:51'),
       (10, 'lichong', '123456', '林冲', 1, '13309090010', 1, 5000, '10.jpg', '2013-09-05', '2023-10-27 16:35:33',
        '2023-10-27 16:35:53'),
       (11, 'huyanzhuo', '123456', '呼延灼', 1, '13309090011', 2, 9700, '11.jpg', '2007-02-01', '2023-10-27 16:35:33',
        '2023-10-27 16:35:55'),
       (12, 'xiaoliguang', '123456', '小李广', 1, '13309090012', 2, 10000, '12.jpg', '2008-08-18',
        '2023-10-27 16:35:33', '2023-10-27 16:35:57'),
       (13, 'yangzhi', '123456', '杨志', 1, '13309090013', 1, 5300, '13.jpg', '2012-11-01', '2023-10-27 16:35:33',
        '2023-10-27 16:35:59'),
       (14, 'shijin', '123456', '史进', 1, '13309090014', 2, 10600, '14.jpg', '2002-08-01', '2023-10-27 16:35:33',
        '2023-10-27 16:36:01'),
       (15, 'sunerniang', '123456', '孙二娘', 2, '13309090015', 2, 10900, '15.jpg', '2011-05-01', '2023-10-27 16:35:33',
        '2023-10-27 16:36:03'),
       (16, 'luzhishen', '123456', '鲁智深', 1, '13309090016', 2, 9600, '16.jpg', '2010-01-01', '2023-10-27 16:35:33',
        '2023-10-27 16:36:05'),
       (17, 'liying', '12345678', '李应', 1, '13309090017', 1, 5800, '17.jpg', '2015-03-21', '2023-10-27 16:35:33',
        '2023-10-27 16:36:07'),
       (18, 'shiqian', '123456', '时迁', 1, '13309090018', 2, 10200, '18.jpg', '2015-01-01', '2023-10-27 16:35:33',
        '2023-10-27 16:36:09'),
       (19, 'gudasao', '123456', '顾大嫂', 2, '13309090019', 2, 10500, '19.jpg', '2008-01-01', '2023-10-27 16:35:33',
        '2023-10-27 16:36:11'),
       (20, 'ruanxiaoer', '123456', '阮小二', 1, '13309090020', 2, 10800, '20.jpg', '2018-01-01', '2023-10-27 16:35:33',
        '2023-10-27 16:36:13'),
       (21, 'ruanxiaowu', '123456', '阮小五', 1, '13309090021', 5, 5200, '21.jpg', '2015-01-01', '2023-10-27 16:35:33',
        '2023-10-27 16:36:15'),
       (22, 'ruanxiaoqi', '123456', '阮小七', 1, '13309090022', 5, 5500, '22.jpg', '2016-01-01', '2023-10-27 16:35:33',
        '2023-10-27 16:36:17'),
       (23, 'ruanji', '123456', '阮籍', 1, '13309090023', 5, 5800, '23.jpg', '2012-01-01', '2023-10-27 16:35:33',
        '2023-10-27 16:36:19'),
       (24, 'tongwei', '123456', '童威', 1, '13309090024', 5, 5000, '24.jpg', '2006-01-01', '2023-10-27 16:35:33',
        '2023-10-27 16:36:21'),
       (25, 'tongmeng', '123456', '童猛', 1, '13309090025', 5, 4800, '25.jpg', '2002-01-01', '2023-10-27 16:35:33',
        '2023-10-27 16:36:23'),
       (26, 'yanshun', '123456', '燕顺', 1, '13309090026', 5, 5400, '26.jpg', '2011-01-01', '2023-10-27 16:35:33',
        '2023-10-27 16:36:25'),
       (27, 'lijun', '123456', '李俊', 1, '13309090027', 5, 6600, '27.jpg', '2004-01-01', '2023-10-27 16:35:33',
        '2023-10-27 16:36:27'),
       (28, 'lizhong', '123456', '李忠', 1, '13309090028', 5, 5000, '28.jpg', '2007-01-01', '2023-10-27 16:35:33',
        '2023-10-27 16:36:29'),
       (29, 'songqing', '123456', '宋清', 1, '13309090029', 5, 5100, '29.jpg', '2020-01-01', '2023-10-27 16:35:33',
        '2023-10-27 16:36:31'),
       (30, 'liyun', '123456', '李云', 1, '13309090030', NULL, NULL, '30.jpg', '2020-03-01', '2023-10-27 16:35:33',
        '2023-10-27 16:36:31');

b.基本查询

  • 查询多个字段
  • 案例1:查询指定字段 nameentry_date并返回
-- 案例1:查询指定字段 name,entry_date并返回
select name, entry_date
from emp;
  • image.png
  • image.png
  • 起别名
-- 起别名
select name as 姓名, entry_date as 入职时间
from emp;
select name as '姓 名', entry_date as 入职时间
from emp;
select name as "姓  名", entry_date as 入职时间
from emp;
  • image.png
  • 1: image.png
  • 2: image.png
  • 3: image.png
  • 查询所有字段   `*`号代表查询所有字段,在实际开发中尽量少用(不直观、影响效率)
-- 查询所有字段   `*`号代表查询所有字段,在实际开发中尽量少用(不直观、影响效率)
select *
from emp;
  • image.png
  • image.png
  • 查询emp表中有哪些职位
# 查询emp表中有哪些职位
select job
from emp;
  • image.png
  • image.png
  • 查询emp表中的职位去重
-- 查询emp表中的职位去重
select distinct job
from emp;
  • image.png
  • Snipaste_2025-09-07_19-58-46.png

c.条件查询

  • 案例1:查询 姓名 为 '宋江' 的员工
-- 案例1:查询 姓名 为 '宋江' 的员工
select *
from emp
where name = '宋江';
  • image.png
  • image.png
  • 案例2:查询 薪资小于等于 5000 的员工信息
-- 案例2:查询 薪资小于等于 5000 的员工信息
select *
from emp
where salary <= 5000;
  • image.png
  • image.png
  • 案例3:查询 没有分配职位 的员工信息
-- 案例3:查询 没有分配职位 的员工信息
select *
from emp
where job is null;
  • image.png
  • image.png
  • 案例4:查询 有职位 的员工信息
-- 案例4:查询 有职位 的员工信息
select *
from emp
where job is not null;
  • image.png
  • image.png
  • 案例5:查询 密码不等于 '123456' 的员工信息
-- 案例5:查询 密码不等于 '123456' 的员工信息
select *
from emp
where password != '123456';
  • image.png
  • image.png
  • 案例6:查询 入职日期 在  '2000-01-01' (包含)    '2010-01-01'(包含) 之间的员工信息
-- 案例6:查询 入职日期 在  '2000-01-01' (包含)  到  '2010-01-01'(包含) 之间的员工信息
select *
from emp
where entry_date between '2000-01-01' and '2010-01-01';
select *
from emp
where entry_date >= '2000-01-01'
  and entry_date <= '2010-01-01';
  • image.png
  • image.png
  • 案例7:查询 入职时间 在 '2000-01-01' (包含) '2010-01-01'(包含) 之间 且 性别为女 的员工信息
--  案例7:查询 入职时间 在 '2000-01-01' (包含) 到 '2010-01-01'(包含) 之间 且 性别为女 的员工信息
select *
from emp
where entry_date between '2000-01-01' and '2010-01-01'
  and gender = 2;
  • image.png
  • image.png
  • 案例8:查询 职位是 2 (讲师), 3 (学工主管), 4 (教研主管) 的员工信息
-- 案例8:查询 职位是 2 (讲师), 3 (学工主管), 4 (教研主管) 的员工信息
select *
from emp
where job in (2, 3, 4);

select *
from emp
where job = 2
   or job = 3
   or job = 4;
  • image.png
  • image.png
  • 案例9:查询 姓名 为两个字的员工信息
-- 案例9:查询 姓名 为两个字的员工信息
select *
from emp
where name like '__';
  • image.png
  • image.png
  • 案例10:查询 姓 '' 的员工信息
-- 案例10:查询 姓 '李' 的员工信息
select *
from emp
where name like '李%';
  • image.png
  • image.png
  • 案例11*查询 姓名中包含* ''  的员工信息
-- 案例11:*查询 姓名中包含* '二'  的员工信息
select *
from emp
where name like '%二%';
  • image.png
  • image.png

d.聚合函数

  • 案例1:统计该企业员工数量
-- 案例1:统计该企业员工数量
select count(*)
from emp;
select count(id)
from emp;
  • image.png
  • image.png
  • 案例2:统计该企业员工的平均薪资
-- 案例2:统计该企业员工的平均薪资
select avg(salary)
from emp;
  • image.png
  • image.png
  • 案例3:统计该企业员工的最低薪资
-- 案例3:统计该企业员工的最低薪资
select min(salary)
from emp;
  • image.png
  • image.png
  • 案例4:统计该企业员工的最高薪资对应员工的姓名
-- 案例4:统计该企业员工的最高薪资对应员工的姓名
select max(salary)
from emp;
select name
from emp
where salary = (select max(salary) from emp);
  • image.png
  • image.png
  • 案例5:统计该企业每月要给员工发放的薪资总额(薪资之和)
-- 案例5:统计该企业每月要给员工发放的薪资总额(薪资之和)
select sum(salary)
from emp;
  • image.png
  • image.png

d.分组查询

  • 案例1:根据性别分组 , 统计男性和女性员工的数量
-- 案例1:根据性别分组 , 统计男性和女性员工的数量
select gender, count(*)
from emp
group by gender;
  • image.png
  • image.png
  • 查询入职时间在 '2015-01-01' (包含) 以前的员工 , 并对结果根据职位分组 , 获取员工数量大于等于2的职位
-- 查询入职时间在 '2015-01-01' (包含) 以前的员工 , 并对结果根据职位分组 , 获取员工数量大于等于2的职位
select job, count(*)
from emp
where entry_date <= '2015-01-01'
group by job
having count(*) >= 2;
  • image.png
  • image.png

e.排序查询

  • 案例1:根据入职时间, 对员工进行升序排序
-- 案例1:根据入职时间, 对员工进行升序排序
select *
from emp
order by entry_date asc;
  • image.png
  • image.png
  • 案例2:根据入职时间, 对员工进行降序排序
-- 案例2:根据入职时间, 对员工进行降序排序
select *
from emp
order by entry_date desc;
  • image.png
  • image.png
  • 案例3:根据入职时间对公司的员工进行升序排序,入职时间相同,再按照更新时间进行降序排序
-- 案例3:根据入职时间对公司的员工进行升序排序,入职时间相同,再按照更新时间进行降序排序
select *
from emp
order by entry_date asc, update_time desc;
  • image.png
  • image.png

f.分页查询   起始索引 = (页码-1 * 每页条数

  • 案例1:从起始索引0开始查询员工数据, 每页展示5条记录
# 分页查询   起始索引 = (页码-1* 每页条数
-- 案例1:从起始索引0开始查询员工数据, 每页展示5条记录
select *
from emp
limit 0,5;
select *
from emp
limit 5,5;
select *
from emp
limit 10,5;
  • image.png
  • image.png


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
16天前
|
SQL 关系型数据库 MySQL
Mysql基础学习day02-作业
本教程介绍了数据库表的创建与管理操作,包括创建员工表、插入测试数据、删除记录、更新数据以及多种查询操作,涵盖了SQL语句的基本使用方法,适合初学者学习数据库操作基础。
47 0
|
16天前
|
SQL 关系型数据库 MySQL
Mysql基础学习day03
本课程为MySQL基础学习第三天内容,主要讲解多表关系与多表查询。内容涵盖物理外键与逻辑外键的区别、一对多、一对一及多对多关系的实现方式,以及内连接、外连接、子查询等多表查询方法,并通过具体案例演示SQL语句的编写与应用。
33 0
|
10天前
|
关系型数据库 MySQL 数据管理
Mysql基础学习day03-作业
本内容包含数据库建表语句及多表查询示例,涵盖内连接、外连接、子查询及聚合统计,适用于员工与部门数据管理场景。
22 1
|
21天前
|
SQL 关系型数据库 MySQL
Mysql基础学习day01
本课程为MySQL基础学习第一天内容,涵盖MySQL概述、安装、SQL简介及其分类(DDL、DML、DQL、DCL)、数据库操作(查询、创建、使用、删除)及表操作(创建、约束、数据类型)。适合初学者入门学习数据库基本概念和操作方法。
117 6
|
19天前
|
SQL 关系型数据库 MySQL
Mysql基础学习day01-作业
本教程包含三个数据库表的创建练习:学生表(student)要求具备主键、自增长、非空、默认值及唯一约束;课程表(course)定义主键、非空唯一字段及数值精度限制;员工表(employee)包含自增主键、非空字段、默认值、唯一电话号及日期时间类型字段。每个表的结构设计均附有详细SQL代码示例。
42 0
|
11月前
|
分布式计算 关系型数据库 MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
120 3
|
9月前
|
SQL 存储 关系型数据库
【MySQL基础篇】全面学习总结SQL语法、DataGrip安装教程
本文详细介绍了MySQL中的SQL语法,包括数据定义(DDL)、数据操作(DML)、数据查询(DQL)和数据控制(DCL)四个主要部分。内容涵盖了创建、修改和删除数据库、表以及表字段的操作,以及通过图形化工具DataGrip进行数据库管理和查询。此外,还讲解了数据的增、删、改、查操作,以及查询语句的条件、聚合函数、分组、排序和分页等知识点。
815 55
【MySQL基础篇】全面学习总结SQL语法、DataGrip安装教程
|
SQL 关系型数据库 MySQL
关于MySQL数据库的学习指南总结
【6月更文挑战第17天】MySQL是流行的关系型DBMS,适合各种应用。学习要点包括安装配置、数据类型、SQL(如SELECT、INSERT)、关系模型、表设计、SQL查询(如WHERE、ORDER BY)、事务处理、用户管理、性能优化和高级技术如存储过程、触发器。了解ACID特性,使用索引和内存优化提升性能,通过备份恢复确保数据安全。不断学习新技术以提升技能。
181 3
|
11月前
|
关系型数据库 MySQL Java
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
这篇文章是关于如何使用Django框架配置MySQL数据库,创建模型实例,并自动或手动创建数据库表,以及对这些表进行操作的详细教程。
381 0
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
|
11月前
|
Java 关系型数据库 MySQL
springboot学习五:springboot整合Mybatis 连接 mysql数据库
这篇文章是关于如何使用Spring Boot整合MyBatis来连接MySQL数据库,并进行基本的增删改查操作的教程。
2304 0
springboot学习五:springboot整合Mybatis 连接 mysql数据库

推荐镜像

更多