follow me learning sqlserver transql
create DATABASE 教务管理系统
on (
name=教务管理系统_data,
filename='E:\sql\教务管理系统_data.mdf ',
size=5mb,
maxsize=20mb
)
log on(
name=教务管理系统_log,
filename='E:\sql\教务管理系统_log.ldf',
size=2mb,
maxsize=10mb
)
create database myTest
on (
name=myTest_data,
filename='E:\sql\myTest_data.mdf ',
size=5mb,
maxsize=20mb
)
log on(
name=myTest_log,
filename='E:\sql\myTest_log.ldf',
size=2mb,
maxsize=10mb
)
<创建数据库快照》
create database student_info
on
(name=教务管理系统_data,filename='E:\sql\教务管理系统_data_snop.mdf '),
(name=shuju,filename='E:\sql\教务管理系统_data_snop2.mdf ')
as snapshot of 教务管理系统
《/创建数据库快照>
《还原数据库》
Restore database 教务管理系统
from database_snapshot ='student_info'
《?还原数据库》
《创建表>
use mysql
create table meng
(userNo int identity not null,
username nvarchar(10) null,
pohoto image null,
birthday dateTime null
)
use myTest
create table meng
(userNo int identity not null,
username nvarchar(10) null,
pohoto image null,
birthday dateTime null
)
</创建表>
<创建临时表>
<创建本地临时表>
create table #tempLocal
(
name1 varchar null,
age int null
)
可查询
select * from ##tempLocal
</创建本地临时表>
<创建全局临时表>
create table #tempLocal
(
name1 varchar null,
age int null
)
可查询
select * from ##tempLocal
</创建全局临时表>
</创建临时表>
将列设为标识字段将不需要插入该列,系统会自动生成记录,通过管理器设置
<创建表>
create table mytest2
(
id int primary key identity(3,1),--主键,自动+1 ,初始值为3
name varchar(20) unique not null,--不允许重复,不允许为空
Age tinyint,
notetime smalldatetime default getdate()
)
</创建表>
<更改数据表的结构>
alter table mytest2
alter COLUMN [notetime] smalldatetime not null
修改字段:
ALTER TABLE [表名] ALTER COLUMN [字段名] NVARCHAR (50) NULL
重命名表:(Access 重命名表,请参考文章:在Access数据库中重命名表)
sp_rename '表名', '新表名', 'OBJECT'
</更改数据表的结构>
<对数据表的重命名>
sp_rename 'mytest2', 'mytest'
</对数据表的重命名>
<数据表中增加字段>
alter table mytest2
add sex nvarchar(5) null
</数据表中增加字段>
<增加数据类型>
表->可编程性-》类型->用户自定义数据类型
</增加数据类型>
<三张表的创建>
1.
create table classInfo
(
className nvarchar(20) null
)
2.
create table GradeInfo
(
stuNo nvarchar(20) primary key not null,
id int identity(1,1),
chineseGrade int null,
java int null,
math int null,
english int null
)
3.
create table stuInfo2
(
stuNo nvarchar(20) primary key not null,
id int identity(1,1),
username nvarchar(20) null,
sex varchar(5) null,
birthday date null,
class nvarchar(20) null
)
</三张表的创建>
<select>
select * from tablename where a and b or c
select * from tablename where name like'x%'通配符以x开头
select * from tablename where name like '%x'
<排序>
SELECT * from myTest.dbo.mytest2 order by Age desc
SELECT * from myTest.dbo.mytest2 order by Age asc,id desc 先按照年龄按升序,年龄相同然后以id降序排列
SELECT * from myTest.dbo.mytest2 order by Age ,id desc 先按照年龄按降序,年龄相同然后以id降序排列
</排序>
select stuNo , max(english),AVG(java) from myTest.dbo.GradeInfo group by rollup (java,stuNo ,id ) having java>90 order by id desc
select * from stuInfo where class in('软工11001班','软工11002班')
</select>
<group by>
select AVG(Age),name from myTest.dbo.mytest2 group by rollup (name)
</group by>
<having>
select max(Age),AVG(Age) ,name from myTest.dbo.mytest2 group by rollup (name,Age) having Age>20
</having>
<where>
where 后+集合函数 是先where 后集合,所以where AVG(COLNUM)是错的,where 后分组的的,先where后统计
</where>
<grouping>
获取产生的空值
select max(Age) ,GROUPING(Age) S1 from myTest.dbo.mytest2 group by rollup (Age )
</grouping>
<compute >
use myTest
select username,stuNo from stuInfo group by username,stuNo compute count(username )
</compute>
<内连接查询 内连接把两个表中的数据连接生成第三个表,在第三个表中仅包含那些满足连接条件的数据行。
在连接中使用inner join 连接运算符,如果在Join关键字前面没明确指定连接类型,那么默认的连接类型是内连接>
use myTest
select a.username as'姓名' from stuInfo a inner join GradeInfo b on a.stuNo=b.stuNo on b.java >85
</内连接查询>
<外连接查询 在外连接中,不仅包括那些满足的条件的数据,而且某些不满足条件的数据也会显示在结果集中。
也就是说,外连接中只限制其中一个表的数据行,而不限制另外一个表中的数据,有三种方式:
left outer join --左连接是对连接条件中左边的表不加限制
right outer join--右连接是对连接条件中右边的表不加限制
full outer join--全连接是对连接条件中左右两边边的表不加限制
>
<left outer join>
select a.username as'姓名' ,b.stuNo as '成绩学号' from stuInfo a left outer join GradeInfo b on a.stuNo=b.stuNo and b.java >85
</left outer join>
<right outer join>
select a.username as'姓名' ,b.stuNo as '成绩学号' from stuInfo a left outer join GradeInfo b on a.stuNo=b.stuNo and b.java >85
</right outer join>
<full outer join>
select a.username as'姓名' ,b.stuNo as '成绩学号' from stuInfo a full outer join GradeInfo b on a.stuNo=b.stuNo and b.java >85
</full outer join>
</外连接查询>
<子查询>
select username from stuInfo where class=(
select className from classInfo where className='软工11002班' //clasa后面是'=',所以子查询(select className
from classInfo where className='软工11002班')
返回的必须是一个值,不能是多个值,还有>,<也是
)
select username from stuInfo where class in(
select className from classInfo //in后面是个集合
)
<exists 如果内层的查询结果不为空,则外层的where 的子条件为ture 即第一个where查询的条件为真,相当于select class from stuInfo,否则第一个where查询的条件为假>
select class from stuInfo where exists(
select className from classInfo
)
select stuNo from stuInfo where exists(
select * from GradeInfo
)
</exists>
</子查询>
<联合查询>
<存储查询结果>
select class into class from stuInfo where username='孟志军'
</存储查询结果>
<if...else begin...end>
if(select AVG(java) from GradeInfo)>80
begin
print 'Bucuo'
print '不错哦'
end
else
if exists(select * from classInfo where className='软工11003班')
print '后来--Bucuo'
print '懂得--不错哦'
</if...else begin...end>
<case ..when 返回第一个为true的表达式(若为true将不继续判断),若没有一个表达式为真则返回Null>
select username ,
case class
when '软工11001班' then 'uername:软工1001班'
when '软工11002班' then 'uername:软工1002班'
when '软工11003班' then 'uername:软工1003班'
end as '班级'
from stuInfo
select stuNo ,
case
when AVG(english)>80 then 'uername:软工1001班'
when AVG(math)>80then 'uername:软工1002班'
when AVG(chineseGrade)>80 then 'uername:软工1003班'
end as '班级'
from GradeInfo
group by stuNo
</case ..when>
<cast>
select cast (count(java) as nvarchar(10)) meng ,
CAST(AVG(english) as int) english2
from GradeInfo
</cast>
<over>
select max(java) max_java ,rank() over (order by math) meng_rowNow ,ROW_NUMBER() over (order by math) wo from GradeInfo group by math
select * from(
select max(java) max_java ,rank() over (order by math) meng_rowNow ,ROW_NUMBER() over (order by math) wo
from GradeInfo group by math
)hahh where meng_rowNow=3 and hahh.max_java=(select MAX(java) from GradeInfo)
select * from(
select className , ROW_NUMBER() over(order by className) r from classInfo )t
where t.r>0
<over>
</联合查询>
<insert ...select>
insert into classInfo (className) select className FROM classInfo where className is not null
</insert...select>
<delete 删除最后十行>
delete top(10) classInfo from (
select * from(
select className , max(ROW_NUMBER() over(order by className )) r from classInfo )t
where t.r>0
)z where z.r>10
<delete>
follow me learning sqlserver transql的更多相关文章
- 【转】The most comprehensive Data Science learning plan for 2017
I joined Analytics Vidhya as an intern last summer. I had no clue what was in store for me. I had be ...
- 【深度学习Deep Learning】资料大全
最近在学深度学习相关的东西,在网上搜集到了一些不错的资料,现在汇总一下: Free Online Books by Yoshua Bengio, Ian Goodfellow and Aaron C ...
- Machine Learning
Recently, I am studying Maching Learning which is our course. My English is not good but this course ...
- (转) Awesome - Most Cited Deep Learning Papers
转自:https://github.com/terryum/awesome-deep-learning-papers Awesome - Most Cited Deep Learning Papers ...
- (转) The major advancements in Deep Learning in 2016
The major advancements in Deep Learning in 2016 Pablo Tue, Dec 6, 2016 in MACHINE LEARNING DEEP LEAR ...
- (转) Deep Learning Research Review Week 2: Reinforcement Learning
Deep Learning Research Review Week 2: Reinforcement Learning 转载自: https://adeshpande3.github.io/ad ...
- 博弈论揭示了深度学习的未来(译自:Game Theory Reveals the Future of Deep Learning)
Game Theory Reveals the Future of Deep Learning Carlos E. Perez Deep Learning Patterns, Methodology ...
- Deep Learning in a Nutshell: History and Training
Deep Learning in a Nutshell: History and Training This series of blog posts aims to provide an intui ...
- Deep Learning 9_深度学习UFLDL教程:linear decoder_exercise(斯坦福大学深度学习教程)
前言 实验内容:Exercise:Learning color features with Sparse Autoencoders.即:利用线性解码器,从100000张8*8的RGB图像块中提取颜色特 ...
随机推荐
- UBI系统原理-中【转】
转自:http://blog.chinaunix.net/uid-28236237-id-4217118.html UBI 文件头位置 EC头都放置在擦除块的开始偏移位置,占用64字节空间.之后防止V ...
- RAM与ROM
随着对计算机行业的深入了解,很多人开始听到一些RAM和ROM的讨论话题,之前我也不是很清楚,也不知道他和电脑的内存有什么联系.下面就让我们一起来学习一下这个吧. 首先RAM和ROM是什么 RAM和RO ...
- vs2013-tfs-疑问之版本控制器路径有双引号解决办法
问题描述: 最近项目:“****”展示交易平台 ,所以版本控制器路径为: 导致生成解决方案提示:路径有问题 解决办法: 1.直接在版本控制器重命名是不支持的,需要安装: Visual Studio ...
- SUDTOJ 3323园艺问题 (线段树)
园艺问题 Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 本巨养了一盆双色茉莉.这种花有一种特点:第i朵花在第Di天盛开,刚开时是紫色的 ...
- EF中使用linq进行关联查询
EF使用linq进行多表查询是完全可以的,最后ToList()调用的时候回产生一条分页的sql语句,所以并不是全部查询再分页的.所以不会影响查询的性能 public void TestLinq() { ...
- android sdcard信息获取
手机存储都有两种,一种是 手机自带的存储,称为internal storage,另外一种用户额外插入的存储,称为removable storage (也就是外置sdcard的部分). removabl ...
- oracle物化视图
物化视图是一种特殊的物理表,“物化”(Materialized)视图是相对普通视图而言的.普通视图是虚拟表,应用的局限性大,任何对视图的查询,Oracle都实际上转换为视图SQL语句的查询. 这样对整 ...
- JavaScript 获取当前时间戳
转自博客(http://blog.sina.com.cn/s/blog_8772845101019kg5.html) JavaScript 获取当前时间戳:第一种方法: var timestamp = ...
- 《BI那点儿事》数据仓库建模:星型模式、雪片模式
数据仓库建模 — 星型模式Example of Star Schema 数据仓库建模 — 雪片模式Example of Snowflake Schema 节省存储空间 一定程度上的范式 星形 vs.雪 ...
- Hibernate <一级缓存>
Hibernate缓存分为三级: 一级缓存:基于事务级别(内存)的缓存,也可以成为session级别缓存 二级缓存:依赖于第三方,当请求一个对象时,先在缓存里面查找,如果没有就执行查询语句 查询缓存: ...