相关表:
<span style="white-space:pre">create table DEPT
(
<span style="white-space:pre"> </span>deptno int not null primary key,
<span style="white-space:pre"> </span>dname varchar(14)  null,
<span style="white-space:pre"> </span>loc varchar(13) null
) create table EMP
(
<span style="white-space:pre"> </span>empno int not null primary key,
<span style="white-space:pre"> </span>ename varchar(10) null,
<span style="white-space:pre"> </span>job varchar(9) null,
<span style="white-space:pre"> </span>mgr int null,
<span style="white-space:pre"> </span>hiredate date null,
<span style="white-space:pre"> </span>sal float null,
<span style="white-space:pre"> </span>comm float null,
<span style="white-space:pre"> </span>deptno int null foreign key references DEPT(deptno),
)
create table SALGRADE
(
<span style="white-space:pre"> </span>grade int null,
<span style="white-space:pre"> </span>losal int null,
<span style="white-space:pre"> </span>hisal int null,
)</span>
查询部分:
--查询雇员姓名的最后三个字母
SELECT SUBSTRING(ename,LEN(ename)-3,3) FROM dbo.EMP --查询10部门雇员进入公司的星期数
SELECT ename,DATEDIFF(wk,hiredate,GETDATE())AS 进入星期数 FROM dbo.EMP WHERE deptno=10 --1 查询部门30中的全部员工
SELECT * FROM dbo.EMP WHERE deptno=30 --2 列出全部办事员(CLERK)的姓名,编号和部门编号
SELECT ename , empno , deptno FROM emp WHERE job='clerk' --3 找出佣金高于薪金的员工
SELECT * FROM dbo.EMP WHERE comm>sal --求出每一个雇员的年薪 SELECT ename,sal*12+ISNULL(comm,0)*12 AS 年薪 FROM dbo.EMP --4 找出佣金高于薪金的60%的员工
SELECT * FROM dbo.EMP WHERE comm>sal*0.6 --5 找出部门10中全部经理(MANAGER)和部门20中全部办事员(CLERK)的具体资料
SELECT * FROM dbo.EMP WHERE deptno=10 AND job='manager' OR deptno=20 and job='CLERK' --6
-- 既不是经理又不是办事员但薪金大于或等于2000的全部员工的具体资料
SELECT * FROM dbo.EMP WHERE job!='manager' AND job!='clerk' AND sal>=2000 --7 找出收取佣金的员工的不同工作
SELECT DISTINCT job FROM dbo.EMP WHERE comm IS NOT NULL --8 找出不收取佣金或收取佣金低于100的员工
SELECT * FROM dbo.EMP WHERE comm IS NULL OR comm<100 --9 找出各月倒数第3天受雇的全部员工
SELECT * FROM dbo.EMP WHERE MONTH(DATEADD(DAY,3,hiredate))=MONTH(DATEADD(MONTH,1,hiredate)) --10 找出早于12年前受雇的员工
SELECT * FROM dbo.EMP WHERE DATEDIFF(YEAR,hiredate,GETDATE())>12 --11 以首字母大写的方式显示全部员工的姓名
select upper(substring(ename,1,1))+lower(substring(ename,2,len(ename)-1)) from emp; --12 显示正好为5个字符的员工的姓名
SELECT ename FROM emp WHERE LEN(ename)=5 --13 显示不带有"R"的员工的姓名
SELECT ename FROM dbo.EMP WHERE ename NOT LIKE '%R%' --14 显示全部员工的姓名的前三个字符
SELECT SUBSTRING(ename,1,3) FROM dbo.EMP --15 显示全部员工的姓名,用"a"取代全部的"A"
SELECT REPLACE(ename,'a','A') FROM dbo.EMP --16 显示满10年服务年限的员工的姓名和受雇日期
SELECT ename,hiredate FROM dbo.EMP WHERE DATEDIFF(year,hiredate,GETDATE())>10 --17 显示员工具体信息,按姓名排序
SELECT * FROM dbo.EMP ORDER BY ename --18 显示员工的姓名和受雇日期,依据其服务年限,将最老的员工排在前面
SELECT ename,hiredate FROM dbo.EMP ORDER BY DATEDIFF(year,hiredate,GETDATE()) DESC --19 显示全部员工的姓名,工作和薪金,按工作的降序排序,若工作同样则薪金排序
SELECT ename,job ,sal+ISNULL(comm,0)AS 薪金 FROM dbo.EMP order BY job ,sal+ISNULL(comm,0) --20 显示全部员工的姓名,增加公司的年份和月份,按受雇日期所在月排序,若月份同样则将
--最早年份的员工排在前面
SELECT ename,YEAR(hiredate),MONTH(hiredate) FROM dbo.EMP ORDER BY MONTH(hiredate),YEAR(hiredate) --21 显示在一个月为30天的情况,全部员工的日薪金,忽略余数
SELECT ROUND((sal+ISNULL(comm,0))/30,0) FROM dbo.EMP --22 找出在(不论什么年份的)2月受雇的全部员工
SELECT * FROM dbo.EMP WHERE MONTH(hiredate)=2 --23 对于每一个员工,显示其增加公司的天数
SELECT ename ,DATEDIFF(DAY,hiredate,GETDATE())AS 入职天数 FROM dbo.EMP --24 显示姓名字段的不论什么位置包括"A"的全部员工的姓名
SELECT ename FROM dbo.EMP WHERE ename LIKE '%A%' --25 以年月日的方式显示全部员工的服务年限(大概)
SELECT STR(ROUND(DATEDIFF(day,hiredate,GETDATE())/365,0))+'年'+
str(ROUND(DATEDIFF(day,hiredate,GETDATE())%365/30+1,0))+'月'+
STR(DATEDIFF(day,hiredate,GETDATE())%365%30)+'日' AS 服务年限 FROM dbo.EMP

