MySQL的sql练习,适合初学者

devtools/2024/11/8 2:45:45/

通过两张表,emp,dept 来演示sql>mysqlsql语句
dept表

sql">CREATE TABLE dept (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(255) NOT NULL
);

emp表

sql">CREATE TABLE emp (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(255) NOT NULL,age INT,sex VARCHAR(10),phone VARCHAR(20),deptId INT,CONSTRAINT fk_deptId FOREIGN KEY (deptId) REFERENCES dept(id)
);

这个emp表包含六个字段:id、name、age、sex、phone和deptId。id字段是主键,并且会自动递增,name字段用于存储员工的姓名,不允许为空。age字段用于存储员工的年龄,sex字段用于存储员工的性别,phone字段用于存储员工的电话号码。deptId字段是一个外键,它引用了dept表的id字段,表示员工所属的部门。
以上SQL语句定义了两个表的结构,并且通过外键deptId将emp表和dept表关联起来。

sql练习

单表查询

sql">SELECT * FROM emp;	查询emp表中的所有记录。
sql">SELECT id, name FROM emp;	查询emp表中的id和name字段。
sql">SELECT COUNT(*) FROM emp;	查询emp表中的记录总数。

条件查询

sql">SELECT * FROM emp WHERE age > 30;	查询emp表中年龄大于30岁的所有记录。
sql">SELECT * FROM emp WHERE sex = '男' AND deptId = 1;	查询emp表中性别为男且部门id为1的所有记录。

排序

sql">SELECT * FROM emp ORDER BY age DESC;	查询emp表中的所有记录,并按年龄降序排列。

分组

sql">SELECT deptId, COUNT(*) FROM emp GROUP BY deptId;	按部门分组,查询每个部门的员工数量。

聚合函数

sql">SELECT MAX(age), MIN(age), AVG(age) FROM emp;	查询emp表中年龄的最大值、最小值和平均值。

多表查询

sql">SELECT emp.*, dept.name FROM emp JOIN dept ON emp.deptId = dept.id;	连接emp表和dept表,查询员工信息及其部门名称。
sql">SELECT emp.name, dept.name FROM emp JOIN dept ON emp.deptId = dept.id WHERE emp.age > 30;	连接emp表和dept表,查询年龄大于30岁的员工及其部门名称。

子查询

sql">SELECT * FROM emp WHERE deptId = (SELECT id FROM dept WHERE name = '销售部');	查询部门名称为“销售部”的员工信息。

插入

sql">INSERT INTO emp (name, age, sex, phone, deptId) VALUES ('张三', 25, '男', '1234567890', 1);	向emp表中插入一条新记录。

更新

sql">UPDATE emp SET phone = '0987654321' WHERE id = 1;	更新emp表中id为1的记录,将其电话号码更新为'0987654321'

删除

sql">DELETE FROM emp WHERE id = 1;	删除emp表中id为1的记录。

复合操作

sql">SELECT emp.name, dept.name FROM emp INNER JOIN dept ON emp.deptId = dept.id;	使用INNER JOIN连接emp表和dept表,查询员工及其部门名称。
sql">SELECT emp.name, dept.name FROM emp LEFT JOIN dept ON emp.deptId = dept.id;	使用LEFT JOIN连接emp表和dept表,查询所有员工及其部门名称,如果员工没有部门,则部门名称为NULL
sql">SELECT emp.name, dept.name FROM emp RIGHT JOIN dept ON emp.deptId = dept.id;	使用RIGHT JOIN连接emp表和dept表,查询所有部门及其员工名称,如果没有员工,则员工信息为NULL

完结,撒花!求赞求关注! 有问题可威:c_-j_-c


http://www.ppmy.cn/devtools/131682.html

相关文章

鉴源实验室·如何通过雷达攻击自动驾驶汽车-针对点云识别模型的对抗性攻击的科普

01 引 言 随着自动驾驶技术的迅速发展,雷达和激光雷达等传感器在自动驾驶汽车中的作用愈发重要。它们能够生成3D点云数据,帮助车辆实时感知周围环境并做出安全决策。然而,尽管这些传感器对驾驶环境的检测非常精确,它们也面临一种…

npm入门教程12:npm link功能

一、npm link的基本用法 在本地npm模块目录中执行npm link 当你在开发一个npm模块时,可以在该模块的根目录下运行npm link命令。这个命令会在全局的npm模块目录中创建一个符号链接,指向你当前的本地模块。这样,你的本地模块就被注册为了一个全…

Qt 视口和窗口

Qt 视口和窗口 1、视口和窗口的定义与原理 绘图设备的物理坐标是基本的坐标系,通过 QPainter 的平移、旋转等变换可以得到更容易操作的逻辑坐标。 为了实现更方便的坐标,QPainter 还提供了视口 (Viewport)和窗口 (Window)坐标系,通过Q…

【瑞吉外卖】-day03

目录 前言 启动禁用员工账号 消息转换器 1. Jackson (用于JSON) 2. JAXB (用于XML) 3. Gson (用于JSON) 4. MessagePack (用于二进制格式) 页面展示 代码部分 启动禁用员工账号修改(个人意见) 公共字段自动填充 ThreadLocal简要概述 基本用法…

2024 Rust现代实用教程 closures闭包

文章目录 一、闭包基础概念1.如何使用闭包 二、闭包获取参数byreference与byvalue1.获取外部参数2.所有权转移move 三、闭包是怎么工作的1.闭包在底层是怎么工作的?2.FnOnce,FnMut,Fn特质 四、闭包类型FnOnce、FnMut和Fn做函数参数的实例参考 一、闭包基础概念 闭包…

【自然语言处理与大模型】大模型(LLM)基础知识②

(1)LLaMA输入句子的长度理论上可以无限长吗? 理论上来说,LLM大模型可以处理任意长度的输入句子,但实际上存在一些限制。下面是一些需要考虑的因素: 1. 计算资源:生成长句子需要更多的计算资源&a…

云渲染与汽车CGI图像技术优势和劣势

在数字时代,云渲染技术以其独特的优势在汽车CGI图像制作中占据了重要地位。云渲染通过利用云计算的分布式处理能力,将渲染任务分配给云端的服务器集群进行计算,从而实现高效、高质量的渲染效果。 这种技术的优势主要体现在以下几个方面&#…

如何产看SQL 查询的执行时间

要查看 SQL 查询的执行时间,尤其是毫秒级别,可以使用以下几种方法: 方法 1:使用 SET STATISTICS TIME 查看执行时间 SET STATISTICS TIME 会显示执行时间的详细信息,包括 CPU 时间和总耗时。启用后,SQL S…