300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > SQL-Server 零基础入门教程[下]

SQL-Server 零基础入门教程[下]

时间:2020-01-02 16:32:27

相关推荐

SQL-Server 零基础入门教程[下]

目录

一 、分组查询

二、连接查询

三、 DDL

一 、分组查询

分组查询是对原始数据进行分组之后在对分组后的数据进行统计。

关键词:group by

举个栗子

查询每类图书的数量

selecttid 订单编号, 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 joina ........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(来自) 主键的表名主键的列名 我们老师就主要讲这个了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。