MySQL的sql练习,适合初学者

news2024/11/6 4:13:39

通过两张表,emp,dept 来演示mysql的sql语句
dept表

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

emp表

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练习

单表查询

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

条件查询

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

排序

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

分组

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

聚合函数

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

多表查询

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

子查询

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

插入

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

更新

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

删除

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

复合操作

SELECT emp.name, dept.name FROM emp INNER JOIN dept ON emp.deptId = dept.id;	使用INNER JOIN连接emp表和dept表,查询员工及其部门名称。
SELECT emp.name, dept.name FROM emp LEFT JOIN dept ON emp.deptId = dept.id;	使用LEFT JOIN连接emp表和dept表,查询所有员工及其部门名称,如果员工没有部门,则部门名称为NULL
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.coloradmin.cn/o/2234042.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python爬取旅游攻略(1)

参考网址: https://blog.csdn.net/m0_61981943/article/details/131262987 导入相关库,用get请求方式请求网页方式: import requests import parsel import csv import time import random url fhttps://travel.qunar.com/travelbook/list.…

C++设计模式创建型模式———原型模式

文章目录 一、引言二、原型模式三、总结 一、引言 与工厂模式相同,原型模式(Prototype)也是创建型模式。原型模式通过一个对象(原型对象)克隆出多个一模一样的对象。实际上,该模式与其说是一种设计模式&am…

基于STM32的智能温室环境监测与控制系统设计(代码示例)

一、项目概述 在现代农业中,智能大棚能够通过环境监测、数据分析和自动控制等技术手段,实现对作物生长环境的精细化管理。本项目旨在设计一个基于STM32单片机的智能大棚系统,能够实时监测光照强度、空气温湿度及土壤湿度,并根据设…

(五)Web前端开发进阶2——AJAX

目录 1.Ajax概述 2.Axios库 3.认识URL 4.Axios常用请求方法 5.HTTP协议——请求报文/响应报文 6.HMLHttpRequest对象 7.前后端分离开发(接口文档) 8.Element组件库 1.Ajax概述 AJAX 是异步的 JavaScript和XML(Asynchronous JavaScript And XML)。…

进程信号——信号的保存

信号的概念 实际执行信号的处理动作称为信号递达(Delivery) 信号从产生到递达之间的状态,称为信号未决(Pending)。 进程可以选择阻塞 (Block )某个信号。 被阻塞的信号产生时将保持在未决状态,直到进程解除对此信号的阻塞,才执行递达的动作. 注意,阻塞和忽略是不同的,只要信号…

基于SSM的“房屋租赁系统”的设计与实现(源码+数据库+文档+PPT)

基于SSM的“房屋租赁系统”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SSM,JSP 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 房屋租赁系统首页 管理员后台管理页面 报告故障管…

无需懂代码!用AI工具Bolt一键生成网站的入门指南!

​ ​ 随着AI技术的不断发展,许多原本需要技术门槛的操作正在被大大简化,甚至零基础的用户也可以轻松实现。 例如,AI生成网站工具Bolt就是这样一个可以帮助我们快速创建、实时预览并自动部署网站的平台。接下来,本文将带你深入了…

Elasticsearch中时间字段格式用法详解

Elasticsearch中时间字段格式用法详解 攻城狮Jozz关注IP属地: 北京 2024.03.18 16:27:51字数 758阅读 2,571 Elasticsearch(简称ES)是一个基于Lucene构建的开源、分布式、RESTful搜索引擎。它提供了全文搜索、结构化搜索以及分析等功能,广泛…

vue中el-table显示文本过长提示

1.el-table设置轻提示:show-overflow-tooltip“true“,改变轻提示宽度

关于我的编程语言——C/C++——第四篇(深入1)

(叠甲:如有侵权请联系,内容都是自己学习的总结,一定不全面,仅当互相交流(轻点骂)我也只是站在巨人肩膀上的一个小卡拉米,已老实,求放过) 字符类型介绍 char…