SQL server语句练习的更多相关文章

  1. Oracle、Mysql、Sql Server语句的区别

    1.空值的处理——判断是否为空,为空时取一个值,不为空时取另一个值 1).Sql Server 中 ISNULL(check_expression,replacement_value) 解释:如果ch ...

  2. SQL Server 语句整理

    1. 创建数据库 create database dbName 2. 删除数据库 drop database dbName 3. 备份sql server --- 创建 备份数据的 device US ...

  3. 基本的SQL Server 语句,包含 增、删、改、查 程序员必会

    这是我以前学习时, 整理的一套基础SQL Server增.删.改.查 等语句 ,初学者可以从上往下学完. 也方便自己忘记时翻看! create database SQLschool go --批 go ...

  4. sql server语句

    一.基础1.说明:创建数据库CREATE DATABASE 数据库名2.说明:删除数据库drop database 数据库名3.说明:备份sql server--- 创建 备份数据的 deviceUS ...

  5. Sql Server语句大全

    T-SQL语句大全 --跳转到SQL myDemo USE [SQL myDemo] go --声明变量id declare @id int --为变量赋值:直接赋值 --将cid为3的cname值赋 ...

  6. 常用SQL Server 语句

       常用SQL语句大全 1.//创建数据库 CREATE DATABASE DBName 2.//删除数据库 DROP DATABASE DBName 3.//备份SQL SERVER --- 创建 ...

  7. SQL SERVER 语句大全

    ·SQL的简单查询实例教程关键词:SQL语句大全 中文网 整理编辑,经典SQL语句大全(SQL语句大总结),欢迎网友投稿 下列语句部分是Mssql语句,不可以在access中使用.SQL分类:DDL— ...

  8. 经典实用SQL Server语句大全总结(一)

    简要介绍基础语句:1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创 ...

  9. sql server 语句书写注意事项

    1  Between在某些时候比IN 2 在必要是对全局或者局部临时表创建索引,有时能够提高速度,但不是一定会这样,因为索引也耗费大量的资源.他的创建同是实际表一样 3 尽量少用视图,它的效率低.对视 ...

  10. SQL server 语句新建用户、对用户授权、删除用户实例

    Grant select on tb to db_user --给db_user用户授权 tb表 查询权限 一.命令操作 USE mydb GO --1. 新建测试用户 --1.1 添加登录用户和密码 ...

随机推荐

  1. 数据结构C语言版 弗洛伊德算法实现

    /* 数据结构C语言版 弗洛伊德算法  P191 编译环境:Dev-C++ 4.9.9.2 */ #include <stdio.h>#include <limits.h> # ...

  2. Struts2、spring2、hibernate3在SSH中各起什么作用

    简单的说: struts 控制用的 hibernate 操作数据库的 spring用解耦的 详细的说: STRUTS 在 SSH 框架中起控制的作用 , 其核心是 Controller, 即 Acti ...

  3. Chrome 快捷键

    chrome窗口和标签页快捷键: Ctrl+N 打开新窗口 Ctrl+T 打开新标签页 Ctrl+Shift+N 在隐身模式下打开新窗口 Ctrl+O,然后选择文件 在谷歌浏览器中打开计算机上的文件 ...

  4. linux eclipse中运行android AVD 错误

    当使用android的AVD时提示以下错误: Starting emulator for AVD 'NexusOne' ERROR: 32-bit Linux Android emulator bin ...

  5. Union - Find 、 Adjacency list 、 Topological sorting Template

    Find Function Optimization: After Path compression: int find(int x){ return root[x] == x ? x : (root ...

  6. IntelliJ IDEA 开发swing(二)

    原文:idea开发swing(二) 闲话少说,书接idea开发swing(一). 程序编译完成后,需要打包发布,如果有fat_jar的同学可以通过该插件打包,这里是使用ant来打包,步骤如下: 一.编 ...

  7. 高级特性(7)- 高级AWT

    7.1 绘图操作流程7.2 形状7.3 区域7.4 笔划7.5 着色7.6 坐标变换7.7 剪切7.8 透明与组合7.9 绘图提示7.10 图像的读取器和写入器 7.10.1 获得图像文件类型的读取器 ...

  8. 从 Racket 入门函数式编程

    一直想学学LISP,今天总算开了个头.如今学习LISP不是为了立就可以以用于实际项目的应用,而是为了学习一下函数式的思维方式,可以更加深入的了解计算的本质,可以更好的用C++, Java, Pytho ...

  9. BZOJ 1592: [Usaco2008 Feb]Making the Grade 路面修整( dp )

    最优的做法最后路面的高度一定是原来某一路面的高度. dp(x, t) = min{ dp(x - 1, k) } + | H[x] - h(t) | ( 1 <= k <= t ) 表示前 ...

  10. Java中二进制、十进制、十六进制及ASCII码与String及字节数组与十六进制之间的转换

    public class DigitalTrans { /** * 数字字符串转ASCII码字符串 * * @param String * 字符串 * @return ASCII字符串 */ publ ...