【总结】sqlserver
1 基础
1.1 简介
sqlserver是闭源的,必须运行在windows平台上的数据库。默认事务隔离级别是读已提交(commit read)。全称Microsoft SQL Server,说以也被称为mssql
1.2 数据类型(和mysql对比)
(1)Integer
| mysql | ms sqlserver | 说明 |
|---|---|---|
| tinyint | tinyint | 1byte |
| smallint | smallint | 2byte |
| medium int | int | medium 3byte, int 4byte |
| bigint | bigint | 8 byte |
(2)BigDecimal
| mysql | ms sqlserver | 说明 |
|---|---|---|
| decimal(m,d) | decimal(p,s) | 表示列可以存储s位小数的p位数,p范围1-65,s范围0-30 |
默认精度和小数位数为(18,0)
(3)Floating
| mysql | ms sqlserver | 说明 |
|---|---|---|
| float(n) | float(24) | m=24 4byte, n=53 8byte |
| double(m,d) | float(53) | |
| real(m,d) | float(53) |
其中 n 为用于存储 float 数值尾数的位数,以科学记数法表示,因此可以确定精度和存储大小。如果指定了 n,则它必须是介于 1 和 53 之间的某个值。n 的默认值为 53
(4) Date and Time
| mysql | ms sqlserver | 说明 |
|---|---|---|
| datetime | datetime2 | “yyyy-mm-dd hh:mm:ss”格式,日期和时间的组合 |
| date | date | “yyyy-mm-dd”格式表示的日期值 |
| time | time | hh:mm:ss”格式表示的时间值 |
| TIMESTAMP | smalldatetime | “yyyymmddhhmmss”格式表示的时间戳值,TIMESTAMP列用于INSERT或UPDATE操作时记录日期和时间。如果你不分配一个值,表中的第一个TIMESTAMP列自动设置为最近操作的日期和时间 |
| year | samllint | “yyyy”格式的年份值 |
(5) String
| mysql | ms sqlserver | 说明 |
|---|---|---|
| char | char | 固定长度。char(10)耗损10字节硬盘 |
| varchar | varchar | 可变长度,会根据实际存储数据的大小动态重新分配存储空间 |
| time | time | hh:mm:ss”格式表示的时间值 |
| nchar | char支持的是本地默认编码(char是1字节),nchar是unicode编码(char是2字节)。nchar占用空间比char大。比如char格式下一个字母只占用一个字节,汉字占用两个,nchar所有字符都占用两个字节。char 和nchar的最大容量都是8000字节,意味着char可以最多存放8000个字符,nchar最多存放4000个字符 | |
| nvchar | mysql不支持nchar,nvarchar,ntext类型 | |
| text | text | 如果存储的字符不超过4000,建议使用varchar |
| ntext |
1.3 sqlserver和mysql语法区别
1.分页
(1)mysql:select * from table limit (start-1)*pagesize,pagesize
(2)sql server:
①方式1:三重循环
先取前20页,然后倒序,取倒序后前10条记录,这样就能得到分页所需要的数据,不过顺序反了,之后可以将再倒序回来,也可以不再排序了,直接交给前端排序
select *
from (select top pageSize *
from (select top (pageIndex*pageSize) *
from student
order by sNo asc ) -- 其中里面这层,必须指定按照升序排序,省略的话,查询出的结果是错误的。
as temp_sum_student
order by sNo desc ) temp_order order by sNo asc
②方式2:offset /fetch next(2012版本及以上才有)
select * from student order by sno offset (start-1)*pagesize rows fetch next pagesize rows only ;
2.插入
INSERT INTO table(col1,col2) values(value1,value2);
MySQL支持insert into table1 set t1 = '', t2='',但是MSSQL不支持这样写
【总结】sqlserver的更多相关文章
- 01.SQLServer性能优化之----强大的文件组----分盘存储
汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 文章内容皆自己的理解,如有不足之处欢迎指正~谢谢 前天有学弟问逆天:“逆天,有没有一种方 ...
- 03.SQLServer性能优化之---存储优化系列
汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 概 述:http://www.cnblogs.com/dunitian/p/60413 ...
- SQLSERVER将一个文件组的数据移动到另一个文件组
SQLSERVER将一个文件组的数据移动到另一个文件组 有经验的大侠可以直接忽视这篇文章~ 这个问题有经验的人都知道怎麽做,因为我们公司的数据量不大没有这个需求,也不知道怎麽做实验 今天求助了QQ群里 ...
- SQLSERVER走起微信公众帐号已经开通搜狗微信搜索
SQLSERVER走起微信公众帐号已经开通搜狗微信搜索 请打开下面链接 http://weixin.sogou.com/gzh?openid=oIWsFt-hiIb_oYqQHaBMoNwRB2wM ...
- SQLSERVER走起 APP隆重推出
SQLSERVER走起 APP隆重推出 为方便大家查看本微信公众以前推送的文章,QQ群里面的某位SQLSERVER重度爱好者开发了<SQLSERVER走起>的APP 以供大家一起交流 网页 ...
- 分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间)
分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间) 很多时候我们都需要计算数据库中各个表的数据量和每行记录所占用空间 这里共享一个脚本 CREATE TABLE #tab ...
- SQLSERVER走起微信公众帐号全新改版 全新首页
SQLSERVER走起微信公众帐号全新改版 全新首页 今天,SQLSERVER走起微信公众帐号增加了首页功能 虽然还是订阅号,不过已经对版面做了比较大的修改,希望各位亲用得放心.用得安心O(∩_∩)O ...
- 记一次SQLServer的分页优化兼谈谈使用Row_Number()分页存在的问题
最近有项目反应,在服务器CPU使用较高的时候,我们的事件查询页面非常的慢,查询几条记录竟然要4分钟甚至更长,而且在翻第二页的时候也是要这么多的时间,这肯定是不能接受的,也是让现场用SQLServerP ...
- 我是如何在SQLServer中处理每天四亿三千万记录的
首先声明,我只是个程序员,不是专业的DBA,以下这篇文章是从一个问题的解决过程去写的,而不是一开始就给大家一个正确的结果,如果文中有不对的地方,请各位数据库大牛给予指正,以便我能够更好的处理此次业务. ...
- 干货分享:SQLSERVER使用裸设备
干货分享:SQLSERVER使用裸设备 这篇文章也适合ORACLE DBA和MYSQL DBA 阅读 裸设备适用于Linux和Windows 在ORACLE和MYSQL里也是支持裸设备的!! 介绍 大 ...
随机推荐
- python中浅拷贝和深拷贝的区别
浅拷贝 可变类型浅拷贝copy函数就是浅拷贝,只对可变类型的第一层对象进行拷贝,对拷贝的对象开辟新的内存空间进行存储,不会拷贝对象内部的子对象可变类型:a = [1, 2, 3] b = [11, 2 ...
- LinkedList,ArrayList,HashMap,TreeMap
hashMap是无序的,TreeMap是有序的(hashmap是一个链表,而treemap实现了sortedmap()接口所以有序,其实现同时实现比较器) hashSet的底层是根据HashMap来存 ...
- Spring AOP系列(一)— 代理模式
Spring AOP系列(一)- 代理模式 AOP(Aspect Oriented Programming)并没有创造或使用新的技术,其底层就是基于代理模式实现.因此我们先来学习一下代理模式. 基本概 ...
- Go-archive/tar: write after close gopher.txt
where? 在使用Go中tar包循环写入内容的时候 why? 因为已经关闭了tar.writer对象,所以无法写入,但是程序还是有写入操作,所以报错 way? 通过 defer关键字来管理资源的释放 ...
- logging模块培训小结
Python自动化课程又上了一节课,每一个自动化框架都涉及到日志的使用,logging模块是Python的一个标准库模块,由标准库模块提供日志记录API的关键好处是所有Python模块都可以使用这个日 ...
- python 报错 wxPyDeprecationWarning: Using deprecated class PySimpleApp.
如题:python 报错 提示为 : wxPyDeprecationWarning: Using deprecated class PySimpleApp. 解决:将 wx.PySimpleApp() ...
- Linux网卡命名规则
网卡命名 一.为什么需要这个 服务器通常有多块网卡,有板载集成的,同时也有插在PCIe插槽的.Linux系统的命名原来是eth0,eth1这样的形式,但是这个编号往往不一定准确对应网卡接口的 ...
- MySQL数据库之索引、事务、存储引擎详细讲解
一.索引 1.1 索引的概念 索引是一个排序的列表,存储着索引值和这个值所对应的物理地址 无须对整个表进行扫描,通过物理地址就可以找到所需数据 (数据库索引类似书中的目录,通过目录就可以快速査找所需信 ...
- h2database在springboot中的使用
h2为轻量级数据库,使用特别方便,它可以不使用数据库服务器,直接嵌入到java程序中.可以配置持久化,同样也可以不持久化(数据在内存中)进程结束后,数据就释放,用做测试和演示特别方便.自带后台管理,非 ...
- 使用docker搭建redis服务器记录
#mkdir /home/redishome#mkdir /home/redishome/data#chmod -R 777 /home/redishome把redis.conf传到/home/red ...