sqlserver 人名_SQLserver运维必备:T-SQL语句练习

-------谢谢您的参考,如有疑问,欢迎交流

案例一:表如下图所示

5cbe8441888f9728f84827c208f7ab1b.png

实验需求:

1.在products表中查询出厂日期晚于2014年4月的水果信息

语句:select * from products where 出厂日期>'2014-04-30' and 种类='水果'

2.在products表中分组查询所有水果、蔬菜、坚果的总成本

语句:select 种类,SUM(成本) as 总成本from products  group by 种类

3.在products表中查询所有水果的信息,并按照成本从高到低的顺序显示结果

语句:select * from products where 种类='水果'  order by 成本 desc

4.在products表中查询成本在1—5元之间的蔬菜信息

语句:select * from products  where 种类='蔬菜'  and 成本 between 1  and  5

5.将products表中所有水果的名称、种类和出厂日期信息插入到新表products_new中

语句:select 名称,种类,出厂日期 intoproducts_new  from products where 种类='水果'

select*

fromproducts

where出厂日期>='2011-04-01'and种类='水果'

selectSUM(成本)as总成本,种类

fromproducts

groupby种类

select*

fromproducts

where种类='水果'

orderby成本desc.

select*

fromproducts

where种类='蔬菜'and成本between '1' and'5'

select名称,种类,出厂日期

intoproducts_new

fromproducts

where种类='水果'

案例二:表如下图所示

75b18b7e6b655456206eae3d779cae0e.gif

80338e21a0b6d03ef1ed2f119a71c1cb.png

实验需求:

1、在products表和sales表中查询产品的名称、种类、成本、销售地点和销售价格。

语句:select products.名称,products.种类,products.成本,sales.销售地点,sales.销售价格

From  products,sales

Where products.名称=sales.名称

或者:select a.名称,a.种类,a.成本,b.销售地点,b.销售价格

From  products as a  inner join sales as b  on  a.名称=b.名称

2、在products表和sales表中查询销往海南的产品名称、种类、成本和销售价格。

语句:select products.名称,products.种类,products.成本,sales.销售价格

From products,sales

Where products.名称=sales.名称 and 销售地点=’海南’

selectproducts.名称,products.种类,products.成本,sales.销售价格,sales.销售地点

fromproducts inner join sales

onproducts.名称=sales.名称

selectproducts.名称,products.种类,products.成本,sales.销售价格,sales.销售地点

fromproducts inner join sales

onproducts.名称=sales.名称

where销售地点='海南'

案例三:表如下图所示

fe8ddc3fb4f506bf86b83f30a0e5080d.png

实验需求:

1、查询王明的成绩?结果:王明 90

Select 姓名,成绩  from  student where 姓名=’王明’

2、给王明加2分?

Update student set 成绩=成绩+2  where 姓名=’王明’

3、查询备注不为空的学生?

Select *  from  student where 备注  is not null

4、查询成绩大于95分以上的学生?

Select *  from  student where 成绩>95

5、王明转学,把王明删掉?

Delete from student  where 姓名=‘王明’

6、来了一位新同学,名字叫于美丽?

Insert into student  values(20,’于美丽’,’110110110’,3,100,’勤奋好学’)

7、查询成绩大于95分,并且班级是2班的都有谁?

Select * from student  where 成绩>95 and 所在班级=2

8、查询成绩大于95分,并且班级是1、2班的都有谁?

Select * from student  where 成绩>95 and 所在班级 between1  and 2

9、查询平均成绩?

Select avg(成绩) as 平均成绩  from student

10、使用truncate删除所有的数据

Truncate table  student

select成绩

from[student-1]

where姓名='王明'

update[student-1]

set成绩=成绩+2

where姓名='王明'

select*

from[student-1]

where备注is not null

select*

from[student-1]

where成绩>'95'

delete

from[student-1]

where姓名='王明'

insertinto [student-1]

(姓名)values('于美丽')

select*

from[student-1]

where成绩>='95'and所在班级='2'

select*

from[student-1]

where成绩>='95'and所在班级between '1' and'2'

selectAVG(成绩)as平均成绩

from[student-1]

truncatetable Student

实验案例四:表如下图所示

