sql常见面试题

查询出每门课大于80分的学生姓名

name   kecheng   fenshu
张三    语文       81
张三     数学       75
李四     语文       76
李四     数学       90
王五     语文       81
王五     数学       100
王五     英语       90
select distinct name from table where name not in (select distinct name from table where fenshu<=80)
或
select name from table group by name having min(fenshu)>80

删除除了自动编号不同, 其他都相同的学生冗余信息

自动编号   学号   姓名 课程编号 课程名称 分数
1        2005001 张三 0001     数学    69
2        2005002 李四 0001      数学    89
3        2005001 张三 0001      数学    69
delete table where 自动编号 not in ( select min(自动编号) from table group by 学号, 姓名, 课程编号, 课程名称, 分数)

一个叫team的表, 里面只有一个字段name, 一共有4条记录, 分别是a,b,c,d, 对应四个球队, 现在四个球队进行比赛, 用一条sql语句显示所有可能的比赛组合.

select a.name , b.name from team a, team b where a.name<b.name

触发器

是一种特殊的存储过程, 主要是通过事件来触发而被执行的.

存储过程

是一个预编译的SQL语句,  如果某冷色操作需要执行多次sql, 使用存储过程比单纯的SQL语句执行更快.

执行计划

SQL优化大概是这样一个过程: (1) 定位执行效率低的SQL语句 (2) 分析为会么这些SQL执行效率低,(3) 采取优化措施.

EXPLAIN命令可以查看优化器如何决定执行查询的主要的方法 .

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值