MySql简单查询——单表查询

2023-05-16

   一、DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等;

     相关字段:create,drop,alter,use,show,database,table

     操作对象:数据库和表的创建修改删除查看使用。

      create  database  student_db;    //创建数据库

      create  table  student (   );  //创建表

      drop database   if exists  student_db;  //删除数据库

      drop table if exists  student;   //删除表

      alter  table student add(... SEX   varchar(20))     //添加列

      alter table  student  modify  SEX  varchar(10));    //修改列的类型  

      alter table student  change  sex   varchar(10));   //修改列名

      alter  table student  drop  sex;     //删除列明

      alter  table student rename teacher;     //修改表名

      alter database test999 character set utf8;  //修改数据库编码为utf-8(在MySQL里‘-’省掉)

      常用类型:

  1. int:整型
  2. double:浮点型,例如double(5,2)表示最多5位,其中必须有2位小数,即最大值为999.99;
  3. decimal:泛型型(浮点型),在表单钱方面使用该类型,因为不会出现精度缺失问题;
  4. char:固定长度字符串类型;长度默认255。
  5. varchar:可变长度字符串类型;(65535)
  6. text:字符串(文本)类型;
  7. blob:字节类型;
  8. date:日期类型,格式为:yyyy-MM-dd;
  9. time:时间类型,格式为:hh:mm:ss
  10. timestamp:时间戳类型;

  二、DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据);

      操作方式:添加,修改,删除;

      操作对象:对表内;

      (1).插入或添加 数据;

       insert  into student  (字段1,字段2,...) values(' 数据1','数据2',...);

       insert  into student   values(' 数据1','数据2',...);

      注:所插入的数据与字段必须一一对应;

     (2).修改数据;

       UPDATE 表名 SET 列名1=值1, … 列名n=值n [WHERE 条件

        update  student set  name='zhangsan',age=22,sex='男' where sdu_id=001;

     (3).删除数据

      delete from student  where  name='lisi';

      truncate table stu;

       注:

        虽然TRUNCATE和DELETE都可以删除表的所有记录,但有原理不同。DELETE的效率没有TRUNCATE高!

TRUNCATE其实属于DDL语句,因为它是先DROP TABLE,再CREATE TABLE。而且TRUNCATE删除的记录是无法回滚的,但DELETE删除的记录是可以回滚的(回滚是事务的知识!)。

三、DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别;

四、DQL(Data Query Language):数据查询语言,用来查询记录(数据)。

      (1).简单查询

         select *from student;

         selstct*from student  where ...

         between...and... 在什么之间

         in(20,30)  表示包括20,和30,而非区间;

         is null /is not null表示空/非空

         and  并    or  和

         注:or条件要用一个括号括起来

         select *from employee where (department_NO='D2019090001' and job='总经理') or( department_NO='D2019090011' and job='财务总监') or (job  not in('总经理','销售总监')  and employee.salary>=4000);

          like  模糊查询 ,与'—'和'%'搭配使用,'—'表示任意一个字符,%表示n个字符

          distinct  去重,若某个字段存在相同的记录,需要去重时

          select  distinct  salary from  student;

           order   by asc升序

           order  by desc  降序

           group  by  分组

           having   过滤

           count()   统计行(个数)

           as  起别名

     使用顺序:

       select  *from student  where  ... group by  department  order  by  salary  asc  having  bonus  >1000; 

where>group by>order by>having

表    

 

问题 :

  1. 查询出部门编号为D2019060011的所有员工
  2. 所有财务总监的姓名、编号和部门编号。
  3. 找出奖金高于工资的员工。
  4.  找出奖金高于工资40%的员工。
  5. 找出部门编号为D2019090011中所有财务总监,和部门编号为D2019060011中所有财务专员的详细资料。
  6.  找出部门编号为D2019090001中所有总经理,部门编号为D2019090011中所有财务总监,还有即不是总经理又不是销售总监但其工资大或等于4000的所有员工详细资料。
  7. 有奖金的工种。
  8. 无奖金或奖金低于1000的员工。
  9. 查询名字由两个字组成的员工。
  10. 查询2020年入职的员工。
  11. 查询所有员工详细信息,用编号升序排序。
  12.  查询所有员工详细信息,用工资降序排序,如果工资相同使用入职日期升序排序。
  13. 查询每个部门的平均工资。
  14. 求出每个部门的雇员数量。
  15. 查询每种工作的最高工资、最低工资、人数.
  16.  列出最低薪金大于4000的各种工作及从事此工作的员工人数。
  17. 统计各部门工资总和,显示部门编号和该部门雇员的月工资的总和,并且要满足该部门雇员的月工资合计大于6000,输出结果按月工资的合计升序排列。

答案:

  1. 查询出部门编号为D2019060011的所有员工

      select name from employee where department_NO='D2019060011';

         

      2.所有财务总监的姓名、编号和部门编号。

     select name,number,department_NO from employee where job='财务总监';

      

      3.找出奖金高于工资的员工。

    select name,salary,bonus from employee where employee.bonus>employee.salary;

     

 

     4.找出奖金高于工资40%的员工。

    select name,salary,bonus from employee where employee.bonus>employee.salary*0.4;

     

 

      5.找出部门编号为D2019090011中所有财务总监,和部门编号为D2019060011中所有财务专员的详细资料。

  select*from employee where department_NO='D2019090011' and job='财务总监'  or department_NO='D2019060011' and job='财务专员';

 

    6. 找出部门编号为D2019090001中所有总经理,部门编号为D2019090011中所有财务总监,还有即不是总经理又不是销售总监但其工资大或等于4000的所有员工详细资料。

  select *from employee where (department_NO='D2019090001' and job='总经理') or( department_NO='D2019090011' and job='财务总监') or (job  not in('总经理','销售总监')  and employee.salary>=4000);
      

   7.有奖金的工种。

  select job,bonus from employee where employee.bonus is not null;

   

   8.无奖金或奖金低于1000的员工。

    select name ,bonus from employee where employee.bonus is null or employee.bonus<1000;

    

 9.查询名字由两个字组成的员工。

     select name from employee where employee.name like '__';

     

 10.查询2020年入职的员工。

    select  name ,hire_date from employee where employee.hire_date like '2020%';
     

 11.查询所有员工详细信息,用编号升序排序。

   select*from employee order by employee.number asc ;

    

 12. 查询所有员工详细信息,用工资降序排序,如果工资相同使用入职日期升序排序。

    select *from employee order by employee.salary desc , employee.hire_date  asc  ;

    

 13.查询每个部门的平均工资。

  select department_NO, avg(salary) as '平均工资' from  employee GROUP BY department_NO;

    

 14.求出每个部门的雇员数量。

   select  department_NO,count(department_NO is not null ) as '部门人数总和' from employee GROUP BY department_NO;

    

 15.查询每种工作的最高工资、最低工资、人数.

    select  job, max(salary),min(salary),count(*) from employee group by job;

    

 16. 列出最低薪金大于4000的各种工作及从事此工作的员工人数。

     select job,min(salary),count(*) from employee  group by job having min(salary)>4000;

     

 17.统计各部门工资总和,显示部门编号和该部门雇员的月工资的总和,并且要满足该部门雇员的月工资合计大于6000,输出结果按月工资的合计升序排列。

    select department_NO,sum(salary) from employee group by department_NO having sum(salary)>6000 order by salary asc;

    

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySql简单查询——单表查询 的相关文章

  • TVM运行时系统

    本文翻译自TVM Runtime System tvm 0 9 dev0 documentation TVM的编译器栈开发和部署支持多种编程语言 在本文中 xff0c 我们将解释TVM运行时的关键元素 我们需要满足一些有趣的需求 部署 从p
  • 彻底解决anaconda虚拟环境中pip是全局pip 下载包自动到base环境而非虚拟环境的问题 No module named _abc报错解决

    删除系统变量中的 PYTHONHOME C ProgramData Anaconda3 同时需要将虚拟环境的Lib site package的路径添加至系统变量Path中 xff0c 否则还是会报没有 abc模块的错误
  • C++基础语法

    C语言作为程序化的开发语言 xff0c 适合处理较小规模的程序 xff0c 相对于大规模程序 xff0c C语言并不合适 xff0c 所以提出了C 43 43 语言 C 43 43 对C语言的加强主要表现在 1 命名空间 2 函数重载与运算
  • 什么是DOM对象?如何获取DOM对象?

    今天的web前端培训环节 xff0c 我们讲解一下DOM对象 DOM对象本质上是浏览器根据html标签生成的 JS对象 xff0c 它的所有的标签属性都可以在这个 JS对象上面找到 xff0c 修改这个对象的属性会自动映射到标签身上 DOM
  • 2021电赛F题数字识别和巡线部分

    文章之前12月发了一次 xff0c 但是我后来申请的免毕设后 xff0c 用到了一些文字 xff0c 所以删了这篇文章 xff0c 但是还是查重了 xff0c 于是我把一些程序讲解先删了 xff0c 等毕设结束后再编辑加上 这次电赛我没有准
  • STM32CubeMX的使用,配置DMA串口

    这次记录下最近调用的外设 DMA以前用得很少 xff0c 只通过ADC采集使用 xff0c 开启后就直接读那个数组就可以了 我对dma的理解就是不占用cpu xff0c 数据传输速度快 xff0c 可以直接从外设和内存间相互读取 目前的工作
  • Freertos利用队列传递变量值

    记录部分代码 void CreateTask xTaskCreate LED Task 34 LED 34 30 NULL 0 amp LED Handle xTaskCreate OLED Task 34 OLED 34 150 NULL
  • CubeMX调用DSP库

    踩坑记录 先下载库 下载安装完记得勾选 生成工程 把Cube库中对应型号文件夹中的DSP头文件复制到自己工程目录下 Middlewares ST ARM DSP Inc 编译 xff0c 此时会报错 xff0c 定位 复制对应系列芯片至 再
  • FreeRTOS 事件组

    实现功能 xff0c 当任务A B完成后执行串口任务 不同任务用不同的位表示 configUSE 16 BIT TICKS 61 1 bitx 0 7 xff1b configUSE 16 BIT TICKS设置为0 xff0c bitx
  • STM32 硬件SPI应用 WK2124串口扩展芯片

    根据官方实例代码修改而成 xff0c 具体寄存器参数请参考手册 全双工模式 xff0c 8位数据 xff0c 有效位为最高位 预分频结果最终在芯片工作范围内即可 SPI模式0 CS片选信号是自己用软件设定 仅列出读写寄存器修改 xff0c
  • Mapreduce单词计数的例子

    WordCount类 package org apache hadoop examples span class hljs comment 著名源文件存放的地方 span import java io IOException import
  • LCD12864驱动显示程序

    这里是用的并行写法 xff0c 后续会更新串行 并行缺点就是太占用io口了 xff0c 我其实更喜欢用串行 不过不是比赛要求都不怎么用了 lcd12864 c include 34 lcd12864 h 34 uchar code num
  • HC-SR501人体红外感应模块程序

    当感应到时 xff0c 输出一个高电平 这里我对io口进行了配置 xff0c 要不然读不到高电平 建议大家以后养成习惯 xff0c 对io口进行配置 xff0c stm32中会用到 在这里我额外提下 xff0c 一般在stm32中 浮空输入
  • HX711称重模块程序

    以上部分截自于厂家数据手册 include lt STC12C5A60S2 H gt include 34 lcd12864 h 34 unsigned long HX711 Buffer 61 0 unsigned long Weight
  • SYN6288中文语音合成 程序

    用到串口2 xff0c 因为串口1的话会影响下载 xff0c 需每次拔插线 include lt STC12C5A60S2 H gt include lt stdio h gt include lt math h gt include lt
  • STC单片机超声波程序

    SR05 xff0c 这款只能用定时器计算 include lt intrins h gt include 34 12864 h 34 include lt stdio h gt sbit RX 61 P1 6 sbit TX 61 P1
  • VTK学习-坐标系统

    写在前面 xff1a 这篇博客简要根据书本内容简要介绍一些VTK中要用到的坐标系统与空间变换 这一部分与计算机图形学结合更加紧密 想起之前也 被迫 研究过一段时间的计算机图形学中三维显示部分 xff0c 现在简单学一学 xff0c 提示一下
  • python出现进程已结束,退出代码为-1066598274 (0xC06D007E)的含义

    python出现进程已结束 xff0c 退出代码为 1066598274 0xC06D007E 的含义为你当前使用的某个包与其他相关的包版本之间发生冲突 解决方法 xff1a 卸载正在使用的当前包与相关包 重新安装一遍即可解决
  • lxc

    LXC为Linux Container的简写 Linux Container容器是一种内核 虚拟化技术 xff0c 可以提供轻量级的虚拟化 xff0c 以便隔离进程和资源 xff0c 而且不需要提供指令解释机制以及全虚拟化的其他复杂性 相当
  • 关于ros2、turtlebot3和nav2的应用总结

    关于ros2 turtlebot3和nav2的应用总结 一 资源简介 1 版本要求 ros2 foxy turtlebot3 waffle nav2 0 4 1 gazebo gazebo ros pkgs 3 5 0 zip 2 资源链接

随机推荐

  • motion_primitive_library导航源码阅读笔记

    一 motion primitive library导航源码阅读笔记 二 路径规划文献 Search based Motion Planning for Quadrotors using Linear Quadratic Minimum T
  • Linux下安装cmake步骤详解(图文)

    1 查看Linux位数 getconf LONG BIT 2 获cmake源码包 这里我先新建一个文件夹来存放cmake mkdir app cd app wget https cmake org files v3 3 cmake 3 3
  • cartographer代码流程整理

    代码解析地址 https zhuanlan zhihu com p 48010119 一 代码目录结构 1 cartographer ros 2 cartographer 二 测试命令 2D xff1a roslaunch cartogra
  • 关于ros2、webots的应用总结

    关于ros2 webots的应用总结 一 资源简介 1 版本要求 ubuntu20 04 1 ros2 foxy 2 资源链接 webots官网 xff1a http www cyberbotics com webots ros2网址 xf
  • 日常使用书签

    1 TensorFlow API 中 NCHW 与 NHWC 的区别 https blog csdn net weixin 41847115 article details 83794551 utm medium 61 distribute
  • 在ubuntu下安装opencv4.5.1详细步骤

    1 到https github com opencv opencv下载opencv4 5 1 xff0c 解压得到opencv master 2 安装依赖包 sudo apt get install build essential cmak
  • 路径规划资料

    1 RRT算法原理图解 https blog csdn net weixin 43465857 article details 96451631 2 最透彻的A 算法详解 https my oschina net u 4847229 blo
  • nav2阅读笔记

    1 机器人起始坐标是在全局地图中 xff0c 目标点也在全局地图中 xff0c 全局路径规划在全局地图完成 机器人的运动控制是在局部地图中完成 xff0c 也就是在车体坐标系下 2 无人机 自动驾驶车辆全局路径规划 局部路径规划都是在全局坐
  • 日常使用标签2

    日常使用标签2 1 CUDA入门教程 https blog csdn net luoganttcc article details 123474189
  • 人工智能概述

    目录 什么是人工智能实现人工智能的方法逻辑编程机器学习深度学习机器学习和深度学习的区别 人工智能的分类如何实现人工智能 什么是人工智能 人工智能 又被称为机器智能 xff0c 是一种综合计算机科学 统计学 语言学等多种学科 xff0c 使机
  • 2019了,转行学编程过时了吗?

    最近 xff0c 我的一篇文章 现在学Java的人都是傻子 引起了一些网友讨论 xff0c 都在说现在学Java过时了 xff0c Java市场趋于饱和了 xff0c 应该弃学Java xff0c xff0c 难道Java编程真的过时了 x
  • 什么是用户态和内核态?用户态和内核态是如何切换的?

    3 什么是用户态和内核态 xff1f 用户态和内核态是操作系统的两种运行状态 xff0c 操作系统主要是为了对访问能力进行限制 xff0c 用户态的权限较低 xff0c 而内核态的权限较高 用户态 xff1a 用户态运行的程序只能受限地访问
  • ubuntu安装Clamav

    一 简介 Clam AntiVirus是一个类UNIX系统上使用的反病毒软件包 主要应用于邮件服务器 xff0c 采用多线程后台操作 xff0c 可以自动升级病毒库 ClamAV是一个在命令行下查毒软件 xff0c 因为它不将杀毒作为主要功
  • 什么是上下文切换?

    上下文切换指的是内核操作系统的核心在CPU上对进程或者线程进行切换 搞清楚上下文切换需要先搞清楚什么是上下文 CPU在开始执行任务时需要先知道从哪里去加载任务 xff0c 从哪里开始执行 xff0c 上下文的作用就是告诉CPU这些 xff0
  • ubuntu16.04下,ROS+PX4+QGC安装

    ubuntu16 04下 xff0c ROS 43 PX4 43 QGC安装 ROS安装 xff1a 第一步 xff1a ROS安装前准备工作 1 在Ubuntu系统上 xff0c 确认git已经安装 span class token fu
  • TokenEndpoint : Handling Null Pointer Exception

    springboot oauth2 0生成token时报错 详细的日志没有打印出来 需要手动配置log 64 Override public void configure AuthorizationServerEndpointsConfig
  • linux(ubuntu)无法连接网络

    提示 xff1a 版本 xff1a ubuntu16 0 4 问题 xff1a 开机没有网络 xff0c 无法连接网络 xff0c 尝试了很多方法最终才可以 首先查看ifconfig 查看网卡信息 ifconfig 查看ip ip a 查看
  • 八皇后问题

    问题描述 在国际象棋中 xff0c 有一个非常强势的棋子 皇后 xff0c 他的走法可以在网上参考一下 xff0c 概括来说就是可以沿着行 列 与对角线平行的线走 而在计算机中有一个关于他的经典问题 xff0c 8皇后 xff0c 就是在8
  • ubuntu18.04.3如何在终端下切换到指定文件夹或根目录

    看到很多的新手 xff0c 不知道如何在终端切换到根目录的 xff0c 或者是指定的目录的 xff0c 下面介绍一下切换的方法 1 先按键盘 ctrl 43 alt 43 t 弹出终端 xff0c 那么你会看到终端上的提示当前目录为 这个就
  • MySql简单查询——单表查询

    一 DDL xff08 Data Definition Language xff09 xff1a 数据定义语言 xff0c 用来定义数据库对象 xff1a 库 表 列等 xff1b 相关字段 xff1a create drop alter