from在MySQL的意思_sql语句之from子句

如何从表中查询一个字端的数据

select  字段名  from  表名;

演示:从s_emp表中把月薪查询出来

select salary from s_emp ; (分号代表结束)

fc2c99f4ebd307b6b55dd406dd9645ce.png

如何从表中查询多个字段的内容

select字段名1 ,字段名2  from表名;

演示:把s_emp表中的id  first_name salary的数据查询出来

select ID , FIRST_NAME , SALARY from s_emp ;

3174814ebe8da25969554a67b2aa4b95.png

如何查询表中所有字段对应的值

标准写法:一个一个列出来

简单写法:*号可以代替所有的字段名(但是这样不知道里面有哪些字段)

select *  from表名;

字段的数学运算(sql的数学运算)

+ -  *  /

演示:把s_emp 表中工资和工资减去100之后的工资显示出来

select salary , salary - 100 from s_emp ;

ef212f1c203c956f473763479488ae56.png

这样输出后,底层记录的salary是没有变化的

以salary+100算出一年的年薪:

select salary , 12*(salary + 100) from s_emp ;

一个月按照22天算,计算每天的薪水:

select salary , salary / 22 from s_emp ;(除数不会取整,和C不一样)

6ae4b59fe753535b562e1e179ccb48a6.png

给字段起别名

select字段名1 ,字段名2别名  from表名;

一个字段或者表达式只能有一个别名(也可以没有),别名会自动处理成大写

“别名”会原样显示所取的别名

演示:一年按照13个月计算  来计算每个人的年薪,列出每个月的月薪

select salary , salary*13 yearsal from s_emp ;

1bfbc6e72d839ffe2aea45135404ebb0.png

两个别名会报错:

1cfaf5cf4ed29ebfbbcf80e095a700f5.png

3d3534f081953886a353906a53f6a127.png

sql中如何表达字符串

sql中的字符串使用单引号表达(C里使用双引号表达字符串字面值)

‘ ‘   ‘  ‘   ‘a’  ‘hello world’ 都是字符串

select first_name from s_emp ;也是字符串

如何拼接字符串

字符串拼接符:| |(只针对oracle,其他的可以查一下)

演示:

select first_name , last_name from s_emp ;

a771df4ac5b6e83d8971cc4c3ac7def5.png

把名字拼接到一起:

select first_name || last_name name from s_emp ;

d21b8728f2b36ea2147acf753ab10b45.png

在姓名之间拼接一个单引号:

(在C语言中表达‘%’是%%,一个%就是占位符,%d;这里是一样的,用两个 ’表示单引号)

select first_name || ‘ ’’ ’ || last_name name from s_emp ;

af3143f626d1cc1287fadca45e5770be.png

在姓名之间拼接两个单引号:

select first_name || ‘ ‘’ ’ || ‘ ‘’ ’|| last_name name from s_emp ;

或者:

select first_name || ‘ ‘’ ‘’ ’ || last_name name from s_emp ;

空值(NULL值)的处理

空值(NULL值)和任何值做运算结果都是NULL

演示:一年按照12个月进行计算,考虑提成,总共的年薪是月薪乘以12,再加上提成(表中已有的的提成是COMMISSION_PCT)

salary*12+salary*12*(COMMISSION_PCT / 100)

或者:

salary*12*(1+COMMISSION_PCT / 100)

141af39ee09d097d8a26f7ee0d755a42.png

空值处理函数:nvl ( par1 , par2 )

可以处理任何类型的数据,但要求par1和par2的类型保持一致

这个函数,当par1为空时,返回par2的值;par1不为NULL时,返回par1的值

NULL要尽早处理

演示:

select salary , commission_pct , nvl ( salary*12*(1+commission_pct/100) , 0 ) from s_emp ;

是不行的,要尽早处理,不能等着运算完再处理

791001d1ac41fc46fcac162a98f73cb3.png

正确写法:

select salary , commission_pct , salary*12*(1+nvl ( commission_pct , 0 ) /100) from s_emp ;

55a69a58c477fa352792746972c2a90c.png

演示:把每个员工的id  first_name manager_id显示出来,如果manager_id是NULL,就把manager_id显示成-1

select id, first_name, manager_id, nvl(manager_id, -1)

3d0c311c57d246655141ce26b20eb3c0.png

数据的排重  distinct(封装的算法我们不用了解)

dstinct会把所有重复的数据剔除

联合排重(多字段排重,要两个字段都相同的才会剔除)

演示:

select salary from s_emp ; 查出所有薪水

819879f049bd7262560001a27f625f0f.png

select distinct salary from s_emp ; 把重复的剔除

89d44ce89602b8485898cbeb7930b522.png

ed600340104879438951337b9e6aac47.png

select distinct title , salary from s_emp ;联合排重

9730e5d14b37d95a20db5e7aaed55061.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值