2c1fe3e755c362d8fbb9416001da709c.png

实验需求:

1、显示表中全部内容

select * from员工信息表

2、显示工资大于5000员工的所有信息

select * from员工信息表

where工资>=5000

3、显示所有在1950到1988年之间出生员工的所有信息

select * from员工信息表

where出生日期>='1950'and 出生日期<='1988'

4、查询出所有住在昌平的员工

select * from员工信息表

where家庭住址 like '%昌平%'

5、所有销售员的工资涨幅1000

update员工信息表

set工资=工资+1000

where职位='销售员'

6、删除工资小于3000员工的记录

delete from员工信息表

where工资<=3000

7、所有经理的工资下调10%

update员工信息表

set工资=工资*0.9

where职位 like '%经理'

select*

from员工信息表

select*

from员工信息表

where工资>='5000'

select*

from员工信息表

where出生日期between '1950' and'1988'

select*

from员工信息表

where职位like '%经理%'

update员工信息表

set工资=工资+1000

where职位='销售员'

delete

from员工信息表

where工资

update员工信息表

set工资=工资*0.9

where职位like '%经理'

案例五:表如下图所示

506dfe8932bd29b54b0a118d799e5085.png

1、查询年龄大于35,小于 50,并且职位是员工?

语句:select * from 员工信息表

where 年龄>35 and 年龄<50 and 职位='员工'

2、查询员工的平均年龄?

语句:select AVG(年龄) as 平均年龄  from 员工信息表

3、查询各种职位的平均年龄,并且按照每种职位的平均年龄降序排序?

语句:select 职位,AVG(年龄) as 平均年龄  from 员工信息表

group by 职位

order by AVG(年龄) desc

4、查询年龄最大和最小的人是谁?

语句:select 员工姓名,年龄 from 员工信息表

where 年龄=(select MAX(年龄)

from 员工信息表)

5、查询每种职位有多少人?并且按每种职位的人数升序排序?

语句:select 职位,COUNT(员工id) as 人数

from 员工信息表

group by 职位

6、查询年龄大于等于50岁和小于30岁的都有哪些人?

语句:select * from 员工信息表

where年龄>=50 or 年龄<30

select*

from[员工信息表-2]

where职位='员工'and年龄between '35' and'50'

selectAVG(年龄)as平均年龄

from[员工信息表-2]

selectAVG(年龄)as平均年龄,职位

from[员工信息表-2]

groupby职位

orderby AVG(年龄)desc

select年龄,员工姓名

from[员工信息表-2]

where年龄=(select MAX(年龄)from [员工信息表-2])

or年龄=(select MIN(年龄)from [员工信息表-2])

selectCOUNT(职位)as人数,职位

from[员工信息表-2]

groupby职位

orderby  COUNT(职位)asc

select*

from[员工信息表-2]

where年龄>='50'or年龄<='30'

案例六:表如下图所示

dc487b58d5b29c2117cbaaf2b9c0571e.png

ab80db1145f43d82e6a9a4789bc0ae2f.png

3a776d5cc089873e0bb758e47b705199.png

1068b4e2df3c40d4ea2d91a8e821779b.png

3124e66bcfa5cfe5ee357ba9106f7a3f.png

da0862e1cc16db517eadfee2aafb2900.png

5b92e940b3619a86c2f474b93cf1a06e.png

260f8f265d74927cb3b7e9562364a116.png

9a4906852e83e26a2a7c5e5fa39cb935.png

907023deeeeda9e4de77f2ff712ebb61.png

e2653c40e0421ee478cbdfe5069834ae.png

实验需求:

1、两个表查询

select 学生表.姓名,学生表1.电话,学生表1.家庭住址

from 学生表,学生表1

where 学生表.学生id=学生表1.学生id

2、三个表的查询

select 学生表.姓名,课程表.课程名,成绩表.分数

from 学生表,课程表,成绩表

where 学生表.学生id=成绩表.学生id AND 成绩表.课程ID=课程表.课程ID

3、合并两个结果集

SELECT 姓名,学号,班级,国籍

FROM 二班

UNION

select 姓+' '+名,学号,班级,国籍

from 一班

order by 班级 desc,学号 asc

