一般sql操作
2018-03-16 13:54
211 查看
1.两张表查询a表中不在b表中的数据。
方法一:
select a.id from t_user_a a where a.id not in (select c.id from t_user_a c,t_user_b b where c.id=b.id)
方法二:
select * from t_user_a a left join t_user_b b on a.id = b.id where b.id isnull
2.用一条sql查询出没科成绩都大于80的学生
select distinct name from t_syllabus where name not in (select a.name from t_syllabus a where a.defen<80)
3.删除除了id不同,其他都相同的数据
delete from t_student where id not in(select min(id) from t_student group by xuehao, name, bianhao, kecheng, fenshu)
4.通过sql把t_user_a表中的数据copy到t_user_b表中
insert into t_user_b (id,name,adress,age) select b.id,b.name,b.adress,b.age from t_user_a b
5.有一张表,里面有三个字段,其中三条记录分别是(语文80,数学70,英语52),用一条sql展示下面思路
大于等于80表示优秀,小于60不及格,大于60小于80良好
SELECT id,name,
(CASE
WHEN yuwen >= 80 THEN
'优秀'
WHEN yuwen <= 80 AND yuwen>60 THEN
'及格'
WHEN yuwen < 60 THEN
'不及格'
ELSE
'其他'
END) as 语文,
(CASE
WHEN cast(shuxue as int) >= 80 THEN
'优秀'
WHEN cast(shuxue as int) <= 80 AND cast(shuxue as int)>60 THEN
'及格'
WHEN cast(shuxue as int) < 60 THEN
'不及格'
ELSE
'其他'
END) as 数学,
(CASE
WHEN cast(yingyu as int) >= 80 THEN
'优秀'
WHEN cast(yingyu as int) <= 80 AND cast(yingyu as int)>60 THEN
'及格'
WHEN cast(yingyu as int) < 60 THEN
'不及格'
ELSE
'其他'
END) as 英语
FROM
t_chengji
6.关于sql的一些关键字
排序 order by 降序desc 升序 asc 分组 group by 分组后筛选 having
去重 distinct 最大值max 最小值min 分页limit(第几行,多少条数据) 求和 sum() 平均数 avg()
in用法 exists用法 in只能返回一个字段 exists能返回多个字段
like 用法 id like '%031%' id like '_031'
方法一:
select a.id from t_user_a a where a.id not in (select c.id from t_user_a c,t_user_b b where c.id=b.id)
方法二:
select * from t_user_a a left join t_user_b b on a.id = b.id where b.id isnull
2.用一条sql查询出没科成绩都大于80的学生
select distinct name from t_syllabus where name not in (select a.name from t_syllabus a where a.defen<80)
3.删除除了id不同,其他都相同的数据
delete from t_student where id not in(select min(id) from t_student group by xuehao, name, bianhao, kecheng, fenshu)
4.通过sql把t_user_a表中的数据copy到t_user_b表中
insert into t_user_b (id,name,adress,age) select b.id,b.name,b.adress,b.age from t_user_a b
5.有一张表,里面有三个字段,其中三条记录分别是(语文80,数学70,英语52),用一条sql展示下面思路
大于等于80表示优秀,小于60不及格,大于60小于80良好
SELECT id,name,
(CASE
WHEN yuwen >= 80 THEN
'优秀'
WHEN yuwen <= 80 AND yuwen>60 THEN
'及格'
WHEN yuwen < 60 THEN
'不及格'
ELSE
'其他'
END) as 语文,
(CASE
WHEN cast(shuxue as int) >= 80 THEN
'优秀'
WHEN cast(shuxue as int) <= 80 AND cast(shuxue as int)>60 THEN
'及格'
WHEN cast(shuxue as int) < 60 THEN
'不及格'
ELSE
'其他'
END) as 数学,
(CASE
WHEN cast(yingyu as int) >= 80 THEN
'优秀'
WHEN cast(yingyu as int) <= 80 AND cast(yingyu as int)>60 THEN
'及格'
WHEN cast(yingyu as int) < 60 THEN
'不及格'
ELSE
'其他'
END) as 英语
FROM
t_chengji
6.关于sql的一些关键字
排序 order by 降序desc 升序 asc 分组 group by 分组后筛选 having
去重 distinct 最大值max 最小值min 分页limit(第几行,多少条数据) 求和 sum() 平均数 avg()
in用法 exists用法 in只能返回一个字段 exists能返回多个字段
like 用法 id like '%031%' id like '_031'
相关文章推荐
- SQL一般操作
- 数据库sql 语言一般操作示例
- PL/SQL Developer的一般操作!
- SQL一般操作
- sql一般操作
- Sqlplus的一般操作
- Sql操作 - 删除数据库重复项
- 关于MySql中数据库、表的操作以及增删改查等一些SQL语句注意事项
- Net和T-sql中的日期函数操作
- 怎么配置 Oracle 侦听器来使用SQL操作ST_Geometry
- Hive常用的SQL命令操作
- 有关sql修改密码的操作
- SQL操作全集
- pl/sql编程之循环操作
- Linq to SQL 字符串操作
- sql:无法解决 equal to 操作中 "Chinese_PRC_CI_AS" 和 "Chinese_Taiwan_Stroke_CI_AS" 之间的排序规则冲突。
- SQL语句面试题目:一般查询和高级子查询
- 存储过程在sqlplus中的操作
- ORACLE 常用SQL语句及profile相关操作(转)
- SQL 操作结果集 -并集、差集、交集、结果集排序