--查询没有被删除的学生

alter table StuInfo --修改列属性
alter column isdelete bit null alter table StuInfo --删除列
drop column isdelete alter table StuInfo --增加列
add isdelete bit not null default(0) select * from StuInfo as si
inner join Classinfo as ci on si.classId=ci.classId
where isdelete=0 --创建视图,用于二次查询
create view StuInfo_Class
as
select si.*,ci.className from StuInfo as si
inner join Classinfo as ci on si.classId=ci.classId
where isdelete=0 --视图中存储的是select语句,而不是结果集合
select * from StuInfo_Class drop view StuInfo_Class -- 删除 select * from StuInfo
select * from ScoreInfo --查询参与了考试的学生信息,子查询exists,in
select * from StuInfo
where stuId in(select distinct stuId from ScoreInfo) select * from StuInfo as si
where exists
(select * from ScoreInfo as sco where si.stuId=sco.StuId) --分页 已知:页大小(一页显示多少数据),页索引
-- 3 1,2,3,4
--利用子查询进行分页:
select * from
(
select *,
ROW_NUMBER()over(order by stuPhone asc) as rowIndex
from StuInfo
) as t1
where rowIndex between 1 and 3 --先排序后再查询在一个区间的列 --当前学生的科目成绩
create view S_S_C
as
select si.*,ci.cName,sco.score from StuInfo as si
inner join ScoreInfo as sco on si.stuId=sco.StuId
inner join CourseInfo as ci on ci.cId=sco.cId select * from S_S_C --数据透视
--要求按格式:姓名 数据库 算法设计
select stuName as 姓名,
max(case cName when '数据库' then score end) as 数据库, --case..when..then语句的两种写法
max(case when cName='算法设计' then score end) as 算法设计
from S_S_C
--然后还要用聚合函数max|sum将上面的结果合并起来,去掉null的位置
group by stuName

接下去是一些练习

select * from course
select * from score
select * from student
select * from teacher --[20,25]岁男同学的姓名,性别,年龄
create view student_view
as
select stuName,stuAge,stuSexy from student
where stuAge between 20 and 25 select * from student_view --每位同学姓名,课程名称和成绩
create view score_view
as
select si.stuName,ci.cName,sco.score from student as si
inner join score as sco on si.stuId=sco.stuId
inner join course as ci on sco.cId=ci.cId select * from score_view

关于透视

select * from class
insert into class
values('','大数据') select * from course
select * from student
select * from teacher
select * from score --透视练习:按课程名字 男生 女生
create view Cou_Stu
as
select si.stuId,ci.cName,si.stuSexy from student as si
inner join score as sco on si.stuId=sco.stuId
inner join course as ci on sco.cId=ci.cId drop view Cou_Stu
select * from Cou_Stu create view TMP
as
select cName,stuSexy,COUNT(*)as num from Cou_Stu
group by stuSexy,cName select * from TMP select cName,
(case when stuSexy=1 then num end)as '男生',
(case when stuSexy=0 then num end)as '女生'
from TMP --再通过分组+聚合函数把null给去了
select cName,
max(case when stuSexy=1 then num end)as '男生',
max(case when stuSexy=0 then num end)as '女生'
from TMP
group by cName

