SQL-Server 零基础入门教程[下]
目录
一 、分组查询
二、 连接查询
三、 DDL
一 、分组查询
分组查询是对原始数据进行分组之后在对分组后的数据进行统计。
关键词: group by
举个栗子
查询每类图书的数量
select tid 订单编号, count(*)数量 from book
group by tid;
group by 后面接的tid 与 select 后面的tid一样,这句话的意思就是在book这个列表中 我们要对tid进行分组,并起别名 订单编号 然后再去查 每一类图书的数量。
查询每类图书中价格在20以上的图书编号和数量
select tid 订单编号,count(*)数量 from book
where bprice>20
group by tid;
查询图书数量超过2本的图书编号和数量
select tid 图书编号,count(*)数量 from book
group by tid
having count(*)>3;
我们来比较一下 where和having 区别
其中 where子句 是用来筛选 from 子句中指定操作所产生的行
group by 子句用来分组 where子句的输出
having 是从分组的结果进行筛选行
因此看一下书写顺序
(1)select (2)from(3)where(4)group by (5)having (6)order by
看一下语句执行顺序
(1)from(2)where(3)group by(4)having(5)select0(6)order by
二、连接查询
通过表之间连接条件(主外键关系),从表中获取数据。
连接查询分为内连接和外连接
(1)内连接 语法 inner join on
通过两个表的连接的区域,也就是所谓的交集。
语法:select 列名(来自多张表)from 表1 inner join 表2 on 连接条件 where 查询条件
例如 :查询图书表和图书分类的所有信息
select type.*,book.* from type inner join book on type.id=book.tid
这是两个表的
那我们再看看三个表连接(多表查询:查询学生姓名,科目及考试成绩)
select studentname ,subjectname ,studentresult from student inner join result r on s.studentno= r.studentno inner join subject sub on r.subjectid=sub.subjectid;
翻译 从student result subject 三个表中去查询 studnetname subjectname studentresult 通过
s.studentno= r.studentno,r.subjectid=sub.subjectid;相等去连接。
(2)外连接
上图是左外连接
左外连接a left join b ......on = b right join a .........on后加两表连接条件
右外连接a right join b .....on =b left join a ........ on后加两表连接条件
下图是右外连接
(3)子查询
子查询 是一个嵌套在select,insert ,update ,delete 语句或其他子查询的查询。挺重要的
语法:select....from 表1 where 字段1 比较运算符(子查询)
先执行小括号的子查询,在执行外面的父查询,返回查询的结果。
注意:将子查询和比较运算符联合使用,必须保证子查询返回的值不能多于一个。
举个栗子
查询和张三是同一个地址的学员信息
select * from student where address=(select address from student where studentname='张三')
先找到张三的地址,将张三的地址传入 就能找到和张三是同一个地址的学员信息。
三、DDL
(1)数据库操作
创建数据库: 删除数据库
create database 数据库名; drop database 数据库名;
创建表 删除表
create table 表名 drop table 表名
(2)创建数据表
约束:
主键约束: primary key
唯一约束:unique
默认值约束:default
检查约束:check
外键约束:foregin key
非空约束:not null
标识列:identity
在表建好之后,想要添加约束,这是我们可以用代码了。
语法: alter table 表名 add constraint 约束名()具体的约束条件
具体来看看栗子吧
外键约束( foreign key constraint );用于两张表之间的联系,应该指定主键是那个
alter table 表名 add constraint (fk_字段名字) foreign key 外键的字段 reference(来自) 主键的表名 主键的列名 我们老师就主要讲这个了。
SQL-Server 零基础入门教程[下]相关推荐
- sql数据库教程百度云_绘画自学零基础入门教程|五天学会绘画pdf百度云下载!...
绘画自学零基础入门教程|五天学会绘画pdf百度云下载!画画是可以让人留存记忆的事情.我自己就很喜欢画画来记录生活中一些特别的日子.场景还有我的家人朋友们.有时候,比照片更有故事感和纪念意义-有空拿出来 ...
- python怎么输出浮点数_python 零基础入门教程第 2 章:基本数据类型 (一)
一.什么是数据类型 编程语言通过一些复杂的计算机物理底层机制,创造不同类型的数据,用来表示现实世界中的不同信息,以便于计算机更好的存储和计算. 每种编程语言都会有一些基本的数据类型用来表示现实世界中的 ...
- SEO零基础入门教程(外链的发布和软文编写)
seo的作用是众所周知的,对网站进行seo优化,可以给网站带来大量的搜索引擎流量.但是想要做好网站优化也有难度,尤其是对于seo新手来说,因为缺乏理论和实战,所以seo新手需要多加练习.那么具体seo ...
- SEO新手入门,SEO零基础入门教程,新手做SEO怎么做
seo的作用是对网站进行seo优化,可以给网站带来大量的搜索引擎流量.但是想要做好网站优化也有难度,尤其是对于seo新手来说,因为缺乏理论和实战,所以seo新手需要多加练习.那么具体seo新手入门应该 ...
- C语言 const 修饰函数参数 - C语言零基础入门教程
C语言 const 修饰函数参数 - C语言零基础入门教程 目录 一.const 简介 1.const 修饰变量 2.const 修饰指针 3.const 修饰在函数名前面 4.const 修饰在函数 ...
- Python零基础入门教程( 快速入门)
前言 学无止境,无止境学. 今天要给大家分享的是<Python零基础入门教程01 快速入门>,这是一个系列的教程,从零基础到项目实战.在本教程中,我会给大家介绍Python入门的一些基础知 ...
- C++零基础入门教程:基础篇(一)
前言 嘿嘿,我叕来啦─=≡Σ(((つ•̀ω•́)つ!别问我为什么突然变成了零基础入门教程(一),因为前面那三篇都是基础的不能在基础的教程了.(其实是因为顺序乱了,而且那时候没有单独弄一个专栏,后面我会 ...
- 周易零基础入门教程(一)
感觉这几篇简单的教程很不错哦.大概由于以前看过这类书籍,估计也是很零散的,所以我读这几篇感觉很亲切,没啥难点,一口气读完了,醍醐灌顶.接下来就是自己慢慢琢磨的节奏了! 周易零基础入门教程 作者:江南易 ...
- 视频教程-Python零基础入门教程-Python
Python零基础入门教程 从2012年从事互联网至今有7年软件编程经验,曾任职国内北京互联网公司,中南林业大学授课Python 现任逻辑教育Python课程负责人,精通Python语言,精通人工智能 ...
最新文章
- Linux安装HDF5及遇到的问题总结
- 查找 之 散列表查找(哈希表)
- 【AI不惑境】模型量化技术原理及其发展现状和展望
- 剪映导出帧率选多少_剪映帧率怎么设置?剪映帧率设置方法
- SpringCloud工作笔记035---Zuul网关异常:com.netflix.zuul.exception.ZuulException: Forwarding error
- Overview of HEVC之2 Slices and Tiles
- 重新安装MySQL5.7.21教程_CentOS6.9安装mysql5.7.21教程
- ASP.NET的路由系统
- 30分钟一部动画短片!从MMD入门3D世界,边玩边学的3D教程!(一)“MMD快速入门教程CSDN”
- UML用例图的画法详细介绍【软件工程】
- Python数据处理及分析详解
- 科学计算与仿真-高斯牛顿法的非线性最小二乘问题简单介绍与应用
- javaScript前端上传文件到腾讯云(对象存储)
- Your brain expands and shrinks over time — these charts show how
- 网络安全kali渗透学习 web渗透入门 使用msf扫描靶机上mysql服务的空密码
- 华为IT总监离职时给大家写了一封告别信(ZT)
- Mac 卸载/安装 maven
- 官宣, CSDN 2018博客之星获奖名单!
- 常用汉字的UNICODE和对应的繁体字
- 用豆瓣源安装pytorch1.5.1(速度很快)
热门文章
- 可位寻址与不可位寻址
- pyhon编码问题之由 u'\uxxx' 转 \uxxx
- 【樂理】中國古典音樂樂理
- 登录密码加密,RSA加密算法
- WPF中Mvvm模式的理解
- 租的房子里有无线路由器有ip和dns服务器无密码可以联网吗,没网怎么设置路由器?...
- [原创]找小丑-你要做小丑,还是主宰小丑的那个?
- Java猪人刷怪塔_我的世界:经验不够怎么办?MC6大快速升级方法,养鸡也行?...
- 【毕业设计】Java ssm+vue酒店管理系统
- 华为手机怎么刷android系统,怎样刷入安卓原生系统 在手机系统更新这件事上,小米华为和OPPOvivo谁更有良心...