【SQL基础语法复习记录】

目录

一、select 、from

【标准语法】 

 【例题】

1、查找单列:

2、查找多列:

3、查找全部列:

4、查找列并将查找的字段重命名:

5、在select后加入distinct对重复数据去重:

6、select中计算字段的运用:

 二、where:

【标准语法】

 【例题】

1、查询工资大于2000的员工信息:

2、查询职位是SALESMAN的员工信息:

3、查询部门号为20和30的员工姓名:

 4、查询工资在1000到3000的员工信息:

5、查询名字中含有A的员工信息:

 6、查询名字第三位是A的员工信息:

 7、查询名字倒数第二个字母是E的员工信息:

 8、查询1980年之后入职的除了职位是 SALESMAN以外的其他员工的信息:

 9、查询1980年之后入职的除了职位是 SALESMAN和CLERK以外的其他员工的信息:

 三、order by:

【标准语法】

【例题】 

查询职位是CLERK的员工信息,并按照入职时间先后排序:

四、limit:

【标准语法】

【例题】 

查询工资最高的三个人的员工信息:

 五、聚合函数和group by:

【group by 标准语法】

【例题】 

1、查询职位是CLERK员工的平均工资:

 2、计算emp表的行数:

 3、查找每个职位员工人数及平均工资:

六、having:

【标准语法】

【例题】

 七、其他常见函数:


一、select 、from

【标准语法】 

select 字段名 -- 决定这一段查询最后显示的字段
from 表名;-- 指定这段查询语句涉及的数据来源

这是一段查询语句中必不可少的两个核心语句,select和from分别是两个核心语句中的关键字,select和from关键字后要添加空格再输入其他内容。

  • 当从单表中查询多列,在select后指定要查询的字段名称时多个字段之间用英文逗号,隔开,最后一个字段后不需要加逗号。查询结果的字段顺序按照select后的字段名顺序显示。
  • SQL语句不区分大小写,select和SELECT完全相同。(有的数据库中会将关键字做标色高亮处理,但是语法没错)
  • 一段标准的查询语句的最后应该添加英文分号;向数据库声明这一段查询的语句已经结束。(但是现在有的数据库管理工具比较智能,不写仍然能正常运行)为了养成好习惯,最好还是写上。

 【例题】

1、查找单列:

select ename from emp;

 

2、查找多列:

select empno,ename,sal from emp;

3、查找全部列:

select * from emp;

select和星号*通配符联用返回查询表中所有列,返回的所有列的显示顺序按照定义表时的顺序显示。

4、查找列并将查找的字段重命名:

select empno as 员工编号,ename as 员工姓名,sal as 员工工资 from emp;

 

  •  select核心语句中,在字段后加as别名,可以给字段名在最后显示前赋予别名。
  • 注意要在as前后加空格。
  • 这个别名不会修改这个字段在数据库表中的原名,仅影响最后的显示。
  • as可以省略,学成字段名 别名,注意字段名和别名之间有空格,别名和下一个字段名之间为逗号。

5、在select后加入distinct对重复数据去重:

例:现有一个学生表t_student:

取姓名列并进行去重工作。

select distinct sname from t_student;

  • 在select核心语句中加distinct关键字,可以对最后显示的数据去重。
  • 在select distinct后加多个字段时,是对重复的行数据进行去重。
  • 将distinct放在第二个字段时会出现语法错误,因为显示多个字段时distinct无法对单一字段去重,只对这几个字段组成的行数据去重,distinct本质是加在select后而不是字段前。

6、select中计算字段的运用:

在select核心语句中,可以对数据库中有的字段进行计算形成新的字段,字段计算得到的每行数据仅涉及当前行,不会行与行之间交叉计算。加减乘除运算都可以,字段必须是数值才可以。 

例:有员工工资表emp_sal,表中包含员工的工资和奖金,先求实发工资(工资+奖金) :

select *,salary+comm from emp_sal;

 二、where:

【标准语法】

select 字段名 -- 决定这一段查询最后显示的字段
from 表名 -- 指定这段查询语句涉及的数据来源
where 表达句;-- where 表达句限定查询行必须满足的条件

where核心子句是可选项,使用该子句是为了通过表达式筛选出符合查询条件的行数据。

where表达式中最常用的是运算符,where表达式中运算符标准语法:

select 字段名 
from 表名 
where 字段名 运算符 值;

  • 在寻找字段值等于某个值时,使用等于号=,这里的值不是一个数字,而是字符串,要用英文单引号''括起来,数字不需要。
  • 可以使用and或者or逻辑运算符对多个条件进行组合筛选得到想要的数据,and的优先级高于or。如需要先运行or再运行and,可以使用括号()来标记优先运行的部分。正常情况也可以用括号括起,来便于阅读,也能避免条件逻辑错误。

where子句的表达式中除了使用运算符来进行条件判断,还可以使用like操作符组合通配符进行模糊查询,模糊查询标准语法:

select 字段名 
from 表名 
where 字段名 like'通配符+字符';
  • 通配符用来匹配值的一部分,跟着like后面进行数据过滤,常用的通配符有%(表示任意字符出现任意次)和_(表示任意字符出现一次),%用来匹配多个字符,可以是0个、1个、多个字符;_仅能用来匹配单个字符。
  • 指定几个字符时就使用几个通配符_来代替要求的字符数,没有指定字符数时使用通配符%;like后的字符和通配符的组合表达式需要用英文单引号''括起来。

 【例题】

1、查询工资大于2000的员工信息:

select * 
from emp
where sal>2000;

 

2、查询职位是SALESMAN的员工信息:

select * 
fr
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一定能学会!!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值