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图像块中提取颜色特 ...
随机推荐
- Black World
- C#写WPF程序,SQLSever2008 提示插入数据成功,却查询不到数据
1.提示存储成功,但是数据库中没有数据.今天在用C#写一个wpf程序时,要向数据库Sql server2008 中插入数据,程序提示成功,但打开数据库却没有值; 经过查询发现,数据存储到默认路径下的数 ...
- 获取gridpanel 中 checkbox的状态
最近一直在用extjs前天框架来写作项目,很少用到这个框架,过程中遇到很多麻烦, 可能就是一个小的问题会困扰你很长时间, example: 我做一个报表,要获取gridpanel中 checkbox的 ...
- 图片上传本地预览。兼容IE7+
基于JQUERY扩展,图片上传预览插件 目前兼容浏览器(IE 谷歌 火狐) 不支持safari 预览地址:http://www.jinbanmen.com/test/1.html js代码:/**名称 ...
- 【宽度优先搜索】神奇的状态压缩 CodeVs1004四子连棋
一.写在前面 其实这是一道大水题,而且还出在了数据最水的OJ上,所以实际上这题并没有什么难度.博主写这篇blog主要是想写下一个想法--状态压缩.状态压缩在记录.修改状态以及判重去重等方面有着极高的( ...
- Sqrt(x) - LintCode
examination questions Implement int sqrt(int x). Compute and return the square root of x. Example sq ...
- "SQLServer无法打开用户默认数据库,登录失败,错误4064"的解决办法
"SQLServer无法打开用户默认数据库,登录失败,错误4064"的解决办法 1.检查登录密码 如果密码错误,修改数据库密码,用windows身份验证登录进去, (1)安全--登 ...
- Servlet 实现上传文件以及同时,写入xml格式文件和上传
package com.isoftstone.eply.servlet; import java.io.BufferedReader; import java.io.BufferedWriter; i ...
- 进程、线程、socket套接字-资源大小 & 切换代价
另,进程 & 线程的很多知识可以看这里:http://www.cnblogs.com/charlesblc/p/6135666.html 今天查了一下进程和线程的资源占用. 比如问:栈和堆的大 ...
- Running With xpi
d File file = new File("firebug-1.8.1.xpi"); FirefoxProfile firefoxProfile = new FirefoxPr ...