美文网首页
Sql server 第二课

Sql server 第二课

作者: I_Gisvity | 来源:发表于2017-03-26 16:02 被阅读0次

    --c查询3000-6000员工编号 薪水 姓名 奖金
    select * from emp
    select empno,ename,sal,comm from emp where sal <=6000 and sal >=3000

    -- between and xx 到XX之间
    -- 查询薪水在 3000-6000 之间的员工的编号 薪水 姓名 奖金
    select empno,sal,ename,comm from emp where sal between 3000 and 6000

    -- 查询2013年入职的员工信息
    select * from emp where hiredate between '2013-01-01' and '2013-12-31'

    -- 查询2012年入职的员工信息
    select *from emp where hiredate between '2012-01-01' and '2012-12-31'
    -- 查询2012年入职的工资在3000到6000之间员工信息
    select * from emp where (hiredate between '2012-01-01' and '2012-12-31') and (sal between 3000 and 6000)

    -- 查询部门编号为 2 3 4 5 的员工信息
    select * from emp where deptno = '2'or deptno = '3' or deptno = '4' or deptno = '5'
    -- in (XXX,XXX)
    select * from emp where deptno in(2,3,4,5)
    --查询2、3、5号员工信息
    select * from emp where empno in (2,3,5)
    --查询开发和财务岗位的员工信息
    select * from emp where job in ('开发','财务')

    --like
    -- 查询姓名为王芳的员工的信息
    select * from emp where ename like '王芳'

    select * from emp where ename = '王芳'

    -- 查询姓名中包含 芳 字的员工信息 %通配符
    select * from emp where ename like '%芳%'

    -- 查询姓王的员工的信息
    select * from emp where ename like '王%'

    -- 查询名字中第二个字 为 明 的员工的信息 占一个字符
    select * from emp where ename like '
    明%'
    -- 查询第三个字为明的员工信息
    select * from emp where ename like '__明%'

    --查询计算
    --查询员工的姓名,年薪,岗位
    select ename '姓名' , sal*12 '年薪',job '岗位' from emp;

    --查询员工的姓名,年收入,岗位
    select ename '姓名', sal12+comm12 '年收入',sal ,comm ,job '岗位' from emp;

    --查询员工的姓名,工资和提升10%后的工资
    select ename '姓名',sal,sal*1.1 '提升后工资' from emp

    -- isnull
    --查询员工的姓名,年收入,岗位
    select ename '姓名', isnull(sal,0)12+isnull(comm,0)12 '年收入',sal ,comm ,job '岗位' from emp;

    --查询人员姓名,工资和提升10%后的工资,如果为空,则设置为3000
    select ename,sal,isnull(sal,3000)*1.1 '提升' from emp

    -- 排序 order by xxx asc 升序 desc 降
    -- 查询人员信息,按照工资的高低排序
    select * from emp order by sal desc;

    -- 查询开发人员信息 按照奖金从低到高排序

    select * from emp where job like '开发' order by comm asc;

    --查询按照姓名升序排序
    select * from emp order by ename asc

    -- 查询开发人员信息 按照奖金从低到高排序 奖金相同的 按照工资从低到高排序
    select * from emp where job like '开发' order by comm asc , sal asc
    --查询员工信息按照薪水的降序排序,相同的按照入职时间排序
    select * from emp order by sal desc,hiredate asc
    --查询名字中有明或者小的员工,薪水在5000到9000之间的员工信息,按照薪水降序排序,相同的按照编号的降序排序
    select * from emp where (ename like '%小%' or ename like '%明%') and (sal between 1000 and 9000) order by sal desc,empno desc

    -- select 字段名 '别名', 字段名1运算 '别名' from 表名 where 条件 order by 排序

    -- lower、upper、charindex(sub,str)、left、right、substring(s,start,length)、len、replace(s,from,to)
    --lower 大写转小写
    select lower('ASaa')
    -- upper 小写转大写
    select upper('assss')
    -- charindex(sub,str) sub 在 str中的位置
    select charindex('s','asdef');
    -- left 从左边截取三个字符
    select left('asdfassss',3);
    -- right 从右边截取三个字符
    select right('asdfghjk',3);
    -- substring 从指定位置截取指定长度的字符
    select substring('asdffghdf',2,4);
    --len 字符串的长度
    select len('2222123');
    -- replace(s,from,to) 在字符串s 中 将from 换成 to
    select replace('asdfghjk','sd','');
    --查询每个人名字,名字的第一个字,最后一个字,和第二个字
    select ename,left(ename,1),right(ename,1),substring(ename,2,1) from emp
    --查询姓李的员工信息
    select * from emp where ename like '李%';
    select * from emp where left(ename,1) like '李';
    select * from emp where substring(ename,1,1) like '李'
    --查询最后名字为明的员工信息
    select * from emp where right(ename,1) like '明'
    --查询每个人的名字以及名字的长度
    select ename,len(ename) from emp
    --查询员工的姓名将刚替换成*
    select ename,replace (ename,'刚','') from emp
    select * from emp
    --作业:
    --题目: 从人员表表中查询出工资大于1600的员工的姓名和工资。
    select ename,sal from emp where sal > 1600
    --题目: 从人员表表中查询出员工号为8的员工的姓名和部门号。
    select ename,deptno,empno from emp where empno = 8
    --题目: 从人员表表中查询出在2和3号部门工作的员工姓名和员工号。
    select ename,empno,deptno from emp where deptno in (2,3)
    --题目: 从人员表表中查询出员工姓名的第三个字母是A的员工姓名。
    select ename from emp where substring(ename,3,1) like 'a'
    --题目: 查询人员表表中员工号人员编号,姓名ename,工资sal,以及工资提高百分之20%后的结果。
    select empno '编号',ename '姓名',sal '工资',sal
    1.2 '提高' from emp
    --题目: 将人员表表中的员工按姓名排序,并显示出姓名的长度。
    select len(ename),ename from emp order by ename asc
    --题目: 从人员表表中查询出所有员工的姓名ename,人员编号,以及他的管理者mgr的姓名ename和编号,并按照员工编号升序排序。
    select * from emp;
    select e.empno,e.ename,m.ename '管理者姓名', e.mgr from emp e,emp m where e.mgr = m.empno

    --题目: 从人员表表中查询出员工的姓名ename和工资数sal,条件限定为工资数必须大于1200,并对查询结果按雇用日期以降序方式进行排列。
    select ename '姓名',sal '工资数',hiredate from emp where sal > 1200 order by hiredate desc
    --题目:查询名字中有'小'的员工
    select ename from emp where ename like '%小%'
    --教师:round(x,精度)、abs、ceiling、floor、power(a,b)、rand()、round()
    --教师:abs:绝对值、ceiling:向上取整、floor:向下取整、power(a,b):a的b次方,rand():随机数
    select round(123.456,2)
    --公司按工资的三分之一缴纳保险,查询编号,姓名,工资,缴纳保险数,保留两位小数
    select empno,ename,sal,round(sal/3,2) from emp
    select abs(-100)
    select ceiling (899.567)
    select floor (899.567)
    c
    --查询8-18的随机数
    c
    --查询22-35的随机数
    --select ceiling(rand()10+12)
    select rand()
    select rand()
    10
    select ceiling(rand()*13+22)
    --教师:日期类
    --getdate()、datepart(yy,getdate())、datediff(dd,startday,endday)
    select getdate()
    select datepart(yy,getdate())
    select datepart(mm,getdate())
    select datepart(dd,getdate())
    select datepart(hh,getdate())
    select datepart(mi,getdate())
    select datediff(hh,'2000-10-01','2017-3-26')
    --查询在12年5月份入职的员工
    select * from emp where datepart(yy,hiredate) like '%12' and datepart(mm,hiredate)=5
    --查询公司中工龄在5年以上的员工,按照入职顺序升序排序
    select * from emp where datediff(yy,hiredate,getdate()) > 5 order by hiredate asc

    相关文章

      网友评论

          本文标题:Sql server 第二课

          本文链接:https://www.haomeiwen.com/subject/nujkottx.html