4、内联接(查找参加考试的学生的姓名和CNT成绩,电话)

select s.姓名,s.电话,c.CNT

FROM 学生基本信息表 AS S INNER JOIN 学生成绩表 AS C

ON S.姓名=C.姓名

5、左外连接(查找本班学生的姓名和CNT才成绩,电话)

select s.姓名,s.电话,c.CNT

FROM 学生基本信息表 AS S LEFT OUTER  JOIN 学生成绩表 AS C

ON S.姓名=C.姓名

6、右外连接(查找参加本次考试的学生的姓名和CNT才成绩,电话)

select s.姓名,s.电话,c.CNT

FROM 学生基本信息表 AS S RIGHT OUTER JOIN 学生成绩表 AS C

ON S.姓名=C.姓名

7、完全连接(查找所有学生的考试情况)

select s.姓名,s.电话,c.CNT

FROM 学生基本信息表 AS S FULL OUTER JOIN 学生成绩表 AS C

ON S.姓名=C.姓名

8、自连接(查找每个员工的上司姓名)

SELECT Y.员工姓名,s.员工姓名 AS 上司姓名

from 员工信息表 as y inner join 员工信息表 as s

on y.上司ID=S.员工ID

9、子查询(查找每个季度的生产数量,百分比)

select 季度,sum(生产数量) AS 每个季度的生产数量,

str((sum(生产数量)/(select sum(生产数量) from 生产表))*100)+'%' AS 百分比

from 生产表

group by 季度

order by 季度

10、在where子句中使用SELECT ,查找课程ID=1并且成绩〉80的学生

select 学生表.姓名

from 学生表

where 80

where 学生表.学生ID=成绩表.学生ID AND 成绩表.课程ID=1)

11、交叉连接

SELECT T.教师姓名,c.课程名

from 教员基本信息表 AS t cross join 课程表 AS C

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQL是高级的非过程化编程语言,是沟通数据库服务器和客户端的重要工具,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以,具有完全不同底层结构的不同数据库系统,可以使用相同的SQL语言作为数据输入与管理的SQL接口。 它以记录集合作为操作对象,所有SQL语句接受集合作为输入,返回集合作为输出,这种集合特性允许一条SQL语句的输出作为另一条SQL语句的输入,所以SQL语句可以嵌套,这使它具有极大的灵活性和强大的功能,在多数情况下,在其他语言中需要一大段程序实现的功能只需要一个SQL语句就可以达到目的,这也意味着用SQL语言可以写出非常复杂的语句。    结构化查询语言(Structured Query Language)最早是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEM R开发的一种查询语言,它的前身是SQUARE语言。SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言得到了广泛的应用。如今无论是像Oracle、Sybase、DB2、Informix、SQL Server这些大型的数据库管理系统,还是像Visual Foxpro、PowerBuilder这些PC上常用的数据库开发系统,都支持SQL语言作为查询语言。    美国国家标准局(ANSI)与国际标准化组织(ISO)已经制定了SQL标准。ANSI是一个美国工业和商业集团组织,负责开发美国的商务和通讯标准。ANSI同时也是ISO和International Electrotechnical Commission(IEC)的成员之一。ANSI 发布与国际标准组织相应的美国标准。1992年,ISO和IEC发布了SQL国际标准,称为SQL-92。ANSI随之发布的相应标准是ANSI SQL-92。ANSI SQL-92有时被称为ANSI SQL。尽管不同的关系数据库使用的SQL版本有一些差异,但大多数都遵循 ANSI SQL 标准。SQL Server使用ANSI SQL-92的扩展集,称为T-SQL,其遵循ANSI制定的 SQL-92标准。    SQL语言包含4个部:    数据定义语言(DDL),例如:CREATE、DROP、ALTER等语句。    数据操作语言(DML),例如:INSERT(插入)、UPDATE(修改)、DELETE(删除)语句。    数据查询语言(DQL),例如:SELECT语句。    数据控制语言(DCL),例如:GRANT、REVOKE、COMMIT、ROLLBACK等语句。    SQL语言包括三种主要程序设计语言类别的语句:数据定义语言(DDL),数据操作语言(DML)及数据控制语言(DCL)。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值