博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sql加强练习
阅读量:6002 次
发布时间:2019-06-20

本文共 2722 字,大约阅读时间需要 9 分钟。

1.用一条SQL语句 查询出每门课都大于80分的学生姓名

name kecheng fenshu

张三 语文 81
张三 数学 75
李四 语文 76
李四 数学 90
王五 语文 81
王五 数学 100
王五 英语 90

代码:只要找出存在小于80的not in就好了

 

-----------------------------------use handsomecuicreate table Grade(    name varchar(5),    course varchar(5),    score int)-----------------------------------bulk insert Grade from 'C:\Users\Administrator\Desktop\分数.txt'with(    fieldterminator='\t',    rowterminator='\n')select * from Grade-------------------------------------查询所有成绩在80分以上的学生姓名select distinct name from Grade where name not in(    select distinct name from Grade where score<=80)-----------------------------------
View Code

 

2.学生表 如下:

自动编号 学号 姓名 课程编号 课程名称 分数
1 2005001 张三 0001 数学 69
2 2005002 李四 0001 数学 89
3 2005001 张三 0001 数学 69
删除除了自动编号不同,其他都相同的学生冗余信息

代码:相同信息,肯定要分组了

 

-----------------------------------create table Grade1(    自动编号 int,    学号 varchar(10),    姓名 varchar(5),    课程编号 varchar(5),    课程名称 varchar(50),    分数 int)-----------------------------------bulk insert Grade1 from 'C:\Users\Administrator\Desktop\分数.txt'with(    fieldterminator='\t',    rowterminator='\n')select * from Grade1-------------------------------------删除除了自动编号不同,其他都相同的学生冗余信息delete Grade1 where 自动编号 not in (select min(自动编号) from Grade1 group by 学号,姓名,课程编号,课程名称,分数)
View Code

 

3.怎么把这样一个表

year month amount
1991 1 1.1
1991 2 1.2
1991 3 1.3
1991 4 1.4
1992 1 2.1
1992 2 2.2
1992 3 2.3
1992 4 2.4
查成这样一个结果
year m1 m2 m3 m4
1991 1.1 1.2 1.3 1.4
1992 2.1 2.2 2.3 2.4

代码:1991,1992分组

 

-----------------------------------create table date1105(    styear int,    stmonth int,    stamount float)-----------------------------------bulk insert date1105 from 'C:\Users\Administrator\Desktop\分数.txt'with (    fieldterminator='\t',    rowterminator='\n')-----------------------------------select styear,(select stamount from date1105 m where stmonth=1 and m.styear=date1105.styear)as m1,(select stamount from date1105 m where stmonth=2 and m.styear=date1105.styear)as m2,(select stamount from date1105 m where stmonth=3 and m.styear=date1105.styear)as m3,(select stamount from date1105 m where stmonth=4 and m.styear=date1105.styear)as m4from date1105 group by styear
View Code

 

 4.复制表结构,以及复制表:

-------------------------------select * from date1105--复制表结构,不复制数据select * into date1105_1 from date1105 where 1<>1select * from date1105_1drop table date1105_1select styear a,stmonth b,stamount c into date1105_1 from date1105select * from date1105_1-------------------------------

5.三种Select改变列名的方法:

 

select sum(quantity) as 别名 from order_list
select sum(quantity) 别名 from order_list
select 别名1=sum(quantity),别名2=... from order_list
如果列的名字不确定的话,还可以用 case when then 语句进行循环取列名的。

 

参考博客:http://www.cnblogs.com/lidabo/articles/2030972.html

欢迎大家访问handsomecui的博客:

你可能感兴趣的文章
《SolidWorks 2016中文版完全自学手册)》——2.2 草图绘制
查看>>
FCC:用户破解路由器合法
查看>>
《ANSYS Workbench 16.0超级学习手册》——1.3 Workbench与SolidWorks软件集成设置
查看>>
红帽继续依靠新 OpenStack 和 Cloud Platform Suite 云转型
查看>>
《Adobe Illustrator CC 2014中文版经典教程(彩色版)》—第1课0.20节使用效果
查看>>
Mozilla 终止支持 1024 位 CA 证书
查看>>
《计算机网络:自顶向下方法(原书第6版)》一1.7 计算机网络和因特网的历史...
查看>>
搞一搞Main Thread Checker
查看>>
《通信技术导论(原书第5版)》——2.10 附录
查看>>
数据说:2015,中纪委处理县处级以上干部数增幅超50%
查看>>
《移动网页设计与开发 HTML5+CSS3+JavaScript》—— 1.1 对术语的简短说明
查看>>
《R数据可视化手册》——1.3 加载分隔符式的文本文件
查看>>
Ubuntu One 的10个鲜为人知的功能
查看>>
不看这篇,你可能学不好音乐:音乐可视化与可视分析
查看>>
《Spring 5 官方文档》18. Web MVC 框架(十)
查看>>
Ubuntu 每日贴士- Skype小更新,修复64位系统上PulseAudio问题
查看>>
Android应用性能优化最佳实践.2.6 合理的刷新机制
查看>>
《Java程序员面试秘笈》—— 1.10 线程局部变量的使用
查看>>
《嵌入式Linux与物联网软件开发——C语言内核深度解析》一1.8 内存管理之堆...
查看>>
为你的ROR应用安装FCKEditor
查看>>