from在MySQL的意思_sql语句之from⼦句如何从表中查询⼀个字端的数据
lect 字段名 from 表名;
演⽰:从s_emp表中把⽉薪查询出来
lect salary from s_emp ; (分号代表结束)
如何从表中查询多个字段的内容
lect字段名1 ,字段名2 from表名;
演⽰:把s_emp表中的id first_name salary的数据查询出来
lect ID , FIRST_NAME , SALARY from s_emp ;
如何查询表中所有字段对应的值
标准写法:⼀个⼀个列出来
简单写法:*号可以代替所有的字段名(但是这样不知道⾥⾯有哪些字段)
lect * from表名;
字段的数学运算(sql的数学运算)
+ - * /
演⽰:把s_emp 表中⼯资和⼯资减去100之后的⼯资显⽰出来
lect salary , salary - 100 from s_emp ;
这样输出后,底层记录的salary是没有变化的
以salary+100算出⼀年的年薪:
lect salary , 12*(salary + 100) from s_emp ;
⼀个⽉按照22天算,计算每天的薪⽔:
lect salary , salary / 22 from s_emp ;(除数不会取整,和C不⼀样)
给字段起别名
lect字段名1 ,字段名2别名 from表名;
⼀个字段或者表达式只能有⼀个别名(也可以没有),别名会⾃动处理成⼤写
“别名”会原样显⽰所取的别名
演⽰:⼀年按照13个⽉计算 来计算每个⼈的年薪,列出每个⽉的⽉薪
lect salary , salary*13 yearsal from s_emp ;
两个别名会报错:
sql中如何表达字符串
sql中的字符串使⽤单引号表达(C⾥使⽤双引号表达字符串字⾯值)
‘ ‘ ‘ ‘ ‘a’ ‘hello world’ 都是字符串
lect first_name from s_emp ;也是字符串
如何拼接字符串
字符串拼接符:| |(只针对oracle,其他的可以查⼀下)
演⽰:
lect first_name , last_name from s_emp ;
把名字拼接到⼀起:
lect first_name || last_name name from s_emp ;
在姓名之间拼接⼀个单引号:
(在C语⾔中表达‘%’是%%,⼀个%就是占位符,%d;这⾥是⼀样的,⽤两个 ’表⽰单引号) lect first_name || ‘ ’’ ’ || last_name name from s_emp ;
在姓名之间拼接两个单引号:
lect first_name || ‘ ‘’ ’ || ‘ ‘’ ’|| last_name name from s_emp ;
或者:
lect 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)
空值处理函数:nvl ( par1 , par2 )
可以处理任何类型的数据,但要求par1和par2的类型保持⼀致
这个函数,当par1为空时,返回par2的值;par1不为NULL时,返回par1的值
NULL要尽早处理
演⽰:
lect salary , commission_pct , nvl ( salary*12*(1+commission_pct/100) , 0 ) from s_emp ;
是不⾏的,要尽早处理,不能等着运算完再处理
正确写法:
lect salary , commission_pct , salary*12*(1+nvl ( commission_pct , 0 ) /100) from s_emp ;
演⽰:把每个员⼯的id first_name manager_id显⽰出来,如果manager_id是NULL,就把manager_id显⽰成-1 lect id, first_name, manager_id, nvl(manager_id, -1)
数据的排重 distinct(封装的算法我们不⽤了解)
dstinct会把所有重复的数据剔除
联合排重(多字段排重,要两个字段都相同的才会剔除)
演⽰:
lect salary from s_emp ; 查出所有薪⽔
lect distinct salary from s_emp ; 把重复的剔除
lect distinct title , salary from s_emp ;联合排重