首页 > 数据库 >MySQL(DQL)

MySQL(DQL)

时间:2024-08-15 09:54:23浏览次数:7  
标签:salary name emp MySQL DQL table 数据 select

一,SQL语言分类

(1)数据查询语言(DQL:Data Query Language)其语句,也称为 “数据检索语句”,用以从表中获得数据,确定数据怎样在应用程 序给出。关键字 SELECT 是 DQL(也是所有 SQL)用得最多的 动词。

  • SELECT
  • FROM
  • WHERE
  • ORDER BY
  • HAVING

 (2)数据操作语言(DML:Data Manipulation Language)其语句 包括动词 INSERT,UPDATE 和 DELETE。它们分别用于添加, 修改和删除表中的行。

  • INSERT:添加数据
  • UPDATE:更新数据
  • DELETE:删除数据

(3) 数据定义语言(DDL:Data Definition Language)定义数据库 对象语言,其语句包括动词 CREATE 和 DROP 等。

  • CREATE:创建数据库对象
  • ALTER:修改数据库对象
  • DROP:删除数据库对象

(4 )数据控制语言(DCL:Data Control Language)它的语句通过 GRANT 或 REVOKE 获得许可,确定用户对数据库对象的访问。 GRANT:授予用户某种权限 REVOKE:回收授予的某种权限

  • COMMIT:提交事务
  • ROLLBACK:回滚事务
  • SAVEPOINT:设置回滚点

 ps:数据库语言不区分大小写,可以单行多行书写,结尾以分号结尾

二,DQL

(1)SELECT

<1>SELECT

SELECT (DISTINCT可选)*(全部列) or column name (alias) FROM table_name WHERE conditions; 

 

一般来说,SELECT一般都带上FROM和WHERE关键词,条件往后稍稍,首先我们可以对选出的列进行运算,取别名的操作。

 在select后,我们可以使用*(通配符)来选择所有列,也可以直接选中某一列(column_name)

其中,可以使用DISTINCT修饰词来去除掉相同的数据,最后可以根据情况来取别名(比如对所选列进行了一系列运算后使得列名称难以得到含义:月薪一列进行乘以12后用年薪别名来取代月薪*12这个列名)。

以下以查询工号,员工名,月薪,年薪,总收入为例:

select employee_ID,employee_name,salary,salary*12 (as) year_salary,salary*12 + extra_salary as income from employees as emp; 

查询中的算术表达式,可以采用加减乘除:

 

<2>FROM

FROM后写入查询目标表名,以逗号隔开,支持取别名:

select * from table_1 t1,table_2 t2 where t1.name = "Jack" and t2.department_id = 11;

以上语句意思为在table_1和table_2中找到名字为jack并且部门号为11的数据。

<3>WHERE 

WHERE后写入查询条件,有三大类:一为比较运算,二为逻辑运算,三为其他条件。

比较运算:

不等于也可以用 != 来表示。

 

逻辑运算:

这个更加简单:AND/OR/NOT

 逻辑运算是用来连接不同条件的,其中AND时条件的交集,OR为条件的并集,NOT为条件的补集。

 

其他条件: 

between...and..前者为数值下限,后者为上限。

select * from table where salary between min_salary and max_salary;

in 

select employee_id,last_name,salary from employees where salary in(5000,6000,8000);

like是用来匹配字符串的,相较于其他三个更难一些:

%表示零个或多个字符

_表示一个字符

“%s%”表示匹配含有“s”的字符串。

""__123__""表示匹配以这种特定方式摆放的7位数。

is null:

判断是否为空值

综合案例:

select emp.last_name,emp.employee_id,emp.salary from employees as emp 
where emp.last_name like "%sa%" and emp.salary between 5000 and 7000 
and emp.department_id in (1,2,3);

即找出employees表中员工姓名(emp.last_name)含有"sa"并且工资在5000到7000并且部门ID在1,2,3之间的数据的姓名,id,工资列。 

(2)ORDER BY

ORDER  BY 语句只要存在,那么就是放在最后。单列排序很简单,按需求来就可以了。

多列排序需要注意的是 按列的顺序来排序,比如a列升序,那么b列会在a列排序的基础上对a列相同数据来进行自己的排序而不会打乱a的排序。

(3)HAVING

HAVING是对GROUP进行筛选的,group可以认为通过某一列的相同值来划分数据为一个一个组,比如工资列中3000-5000的为一组,5000-7000为一组,这就是group by salary,而HAVING就是在划分组后再次对组进行筛选。因为组内元素一般为复数,所以一般通过多行(聚合)函数来进行处理。

