常用sql,面试题

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

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

1: select distinct name from table where name not in (select distinct name from table where fenshu<=80)
2: select name from table group by name having min(fenshu)>80

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

学生表 如下:
自动编号  学号 姓名 课程编号 课程名称 分数
1 2005001 张三 0001 数学 69
2 2005002 李四 0001 数学 89
3 2005001 张三 0001 数学 69

delete from tablename where 自动编号 not in(select min(自动编号) from tablename group by 学号,姓名,课程编号,课程名称,分数)

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

你先按你自己的想法做一下,看结果有我的这个简单吗?

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

4.给出平均进价在2元以下的商品名称

表名:商品表

名称   产地             进价

苹果   烟台                2.5

苹果   云南                1.9

苹果   四川                3

西瓜   江西                1.5

西瓜   北京                2.4

select 名称 from 商品表 group by 名称 having avg(进价) < 2

5.表名:高考信息表,给出高考总分在600以上的学生准考证号

准考证号   科目       成绩

2006001     语文       119

2006001     数学       108

2006002     物理       142

2006001     化学       136

2006001     物理       127

2006002     数学       149

2006002     英语       110

2006002     语文       105

2006001     英语        98

2006002     化学       129

……

select 准考证号 from 高考信息表 group by 准考证号 having sum(成绩) > 600

6.表名:高考信息表,给出高考总分在600以上的学生准考证号

准考证号        数学        语文        英语        物理        化学

2006001                108         119         98        127         136

2006002                149         105        110        142         129

select 准考证号 from 高考信息表 where (数学+语文+英语+物理+化学) > 600

7.怎么把这样一个表

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

答案一、

select year,
(select amount from aaa m where month=1 and m.year=aaa.year) as m1,
(select amount from aaa m where month=2 and m.year=aaa.year) as m2,
(select amount from aaa m where month=3 and m.year=aaa.year) as m3,
(select amount from aaa m where month=4 and m.year=aaa.year) as m4
from aaa group by year

这个是ORACLE中做的:

select * from (select name, year b1, lead(year) over
(partition by name order by year) b2, lead(m,2) over(partition by name order by year) b3,rank()over(
partition by name order by year) rk from t) where rk=1;

精妙的SQL语句!
精妙SQL语句
作者:不详 发文时间:2003.05.29 10:55:05

说明:复制表(只复制结构, 源表名:a,  新表名:b)

SQL: select * into b from a where 1<>1

说明:拷贝表(拷贝数据,源表名:a 目标表名:b)

SQL: into b(a, b, c) select d,e,f from b;

说明:显示文章、提交人和最后回复时间

SQL: select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b

说明:外连接查询(表名1:a 表名2:b)

SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c

时间: 2024-11-02 16:53:19

常用sql,面试题的相关文章

自己整理的常用SQL Server 2005 语句、

--创建数据库 create database 数据库 go --打开数据库 use 数据库 --删除数据库 drop database 数据库 Go --创建数据表 create table 数据表 ( 列名1  数据类型1  限定条件(是否是主外键.是否为空), 列名2  数据类型2  限定条件(是否是主外键.是否为空) )go --删除数据表 drop table 数据表 --插入数据 --插入单行数据 insert  into 表名 [(列名1,列名2 )]  values  (‘数据1

sql优化(oracle)- 第二部分 常用sql用法和注意事项

第二部分 常用sql用法和注意事项               1. exists 和 in                             2. union 和 union all                       3. with as  4. order by  5. group by  6. where 和 having  7. case when 和 decode 1.exits和in用法1)说明: 1. exists先对外表做循环,每次循环对内表查询:in将内表和外表

DBA_Oracle DBA常用SQL汇总(概念)

2014-06-20 BaoXinjian DBA常用的SQL汇总 1.监控索引是否使用 alter index &index_name monitoring usage; alter index &index_name nomonitoring usage; select * from v$object_usage where index_name = &index_name; 2.求数据文件的I/O分布 select df.name,phyrds,phywrts,phyblkr

常用sql整理

1. 存储过程 CREATE PROCEDURE [dbo].[bbs_move_createtopic] @fid smallint, @iconid smallint, @curtid INT OUTPUT AS BEGIN INSERT INTO [topics] ...... SET @topicid=SCOPE_IDENTITY() END declare @curtid int exec [createtopic] @fid=@new_fid,@iconid=0, @curtid=

Ubuntu 下安装sqlite3 及常用SQL 语句

安装sqlite3命令如下: 1 sudo apt-get install sqlite3 创建或者打开已有的数据库文件: 1 sqlite3 test.db 进入数据库后,可以进行以下常用SQL语句操作: CREATE TABLE ONT_USER_TABLE( ONT_USER_NAME text PRIMARY KEY, ONT_USER_PWD text NOT NULL, ONT_CREATE_TIME text ); INSERT INTO ONT_USER_TABLE values

SQL面试题

有3个表S,C,SC S(SNO, SNAME)代表(学号,姓名) C(CNO,CNAME,CTEACHER)代表(课号,课名,教师) SC(SNO, CNO, SCGRADE)代表(学号,课号成绩) 问题: 1.找出没选过'黎明"老师的所有学生姓名. 2.列出两门以上(含2门)不及格学生姓名及平均成绩. 3.即学过1号课程有学过2号课所有学生的姓名. 请用标准SQL语言写出答案,方言也行(请说明是使用什么方言). 1.select sname from s join sc on (s.sno

常用sql语句及案例

目录 1)基本 2)数学函数 3)rownum 4)分页 5)时间处理 6)字符函数 7)to_number 8)聚合函数 9)学生选课 10)图书馆借阅 基本 --新建表: create table table1( id varchar(300) primary key, name varchar(200) not null); --插入数据 insert into table1 (id,name) values ('aa','bb'); --更新数据 update table1 set id

sql面试题(学生表_课程表_成绩表_教师表)

sql面试题(学生表_课程表_成绩表_教师表) 原帖链接:http://bbs.csdn.net/topics/280002741 表架构 Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表 建表语句 CREATE TABLE student ( s# INT, sname nvarchar(32), sage INT, ssex nvarchar(8)

Oracle数据库常用Sql语句大全

一,数据控制语句 (DML) 部分 1.INSERT  (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, 字段名2, --) VALUES ( 值1, 值2, --); INSERT INTO 表名(字段名1, 字段名2, --)  SELECT (字段名1, 字段名2, --) FROM 另外的表名; 字符串类型的字段值必须用单引号括起来, 例如: 'GOOD DAY' 如果字段值里包含单引号' 需要进行字符串转换, 我们把它替换成两个单引号''. 字符串类型的字段值超过