【春秋云镜】CVE-2023-23752

目录 CVE-2023-23752漏洞细节漏洞利用示例修复建议 春秋云镜:解法一:解法二: CVE-2023-23752 是一个影响 Joomla CMS 的未授权路径遍历漏洞。该漏洞出现在 Joomla 4.0.0 至 4.2.7 版本中,允许未经认证的远程攻击者通过特定 API 端…

AI 写作(一):开启创作新纪元(1/10)

一、AI 写作:重塑创作格局 在当今数字化高速发展的时代,AI 写作正以惊人的速度重塑着创作格局。AI 写作在现代社会中占据着举足轻重的地位,发挥着不可替代的作用。 随着信息的爆炸式增长,人们对于内容的需求日益旺盛。AI 写作能够…

快速构建数据产品原型 —— 我用 VChart Figma 插件

快速构建数据产品原型 —— 我用 VChart Figma 插件 10 种图表类型、24 种内置模板类型、丰富的图表样式配置、自动生成图表实现代码。VChart Figma 插件的目标是提供 便捷好用 & 功能丰富 & 开发友好 的 figma 图表创建能力。目前 VChart 插件功能仍在持续更新中&…

源鲁杯 2024 web(部分)

[Round 1] Disal F12查看: f1ag_is_here.php 又F12可以发现图片提到了robots 访问robots.txt 得到flag.php<?php show_source(__FILE__); include("flag_is_so_beautiful.php"); $a$_POST[a]; $keypreg_match(/[a-zA-Z]{6}/,$a); $b$_REQUEST[b];if($a>99999…

【ArcGIS】绘制各省碳排放分布的中国地图

首先&#xff0c;准备好各省、自治区、直辖市及特别行政区&#xff08;包括九段线&#xff09;的shp文件&#xff1a; 通过百度网盘分享的文件&#xff1a;GS&#xff08;2022&#xff09;1873 链接&#xff1a;https://pan.baidu.com/s/1wq8-XM99LXG_P8q-jNgPJA 提取码&#…

C++《list的模拟实现》

在上一篇C《list》专题当中我们了解了STL当中list类当中的各个成员函数该如何使用&#xff0c;接下来在本篇当中我们将试着模拟实现list&#xff0c;在本篇当中我们将通过模拟实现list过程中深入理解list迭代器和之前学习的vector和string迭代器的不同&#xff0c;接下来就开始…

讲讲⾼可用的原则?

大家好&#xff0c;我是锋哥。今天分享关于【讲讲⾼可用的原则&#xff1f;】面试题。希望对大家有帮助&#xff1b; 讲讲⾼可用的原则&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在当今信息化时代&#xff0c;随着互联网技术的快速发展&#xff0…

003-Kotlin界面开发之声明式编程范式

概念本源 在界面程序开发中&#xff0c;有两个非常典型的编程范式&#xff1a;命令式编程和声明式编程。命令式编程是指通过编写一系列命令来描述程序的运行逻辑&#xff0c;而声明式编程则是通过编写一系列声明来描述程序的状态。在命令式编程中&#xff0c;程序员需要关心程…

Ubuntu 20.04 部署向量数据库 Milvus + Attu

前言 最开始在自己的办公电脑&#xff08;无显卡的 windows 10 系统&#xff09; 上使用 Docker Desktop 部署了 Milvus 容器&#xff0c;方便的很&#xff0c; 下载 Attu 也很方便&#xff0c;直接就把这个向量数据库通过 Attu 这个图形化界面跑了起来&#xff0c;使用起来感…

Linux(inode + 软硬链接 图片+大白话)

后面也会持续更新&#xff0c;学到新东西会在其中补充。 建议按顺序食用&#xff0c;欢迎批评或者交流&#xff01; 缺什么东西欢迎评论&#xff01;我都会及时修改的&#xff01; 在这里真的很感谢这位老师的教学视频让迷茫的我找到了很好的学习视频 王晓春老师的个人空间…