sql语句学习

简介: 针对一个表练习1.建表create table student(name Char(20),curriculum Char(20),score Char(20));插入数据: INSERT INTO student (name,curriculum,score) VALUES('王五','数学','100');mysql> select * from student;+-

针对一个表练习


1.建表

create table student(name Char(20),curriculum Char(20),score Char(20));

插入数据:

 INSERT INTO student (name,curriculum,score) VALUES('王五','数学','100');

mysql> select * from student;

+--------+------------+-------+

| name   | curriculum | score |

+--------+------------+-------+

| 张三   | 语文       | 81    |

| 张三   | 数学       | 75    |

| 李四   | 语文       | 76    |

| 李四   | 数学       | 90    |

| 王五   | 语文       | 81    |

| 王五   | 数学       | 100   |

+--------+------------+-------+

2.题目开始喽


(1)用一条SQL语句 查询出每门课都大于80分的学生姓名 ,注意理解group by

答案:

select distinct name from student where name not in (select distinct name from student where score<80);

+--------+

| name   |

+--------+

| 王五   |

+--------+


select distinct * from student where name not in (select distinct name from student where score<80);

+--------+------------+-------+

| name   | curriculum | score |

+--------+------------+-------+

| 王五   | 语文       | 81    |

| 王五   | 数学       | 100   |

+--------+------------+-------+



select distinct * from student where name not in (select distinct name from student where score<80) group by name;

+--------+------------+-------+

| name   | curriculum | score |

+--------+------------+-------+

| 王五   | 语文       | 81    |

+--------+------------+-------+



(2)形成如下表格

+--------+--------+--------+

| name   | 语文   | 数学   |

+--------+--------+--------+

| 张三   | 81     | 75     |

| 李四   | 76     | 90     |

| 王五   | 81     | 100    |

+--------+--------+--------+


答案:

select name,(select score from student s where curriculum='语文' and s.name=student.name) as 语文,
(select score from student s where curriculum='数学' and s.name=student.name) as 数学 from student group by name; 


(3)显示每一科是否及格,利用case when

+--------+------------+-------+-----------+

| name   | curriculum | score | pass      |

+--------+------------+-------+-----------+

| 张三   | 语文       | 81    | 及格      |

| 张三   | 数学       | 75    | 不及格    |

| 李四   | 语文       | 76    | 不及格    |

| 李四   | 数学       | 90    | 及格      |

| 王五   | 语文       | 81    | 及格      |

| 王五   | 数学       | 100   | 及格      |

+--------+------------+-------+-----------+


答案:
select name, curriculum,score,(CASE WHEN student.score>=80 THEN '及格' ELSE '不及格' END) as pass  from student ;

(4)按分数排序order by

+--------+------------+-------+

| name   | curriculum | score |

+--------+------------+-------+

| 王五   | 数学       | 100   |

| 李四   | 数学       | 90    |

| 张三   | 语文       | 81    |

| 王五   | 语文       | 81    |

| 李四   | 语文       | 76    |

| 张三   | 数学       | 75    |

+--------+------------+-------+


答案:(+0因为是char转int)

select * from student order by score+0 desc ;




/********************************

* 本文来自博客  “李博Garvin“

* 转载请标明出处:http://blog.csdn.net/buptgshengod

******************************************/





目录
相关文章
|
27天前
|
SQL 安全 前端开发
Web学习_SQL注入_联合查询注入
联合查询注入是一种强大的SQL注入攻击方式,攻击者可以通过 `UNION`语句合并多个查询的结果,从而获取敏感信息。防御SQL注入需要多层次的措施,包括使用预处理语句和参数化查询、输入验证和过滤、最小权限原则、隐藏错误信息以及使用Web应用防火墙。通过这些措施,可以有效地提高Web应用程序的安全性,防止SQL注入攻击。
49 2
|
6月前
|
SQL 存储 程序员
SQL查询的一些基本知识和学习指导
【6月更文挑战第17天】SQL查询核心包括基础选择、连接(JOIN)、子查询、聚合函数与GROUP BY、模糊匹配(LIKE)、分页与排序。JOIN操作连接多表,GROUP BY配合聚合函数做统计,LIKE用于模糊搜索。理解存储过程、触发器及自动增长列等进阶概念,通过实践提升SQL技能。
90 2
|
2月前
|
SQL 存储 数据库
SQL学习一:ACID四个特性,CURD基本操作,常用关键字,常用聚合函数,五个约束,综合题
这篇文章是关于SQL基础知识的全面介绍,包括ACID特性、CURD操作、常用关键字、聚合函数、约束以及索引的创建和使用,并通过综合题目来巩固学习。
45 1
|
4月前
|
SQL 存储 关系型数据库
PostgreSQL核心之SQL基础学习
PostgreSQL核心之SQL基础学习
56 3
|
6月前
|
SQL 存储 Java
SQL数据库学习指南:从基础到高级
SQL数据库学习指南:从基础到高级
|
5月前
|
SQL 存储 关系型数据库
关系型数据库SQL Server学习
【7月更文挑战第4天】
84 2
|
6月前
|
SQL 数据库
零基础学习数据库SQL语句之操作表中数据的DML语句
零基础学习数据库SQL语句之操作表中数据的DML语句
63 0
零基础学习数据库SQL语句之操作表中数据的DML语句
|
6月前
|
SQL 存储 关系型数据库
【数据库】SQL零基础入门学习
【数据库】SQL零基础入门学习
64 3
|
6月前
|
SQL 存储 关系型数据库
sql学习数据库
SQL(Structured Query Language)是用于管理关系型数据库的标准编程语言。学习SQL数据库涉及理解数据库的基本概念、SQL语言的结构和语法,以及如何使用SQL来查询、插入、更新
|
5月前
|
SQL 关系型数据库 MySQL
sql 学习
sql 学习