标签:salary,name,emp,MySQL,DQL,table,数据,select
From: https://blog.csdn.net/ma_no_lo/article/details/141202015

相关文章

  • 如何解决MySQL主从复制延时问题
    MySQL主从复制是面试中不可避开的重要一环,里面的知识点虽然基础,但是能回答全的同学不多,今天我们再来老生常谈一下。本文全文内容如下。  1.MySQL主从1.1什么是MySQL主从?MySQL主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点。MySQL......
  • java语言,MySQL数据库;电影推荐网站 30760(免费领源码)计算机毕业设计项目推荐万套实战教
    摘 要随着互联网时代的到来,同时计算机网络技术高速发展,网络管理运用也变得越来越广泛。因此,建立一个B/S结构的电影推荐网站;电影推荐网站的管理工作系统化、规范化,也会提高平台形象,提高管理效率。本电影推荐网站是针对目前电影推荐网站的实际需求,从实际工作出发,对过去的电影......
  • java语言,MySQL数据库;基于Web的高校知识共享系统设计与实现 32050(免费领源码)计算机毕业
    摘 要信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对高校知识共享系统等问题,对高校知识共享系统进行研究分析,然后开发设计出高校知识共享系统以......
  • java语言,MySQL数据库;23825基于java的员工考勤系统(免费领源码)计算机毕业设计项目推荐万
    摘 要由于数据库和数据仓库技术的快速发展,员工考勤系统建设越来越向模块化、智能化、自我服务和管理科学化的方向发展。考勤管理系统对处理对象和服务对象,自身的系统结构,处理能力,都将适应技术发展的要求发生重大的变化。员工考勤系统除了具有共享系统的全部功能以外,能通过......
  • MySQL6 嵌套查询、子查询、自关联查询、SQL函数
    嵌套查询(子查询)基本概念:一个查询语句(外部查询)中包含了另一个查询语句(子查询)select列名1,列名2....from表1,表2where条件条件表达式(子查询语句)子查询被当作一个单元来执行,它先于外部查询执行,其结果可以被外部查询使用。子查询的结果通常被看作是一个临时表,外......
  • 成为MySQL DBA后,再看ORACLE数据库(十四、统计信息与执行计划)
    一、前言一条SQL到达数据库内核之后,会解析为一条逻辑执行计划,CBO优化器对逻辑计划进行改写和转换,生成多个物理执行计划。为SQL构造出搜索空间,根据数据的统计信息、基数估计、算子代价模型为搜索空间中的执行计划估算出执行所需要的代价(CPU、内存、网络、I/O等资源消耗),最终选出代......
  • MySQL-2:数据库基础知识(50%-100%)
    目录前言一、SQL语言基础1.SQL语言简介2.SQL分类3.SELECT语句的使用4.INSERT语句的使用5.UPDATE语句的使用6.DELETE语句的使用二、基本查询1.WHERE子句的使用2.ORDERBY子句的使用3.GROUPBY和HAVING子句使用4.LIMIT子句的使用总结前言前一半MySQL-1:数据库......
  • MySQL数据库专栏(三)数据库服务维护操作
    1、界面维护,打开服务窗口找到MySQL服务,右键单击可对服务进行启动、停止、重启等操作。选择属性,还可以设置启动类型为自动、手动、禁用。2、指令维护卸载服务:scdelete [服务名称]例如:scdeleteMySQL启动服务:netstart[服务名称]例如:netstartMySQL停止服务:netsto......
  • 云计算课程设计(Prometheus+grafana+Flume+ganglia+mysql+jdk)
    一、准备环境prometheus下载地址:https://github.com/prometheus/prometheus/releases/download/v2.52.0-rc.1/prometheus-2.52.0-rc.1.windows-amd64.zipgrafana下载地址:https://dl.grafana.com/enterprise/release/grafana-enterprise-10.4.2.windows-amd64.zip......
  • 第一阶段复习 --Python、Linux、Shell、MySQL
    文章目录第一阶段复习总结python1.python是面向对象的解释型动态数据语言的高级程序设计语言2.变量3.基础数据类型4.数据类型之间的转换5.str类型字符串方法序列6.运算符7.选择循环结构8.数据容器9.函数参数10.类11.正则12.文件读写13.异常处理tryexc......