文档详情

查询 SQL.ppt

发布:2018-06-22约1.49万字共77页下载文档
文本预览下载声明
数据查询 回顾 从学员表中查询全部的数据,SQL语句怎么写? 什么是查询 怎么查的 思考 编写查询语句之前… 最常见的SELECT 查询 无数据源的查询 显示指定列或所有列的查询 使用计算列的查询 使用列的别名的查询 使用DISTINCT关键字的查询 使用TOP关键字的查询 SQL Server中的函数 字符串函数 日期函数 数学函数 系统函数 使用ORDER BY子句的查询-3 在数据库表中有以下字符数据,如: 13-1、13-2、13-3、13-10、13-100、13-108、13-18、13-11、13-15、14-1、14-2 现在希望通过SQL语句进行排序,并且首先要按照前半部分的数字进行排序,然后再按照后半部分的数字进行排序,也就是说,输出要排成这样: 13-1、13-2、13-3、13-10、13-11、13-15、13-18、13-100、13-108、14-1、14-2 数据库表名:SellRecord;字段名:ListNumber; 这是查询语句,需要使用SELECT语句 需要使用到ORDER BY进行排序,并且在ORDER BY的排序列中,也需要重新计算出排序的数字来 前半部分的数字,可以从先找到“-”符号的位置,然后,取其左半部分,最后再使用Convert函数将其转换为数字: Convert(int, Left(ListNumber, CharIndex(-, ListNumber)-1)) 后半部分的数字,可以先找到“-”符号的位置,然后把从第一个位置到该位置的全部字符替换为空串,最后再使用Convert函数将其转换为数字: Convert(int, Stuff(ListNumber,1, Charindex(-, ListNumber), )) 使用GROUP BY子句的查询-1 使用HAVING子句的查询(分组条件查询)-1 多表连接查询—问题 多表连接查询—分类 内连接(INNER JOIN) 外连接 ——左外连接 (LEFT JOIN) ——右外连接 (RIGHT JOIN) ——完整外连接(FULL JOIN) 交叉连接(CROSS JOIN) 多表连接查询—内连接-1 多表连接查询—内连接-1 多表连接查询—内连接-2 多表连接查询—内连接-3 多表连接查询—内连接-4 多表连接查询—外连接 多表连接查询—外连接—左外连接-1 多表连接查询—外连接—右连接 嵌套查询—什么是子查询 什么是子查询 使用子查询替换表连接-1 使用子查询替换表连接-2 使用子查询替换表连接-3 使用子查询替换表连接-4 IN子查询-1 IN子查询-2 比较子查询-1 比较子查询-2 EXISTS子查询 EXISTS子查询 EXISTS子查询的语法: 查询结果 Student_name 梅超风 陈玄风 陈玄风 陆乘风 Course_id Student_grade 001 001 002 002 97 89 67 76 陆乘风 003 81 曲灵风 NULL NULL Stundents Student_name 梅超风 陈玄风 陆乘风 曲灵风 Student_id 1 2 3 4 Student_course Student_id Course_id Student_grade 1 2 2 3 001 001 002 002 97 89 67 76 3 003 81 思考:这样写,返回的查询结果是一样的吗? SELECT S.Student_name,C.Course_id,C.Student_grade From Student_course AS C LEFT JOIN Students AS S ON C.Student_id = S.Student_id SELECT S.Student_name,C.Course_id,C.Student_grade From Students AS S LEFT JOIN Student_course AS C ON C.Student_id = S.Student_id 多表连接查询—外连接—左外连接-2 SELECT S.Student_name,C.Course_id,C.Student_grade From Students AS S RIGHT JOIN Student_course AS C ON C.Student_id = S.Student_id 学员信息表 问题: 编写T-SQL语句,查看年龄比“叶海平”大的学生,要求显示这些学生的信息 ? 分析: 第一步:求出“叶海平”的年龄; 第二步:利用WHERE语句,筛选年龄比“叶海平”大的学生; 实现方法:采用子查
显示全部
相似文档