sql 基础语法 alter用法和视图,透视的更多相关文章

  1. ASP.NET实现二维码 ASP.Net上传文件 SQL基础语法 C# 动态创建数据库三(MySQL) Net Core 实现谷歌翻译ApI 免费版 C#发布和调试WebService ajax调用WebService实现数据库操作 C# 实体类转json数据过滤掉字段为null的字段

    ASP.NET实现二维码 using System;using System.Collections.Generic;using System.Drawing;using System.Linq;us ...

  2. SQL基础语法笔记教程整理

    PS:本文适用SQL Server2008语法. 一.关系型数据库和SQL 实际上准确的讲,SQL是一门语言,而不是一个数据库. 什么是SQL呢?简而言之,SQL就是维护和使用关系型数据库中的的数据的 ...

  3. SQL基础语法提纲

    一.SQL需知5点 1.SQL是Structured Query Language的缩写,是用来访问关系型数据库的,非过程化的,高级编程语言. 2.SQL具有语法高度综合统一,高度的非过程化,对集合进 ...

  4. SQL 基础语法笔记教程整理

    最近从图书馆借了本介绍 SQL 的书,打算复习一下基本语法,记录一下笔记,整理一下思路,以备日后复习之用. PS:本文适用 SQL Server2008 语法. 首先,附一个发现的 MySQL 读书笔 ...

  5. Spring mybatis源码篇章-动态SQL基础语法以及原理

    通过阅读源码对实现机制进行了解有利于陶冶情操,承接前文Spring mybatis源码篇章-Mybatis的XML文件加载 前话 前文通过Spring中配置mapperLocations属性来进行对m ...

  6. SQL基础语法(二)

    SQL SELECT 语句 本章讲解 SELECT 和 SELECT * 语句. SQL SELECT 语句 SELECT 语句用于从表中选取数据. 结果被存储在一个结果表中(称为结果集). SQL ...

  7. sql基础语法大全 转载过来的,出处忘了!

    一.基础 1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备 ...

  8. sql 基础语法使用

    SQL的一些基础查询语法    基础.限定.模糊查询     关键字都是大写. 使用 BETWEENN AND 的时候小的数字或者日期放到  AND(并且)  的面前,大的一个放到AND 后面. 示例 ...

  9. SQL 基础语法(一)

    SQL 语法 数据库表 一个数据库通常包含一个或多个表.每个表由一个名字标识(例如"客户"或者"订单").表包含带有数据的记录(行). 下面的例子是一个名为 & ...

随机推荐

  1. 【Vue】记录一个之前解决跨域问题

    proxyTable: { "/proxy/": {//以/proxy/为开头的适合这个规则 target: "http://192.168.7.72:8000" ...

  2. Linux配置postfix

    启动报错:主机名不能以数字开头,否则报错

  3. window 2008/2012计划任务配置

    很多人在问我: 1.Windows Server 2008 计划任务在哪里配置? 2.Windows Server 2008 可以配置每分钟或是每小时执行我的任务吗? 答案是:可以! 首先Window ...

  4. (一)arm交叉编译工具链准备

    1.背景 arm机器一般因为资源问题进行编译会影响开发速度,而且很多时候因为资源不够而无法完成编译工作.因此,需要在执行机上进行交叉编译,即使用x86或其他架构机器基于交叉编译工具编译出在arm上可以 ...

  5. Java中的全局变量与局部变量

    全局变量:也叫成员变量,是指在类中定义的变量:它在整个类中都有效 全局变量又可分为:类变量和实例变量 1.类变量:又叫静态变量  用static修饰  它可以直接用类名调用  也可以用对象调用   而 ...

  6. ASP.NET Core 菜鸟之路:从Startup.cs说起 转发https://www.cnblogs.com/chenug/p/6869109.html

    1.前言 本文主要是以Visual Studio 2017 默认的 WebApi 模板作为基架,基于Asp .Net Core 1.0,本文面向的是初学者,如果你有 ASP.NET Core 相关实践 ...

  7. 用shell脚本实现MongoDB数据库自动备份

    一.创建MongoDB备份目录 用来存放数据 mkdir -p /data/mongodb_bak/mongodb_bak_now mkdir -p /data/mongodb_bak/mongodb ...

  8. 如何用javascript中的canvas让图片自己旋转

    最近在写一个游戏,想让一个人物随着鼠标在原地旋转 在网上找了找,大都是用css写的,但是我为了长远的利益着想选择使用javascript代码中的canvas来解决绘图问题 其中重要的两个方法: con ...

  9. mysql for Mac 下创建数据表中文显示为?的解决方法

    在我的绝版Mac mini下安装了mysql 5.7版本,实例中,在通过load data 导入数据时发现表中的中文显示为  ? 通过百度,发现多个版本的解决方法,将其中一个成功解决的方法贴上来: 大 ...

  10. 重磅!挑战Oracle,华为将开源 GaussDB 数据库

    来源:中关村在线,https://dwz.cn/nHNSOTeN 有消息称在正在进行的鲲鹏计算产业论坛上,华为宣布将开源其GaussDB数据库. GaussDB数据库是今年5月15日华为公布的分布式数 ...