当前位置: 首页 > news >正文

【SQL学习进阶】从入门到高级应用(二)

文章目录

  • 简单查询
    • 查一个字段
    • 查多个字段
    • 查所有字段
    • 查询时字段可参与数学运算
    • 查询时字段可起别名
      • as关键字
      • 省略as关键字
      • 别名中有空格
      • 别名中有中文

🌈你好呀!我是 山顶风景独好
💝欢迎来到我的博客,很高兴能够在这里和您见面!
💝希望您在这里可以感受到一份轻松愉快的氛围!
💝不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
🚀 欢迎一起踏上探险之旅,挖掘无限可能,共同成长!

欢迎大家订阅本专栏!本专栏旨在为SQL初学者提供一条逐步迈向高级应用的学习之路,带您从零开始,一步一步练习,逐步掌握SQL的精髓,实现技能的提升与飞跃!

上一篇:【SQL学习进阶】从入门到高级应用(一)

简单查询


查询是SQL语言的核心,用于表达SQL查询的select查询命令是功能最强也是最为复杂的SQL语句,它的作用就是从数据库中检索数据,并将查询结果返回给用户。 select语句由:select子句(查询内容)、from子句(查询对象)、where子句(查询条件)、order by子句(排序方式)、group by子句(分组方式)等组成。查询语句属于SQL语句中的DQL语句,是所有SQL语句中最为复杂也是最重要的语句,所以必须掌握。接下来我们先从简单查询语句开始学习。

查一个字段


查询一个字段说的是:一个表有多列,查询其中的一列。
语法格式:select 字段名 from 表名;

  • select和from是关键字,不能随便写
  • 一条SQL语句必须以“;”结尾
  • 对于SQL语句来说,大小写都可以
  • 字段名和表名属于标识符,按照表的实际情况填写,不知道字段名的,可以使用desc命令查看表结构

案例1:查询公司中所有员工编号

select empno from emp; 

image.png
案例2:查询公司中所有员工姓名

SELECT ENAME FROM EMP;

image.png
在mysql命令行客户端中,sql语句没有分号是不会执行的:
image.png
末尾加上“;”就执行了:
image.png
以上sql虽然以分号结尾之后执行了,但是报错了,错误信息显示:语法错误。
假设一个SQL语句在书写过程中出错了,怎么终止这条SQL呢?\c
image.png

  • 任务1:查询所有部门名称。
  • 任务2:查询所有薪资等级。

查多个字段


查询多个字段时,在字段名和字段名之间添加“,”即可。
语法格式:select 字段名1,字段名2,字段名3 from 表名;
案例1:查询员工编号以及员工姓名。

select empno, ename from emp;

image.png

字段的前后顺序无所谓(只是显示结果列的时候顺序变了):

select ename, empno from emp;

image.png

  • 任务1:查询部门编号、部门名称以及位置。
  • 任务2:查询员工的名字以及工作岗位。

查所有字段


查询所有字段的可以将每个字段都列出来查询,也可以采用“*”来代表所有字段
案例1:查询员工的所有信息

select * from emp;

image.png
案例2:查询所有部门信息

select * from dept;

image.png
采用“*”进行查询存在的缺点:

  • select * from dept; 在执行的时候会被解析为 select DEPTNO, DNAME, LOC from dept; 再执行,所以这种效率方面弱一些。
  • 采用“”的可读性较差,通过“”很难看出都有哪些具体的字段。

什么时候使用“*”?

  • 这个SQL语句不在项目编码中使用,如果平时自己想快速查看表中所有数据的话,这种写法还是很给力的。

  • 任务1:查询所有的薪资等级以及每个薪资等级的最低工资和最高工资。

查询时字段可参与数学运算


在进行查询操作的时候,字段是可以参与数学运算的,例如加减乘除等。
案例1:查询每个员工的月薪

select ename, sal from emp;

image.png
案例2:查询每个员工的年薪(月薪 * 12)

select ename, sal * 12 from emp;

image.png

  • 任务1:查询每个员工月薪加1000之后的月薪
  • 任务2:查询每个员工月薪加1000之后的年薪

查询时字段可起别名


我们借用一下之前的SQL语句

select ename, sal * 12 from emp;

image.png
以上的查询结果列名“sal * 12”可读性较差,是否可以给查询结果的列名进行重命名呢?

as关键字

  • 使用as关键字
select ename, sal * 12 as yearsal from emp;

image.png
通过as关键字起别名后,查询结果列显示yearsal,可读性增强。

省略as关键字

  • 其实as关键字可以省略,只要使用空格即可
select ename, sal * 12 yearsal from emp;

image.png

  • 通过以上测试,得知as可以省略,可以使用空格代替as,但如果别名中有空格呢?

别名中有空格

select ename, sal * 12 year sal from emp;

image.png
可以看出,执行报错了,说语法有问题,这是为什么?分析一下:SQL语句编译器在检查该语句的时候,在year后面遇到了空格,会继续找from关键字,但year后面不是from关键字,所以编译器报错了。怎么解决这个问题?记住:如果别名中有空格的话,可以将这个别名使用双引号或者单引号将其括起来。

select ename, sal * 12 "year sal" from emp;
select ename, sal * 12 'year sal' from emp;

image.png
在mysql中,字符串既可以使用双引号也可以使用单引号,但还是建议使用单引号,因为单引号属于标准SQL。

别名中有中文

  • 如果别名采用中文呢?
select ename, sal * 12 年薪 from emp;

image.png
别名是中文是可以的,但是对于低版本的mysql来说会报错,需要添加双引号或单引号。我们当前使用的mysql版本是:8.0.24

  • 任务:查询所有员工的信息,要求每个字段名采用中文显示。
http://www.lryc.cn/news/356334.html

相关文章:

  • FL Studio v21.2.3.4004中文破解版百度网盘下载
  • 从0开始写一个环境保护网站的第3天(JAVAWEB)
  • Java中volatile关键字
  • 医院挂号就诊系统的设计与实现
  • SpringBoot整合RabbitMQ的快速使用教程
  • pytorch比较操作
  • 2024年4月—马克思主义基本原理概论真题及答案解析(上海自考)
  • 「Element-UI表头添加带Icon的提示信息」
  • 单细胞 10X 和seurat对象学习
  • Flutter 中的 Flex 小部件:全面指南
  • 统计每个活动的用户访问量,且每个用户仅统计一次
  • 基于SpringBoot的本科生考研率统计系统
  • JMeter正则表达式提取器和JSON提取器基础用法,小白必会!
  • 5-26作业
  • 2024.05.28学习记录
  • 撤销最近一次的提交,使用git revert 和 git reset的区别
  • MySQL详细安装、配置过程,多图,详解
  • 音视频学习规划
  • 代码随想录算法训练营第21天|● 530.二叉搜索树的最小绝对差 ● 501.二叉搜索树中的众数 ● 236. 二叉树的最近公共祖先
  • K8S中Prometheus+Grafana监控
  • 题解:CF1968F(Equal XOR Segments)
  • Python操作MySQL实战
  • 【Linux系统】进程间通信
  • 北大国际医院腹膜后纤维化课题组 多学科协作开辟治疗新径
  • 面试数据库八股文十问十答第七期
  • 【C++题解】1133. 字符串的反码
  • 【Python编程实战】基于Python语言实现学生信息管理系统
  • AI网络爬虫:批量爬取电视猫上面的《庆余年》分集剧情
  • md5强弱碰撞
  • 【Docker故障处理篇】运行容器报错“docker: failed to register layer...file exists.”解决方法