sql sever2008表连接复习总结
来源:互联网 发布:诸夏自由同盟宣言 知乎 编辑:程序博客网 时间:2024/06/05 23:52
use master
go
if exists(select * from sysdatabases where name = '学生管理系统')
drop database 学生管理系统
create database 学生管理系统
on primary
(
name = '学生管理系统_data',
filename = 'E:\temp\学生管理系统_data.mdf',
size = 10MB,
filegrowth = 1MB
)
log on
(
name = '学生管理系统_log',
filename = 'E:\temp\学生管理系统_log.ldf',
size = 10MB,
filegrowth = 1MB
)
go
use 学生管理系统
go
if exists(select * from sysobjects where name = '学生表')
drop table 学生表
create table 学生表
(
Id int identity(100, 1) primary key,
Name varchar(10) not null ,
Age int not null check(Age < 30 and Age > 10),
Gender varchar(4) not null,
Class int not null
)
go
use 学生管理系统
go
if exists(select * from sysobjects where name = '班级表')
drop table 班级表
create table 班级表
(
Id int identity(1, 1) primary key,
Name varchar(10) not null,
People int not null,
Grade int not null
)
go
use 学生管理系统
go
insert into 学生表(Name, Age, Gender, Class) values('张三', 21, '男', 1)
insert into 学生表(Name, Age, Gender, Class) values('李四', 27, '男', 2)
insert into 学生表(Name, Age, Gender, Class) values('王五', 24, '男', 5)
insert into 学生表(Name, Age, Gender, Class) values('周六', 26, '男', 2)
insert into 学生表(Name, Age, Gender, Class) values('更七', 28, '男', 3)
insert into 学生表(Name, Age, Gender, Class) values('刘八', 24, '男', 1)
insert into 学生表(Name, Age, Gender, Class) values('郝九', 22, '男', 2)
insert into 学生表(Name, Age, Gender, Class) values('胡十', 25, '男', 2)
insert into 学生表(Name, Age, Gender, Class) values('安十一', 26, '男', 3)
insert into 学生表(Name, Age, Gender, Class) values('徐十二', 24, '男', 1)
insert into 学生表(Name, Age, Gender, Class) values('付十三', 23, '男', 5)
insert into 学生表(Name, Age, Gender, Class) values('郭十四', 24, '男', 1)
insert into 学生表(Name, Age, Gender, Class) values('李十五', 29, '男', 2)
insert into 学生表(Name, Age, Gender, Class) values('秦十六', 21, '男', 2)
insert into 学生表(Name, Age, Gender, Class) values('张十七', 28, '男', 1)
insert into 学生表(Name, Age, Gender, Class) values('周十八', 21, '男', 3)
go
use 学生管理系统
go
insert into 班级表(Name, People, Grade) values('计算机', 50, 51)
insert into 班级表(Name, People, Grade) values(' 信息安全', 56, 52)
insert into 班级表(Name, People, Grade) values('软件工程', 58, 54)
insert into 班级表(Name, People, Grade) values('网络工程', 54, 57)
go
use 学生管理系统
go
select * from 学生表
select * from 班级表
select A.Id, A.Name, B.Name as '班级名称' from 学生表 A, 班级表 B where A.Class = B.Id /*基本链接*/
select A.Class, A.Name, B.Name as '班级名称' from 学生表 A inner join 班级表 B on A.Class = B.Id where B.Id > 0 /*内连接*/
/*内连接与外连接的区别:内连接只返回两个表符合条件的内容,外连接会以一个表为基准,无论另一个表中的内容是否符合条件,都会返回*/
select A.Class, A.Name, B.Name as '班级名称' from 学生表 A left outer join 班级表 B on A.Class = B.Id where A.Id > 0/*左外连接*/
/*其中,on 和 where 后面都可以跟条件,但是不一个效果,on 后面的条件是查询中的条件,where 后面的条件是查询开始的条件*/
select A.Class, A.Name, B.Name as '班级名称' from 学生表 A right outer join 班级表 B on A.Class = B.Id where B.Id > 0 /*右外连接*/
/*右外连接与左外连接一个功能,只要区分好主表与从表之间的关系就好*/
select A.Class, A.Name, B.Name as '班级名称' from 学生表 A full outer join 班级表 B on A.Class = B.Id /*全连接*/
/*全连接就是不分主表从表,把两个表的信息全部显示出来*/
select A.Class, A.Name, B.name as '班级名称' from 学生表 A cross join 班级表 B /*交叉连接*/
/*交叉连接是返回两个表的笛卡尔乘积*/
select B.Name, B.People, A.Name from 班级表 A, 班级表 B where A.People = B.People and A.Id <> B.Id /*自连接*/
select A.Id, A.Name, A.Age from 学生表 A
union
select '', '平均', AVG(学生表.Age) from 学生表 /*联合查询*/
/*联合查询是将多个查询结果凑成一块,要注意每个查询结果应保存数据类型一样*/
select Id, Name, Age from 学生表 where Age < (select avg(Age) from 学生表) /*子查询*/
/*子查询也可以进行嵌套*/
select * from 学生表 for xml auto /*将查询结果自动转换为xml格式,出了后面的auto,还有很多关键字可以选择使用。*/
/*交查询*/
/*差查询*/
go
use 学生管理系统
go
drop table 学生表
drop table 班级表
go
go
if exists(select * from sysdatabases where name = '学生管理系统')
drop database 学生管理系统
create database 学生管理系统
on primary
(
name = '学生管理系统_data',
filename = 'E:\temp\学生管理系统_data.mdf',
size = 10MB,
filegrowth = 1MB
)
log on
(
name = '学生管理系统_log',
filename = 'E:\temp\学生管理系统_log.ldf',
size = 10MB,
filegrowth = 1MB
)
go
use 学生管理系统
go
if exists(select * from sysobjects where name = '学生表')
drop table 学生表
create table 学生表
(
Id int identity(100, 1) primary key,
Name varchar(10) not null ,
Age int not null check(Age < 30 and Age > 10),
Gender varchar(4) not null,
Class int not null
)
go
use 学生管理系统
go
if exists(select * from sysobjects where name = '班级表')
drop table 班级表
create table 班级表
(
Id int identity(1, 1) primary key,
Name varchar(10) not null,
People int not null,
Grade int not null
)
go
use 学生管理系统
go
insert into 学生表(Name, Age, Gender, Class) values('张三', 21, '男', 1)
insert into 学生表(Name, Age, Gender, Class) values('李四', 27, '男', 2)
insert into 学生表(Name, Age, Gender, Class) values('王五', 24, '男', 5)
insert into 学生表(Name, Age, Gender, Class) values('周六', 26, '男', 2)
insert into 学生表(Name, Age, Gender, Class) values('更七', 28, '男', 3)
insert into 学生表(Name, Age, Gender, Class) values('刘八', 24, '男', 1)
insert into 学生表(Name, Age, Gender, Class) values('郝九', 22, '男', 2)
insert into 学生表(Name, Age, Gender, Class) values('胡十', 25, '男', 2)
insert into 学生表(Name, Age, Gender, Class) values('安十一', 26, '男', 3)
insert into 学生表(Name, Age, Gender, Class) values('徐十二', 24, '男', 1)
insert into 学生表(Name, Age, Gender, Class) values('付十三', 23, '男', 5)
insert into 学生表(Name, Age, Gender, Class) values('郭十四', 24, '男', 1)
insert into 学生表(Name, Age, Gender, Class) values('李十五', 29, '男', 2)
insert into 学生表(Name, Age, Gender, Class) values('秦十六', 21, '男', 2)
insert into 学生表(Name, Age, Gender, Class) values('张十七', 28, '男', 1)
insert into 学生表(Name, Age, Gender, Class) values('周十八', 21, '男', 3)
go
use 学生管理系统
go
insert into 班级表(Name, People, Grade) values('计算机', 50, 51)
insert into 班级表(Name, People, Grade) values(' 信息安全', 56, 52)
insert into 班级表(Name, People, Grade) values('软件工程', 58, 54)
insert into 班级表(Name, People, Grade) values('网络工程', 54, 57)
go
use 学生管理系统
go
select * from 学生表
select * from 班级表
select A.Id, A.Name, B.Name as '班级名称' from 学生表 A, 班级表 B where A.Class = B.Id /*基本链接*/
select A.Class, A.Name, B.Name as '班级名称' from 学生表 A inner join 班级表 B on A.Class = B.Id where B.Id > 0 /*内连接*/
/*内连接与外连接的区别:内连接只返回两个表符合条件的内容,外连接会以一个表为基准,无论另一个表中的内容是否符合条件,都会返回*/
select A.Class, A.Name, B.Name as '班级名称' from 学生表 A left outer join 班级表 B on A.Class = B.Id where A.Id > 0/*左外连接*/
/*其中,on 和 where 后面都可以跟条件,但是不一个效果,on 后面的条件是查询中的条件,where 后面的条件是查询开始的条件*/
select A.Class, A.Name, B.Name as '班级名称' from 学生表 A right outer join 班级表 B on A.Class = B.Id where B.Id > 0 /*右外连接*/
/*右外连接与左外连接一个功能,只要区分好主表与从表之间的关系就好*/
select A.Class, A.Name, B.Name as '班级名称' from 学生表 A full outer join 班级表 B on A.Class = B.Id /*全连接*/
/*全连接就是不分主表从表,把两个表的信息全部显示出来*/
select A.Class, A.Name, B.name as '班级名称' from 学生表 A cross join 班级表 B /*交叉连接*/
/*交叉连接是返回两个表的笛卡尔乘积*/
select B.Name, B.People, A.Name from 班级表 A, 班级表 B where A.People = B.People and A.Id <> B.Id /*自连接*/
select A.Id, A.Name, A.Age from 学生表 A
union
select '', '平均', AVG(学生表.Age) from 学生表 /*联合查询*/
/*联合查询是将多个查询结果凑成一块,要注意每个查询结果应保存数据类型一样*/
select Id, Name, Age from 学生表 where Age < (select avg(Age) from 学生表) /*子查询*/
/*子查询也可以进行嵌套*/
select * from 学生表 for xml auto /*将查询结果自动转换为xml格式,出了后面的auto,还有很多关键字可以选择使用。*/
/*交查询*/
/*差查询*/
go
use 学生管理系统
go
drop table 学生表
drop table 班级表
go
0 0
- sql sever2008表连接复习总结
- JDBC连接SQL Sever2008/mySQL
- Java 如何连接数据库SQL sever2008
- 完全卸载SQL Sever2008 R2
- 解决Sql Sever2008安装后,连接EAS服务器出现端口不通问题
- sql 表连接总结:
- sql表连接总结
- SQL复习 总结
- SQL复习总结
- SQl Sever2008 附加数据库提示5120错误
- SQL Sever2008表格的增删改查
- java 连接池 总结 复习
- SQL表连接优化总结
- SQL多表连接总结
- SQl Server 数据库总结复习
- DB2 sql 重点难点复习总结
- 【复习】SQL 内,外,左,右连接
- webform中实现SQL Sever2008数据库数据分页查询
- @property中的变量与_
- 黑马程序员_Java面向对象基本框架
- MAC版 xampp 设置xdebug支持
- 不通过push,给viewcontroller自定义UINavigationBar,并加上返回按钮
- 浅析Java虚拟机结构与机制
- sql sever2008表连接复习总结
- 配置网站的快捷方式图标及收藏图标
- POJ-Drainage Ditches-最大流入门题
- T-sql总结
- sql server 存储过程总结
- 应用:推箱子游戏
- 软件架构设计(四)
- GitHub同步已经Fork的开源代码
- 修改MyEclipse注释的日期格式