sqlserver

Oracle 和SQL Server 中的SQL语句使用区别

随声附和 提交于 2020-02-26 08:36:24
最近开始接触Oracle,想要了解下同SQL Server使用时的区别。搜寻网上信息找到具体区别分类如下: 一、数据类型比较 类型名称 Oracle SQLServer 比较 字符数据类型 CHAR CHAR 都是固定长度字符资料但oracle里面最大度为2kb,SQLServer里面最大长度为8kb 变长字符数据类型 VARCHAR2 VARCHAR Oracle里面最大长度为4kb,SQLServer里面最大长度为8kb 根据字符集而定的固定长度字符串 NCHAR NCHAR 前者最大长度2kb后者最大长度4kb 根据字符集而定的可变长度字符串 NVARCHAR2 NVARCHAR 二者最大长度都为4kb 日期和时间数据类型 DATE 有Datetime和Smalldatetime两种 在oracle里面格式为DMY在SQLSerser里面可以调节,默认的为MDY 数字类型 NUMBER(P,S) NUMERIC[P(,S)] Oracle里面p代表小数点左面的位数,s代表小数点右面的位数。而SQLServer里面p代表小数点左右两面的位数之和,s代表小数点右面的位数。 数字类型 DECIMAL(P,S) DECIMAL[P(,S)] Oracle里面p代表小数点左面的位数,s代表小数点右面的位数。而SQLServer里面p代表小数点左右两面的位数之和,s代表小数点右面的位数。

SQLServer表的设计(建表)

故事扮演 提交于 2020-02-26 03:33:07
知识部分 1、SQLServer数据类型 ·数据类型是数据的一种属性,用来定义数据是时间、数字、字符串(文字、字母)等 ·SQLServer提供系统数据类型集,该类型集定义了可以与SQLServer一起使用的所有数据类型 ·常用的数据类型: int:从-2147483648到-2147483647之间的整数(可用于标识符列) money:货币类型,可包含小数。 decimal:小数,位数较大 float:小数 datetime:日期类型 char:可包含8000个字符 varchar:较char可存储更多字符 binary:用于存储可达8000字节长的定长的二进制数据 image:大约可存储20亿个二进制数据 2、默认值 在插入数据是如果对一行的某一列没有键入数据(留空)而且设置了默认值,那么这一列就会使用默认值。 3、标识符列 表的序号,自动递增,具有三个特点: ·列的数据类型不能为小数类型 ·不允许控制null ·每个表只能有一个标识符列 4、check约束 通过check约束可以限制域的完整性。通过任何基于逻辑运算符返还的TRUE或FALSE的逻辑表达式创建check约束。例如可以通过设置check约束限制输入的年龄、出生日期等数据 操作部分 ·图形化建表 1、首先展开以下节点-点击新建表 2、SSMS会弹出一个表的设计框 3、建立几个列,准备做操作 4

SQLServer 2008R2主从部署实战

筅森魡賤 提交于 2020-02-26 03:32:30
说明: 由于临时接到做OA的主从环境,基于Windows 200R2 SQLServer2008 R2,由于搜索的资料都不完整,好多重要之处有遗漏,亲自动手做了好几次,填完了坑,整理以备忘记与分享,如有错误遗漏之处欢迎指正交流~ 一、配置环境 主库: 10.8.11.214 数据库版本:SQL Server2008 R2 服务器名称:WIN-D4GRPQKED93 从库: 10.8.11.79 数据库版本: QL Server2008 R2 服务器名称:WIN-3ME2DJ8L9KT 注意点: 服务器名称(主机名)最好在确定好后再安装SQL Server 2008R2数据库这样能确保主机名,实例名保持一致 如果是在安装好sqlserver2008后修改了主机名,通常会导致主机名和实例名不一致问题; 可通过下面的命令进行检测和修复 查看服务名称(默认安装时的实例名也是和主机名一致)和主机名是否一致 select @@servername select serverproperty('servername') 如果不一致请进行修改: if serverproperty('servername') <> @@servername     begin     declare @server sysname     set @server = @@servername     exec sp

SQL Server Profiler

爱⌒轻易说出口 提交于 2020-02-25 19:17:35
如何将SQL Server Profiler跟踪限制为特定数据库? 我看不到如何过滤跟踪,看不到我连接的实例上的所有数据库的事件。 #1楼 在Trace properties> Events Selection选项卡下>选择show all columns。 现在在列过滤器下,您应该看到数据库名称。 输入Like部分的数据库名称,您应该只看到该数据库的跟踪。 #2楼 在SQL 2005中,首先需要在跟踪中显示“数据库名称”列。 最简单的方法是选择已经添加了该列的Tuning模板。 假设您选择了Tuning模板,请过滤: 单击“事件选择”选项卡 单击“列过滤器”按钮 选中显示所有列(右侧下) 选择“DatabaseName”,单击右侧窗格中“Like”旁边的加号,然后键入数据库名称。 我总是将跟踪保存到表中,所以我可以在事后对跟踪数据执行LIKE查询。 #3楼 在“跟踪”属性中,单击“ 常规” 旁边顶部的“ 事件选择” 选项卡。 然后单击右下角的“ 列过滤器... ”。 然后,您可以选择要过滤的内容,例如 TextData 或 DatabaseName 。 展开 像 节点和百分比输入过滤 % 象星座 %MyDatabaseName% 或 %TextDataToFilter% 没有 %% 符号,过滤器将无法工作。 此外,请确保选中“ 排除不包含值的行 ”复选框 。

SQL 注入 实例 (Win10 + SQLserver + ASP.net)

随声附和 提交于 2020-02-18 20:18:52
Win10 + SQLserver + ASP.net ref: https://www.cnblogs.com/webconfig/p/3622498.html 1. 搭建IIS环境 搭建成功后,在浏览器输入:localhost,显示如下网页: 2. 在SQLserver建立数据库Student,并建立用户表 3. 使用VS写动态网页 4. 使用SQL注入,检测安全隐患。 未输入正确密码,却登陆成功,证明存在漏洞。 5. 防范SQL注入后,测试效果: 源代码: https://github.com/HBU/DataBase/tree/master/SQL_Injection 来源: https://www.cnblogs.com/hbuwyg/p/11037356.html

抽象工厂模式

坚强是说给别人听的谎言 提交于 2020-02-17 11:28:40
前面我们介绍了简单工厂模式和工厂方法模式,现在简单的回顾一下: 简单工厂模式是充分利用面向对象的三大特性,将操作要素和操作方法对象化,通过定义工厂方法,决定实例化哪个对象。但简单工厂模式不利于程序的扩展,在需要扩展的时候需要将整个工程类开放,不符合开放-封闭原则。 在简单工厂模式的基础上,我们通过继承接口实现个操作对象的实例化,各具体操作类各自实现相应的方法,只需实现工厂类接口方法即可,在对功能进行扩展时,不需要对工厂类接口进行修改,只需新增操作类和实例化自己的工厂类即可。 那我们为什么需要抽象工厂模式呢? 当我们项目的数据库需要从sqlserver改成oracle时,当初用抽象工厂模式设计的优点就体现出来了。 抽象工厂模式:创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 以数据访问为例: 1 interface IUser 2 { 3 void Insert(User user); 4 5 User GetUser(int id); 6 } 1 class SqlserverUser : IUser 2 { 3 public void Insert(User user) 4 { 5 Console.WriteLine("在Sqlserver中给User表增加一条记录"); 6 } 7 8 public User GetUser(int id) 9 { 10

JDBC连接

戏子无情 提交于 2020-02-17 10:18:34
JDBC的URL=协议名+子协议名+数据源名。 协议名总是“jdbc”。 子协议名由JDBC驱动程序的编写者决定。 数据源名也可能包含用户与口令等信息;这些信息也可单独提供。 mysql连接 规则 驱动:com.MySQL.jdbc.Driver URL:jdbc:mysql://machine_name:port/dbname 注1:machine_name:数据库所在的机器的名称; 注2:port:端口号,默认3306 driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:23306/School?useSSL=true&characterEncoding=utf8" user="root" password="root" oracle连接 规则 驱动:oracle.jdbc.driver.OracleDriver URL:jdbc:oracle:thin:@machine_name:port:dbname 注1:machine_name:数据库所在的机器的名称; 注2:port:端口号,默认是1521 driver="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@127.0.0.1:1521:orcl" user="test"

【转载】如何查看sqlserver客户端的版本号信息

故事扮演 提交于 2020-02-13 14:03:14
在sqlserver的使用过程中,有时候可能会因为sqlserver版本过低等原因的导致无法附加以及还原数据库,我们可以通过sql server management studio软件的帮助菜单参看到详细的sqlserver版本号、数据访问组件等版本号信息。 首先打开你本地的sql server management studio软件,可以看到顶部菜单栏有一个【帮助】的菜单按钮,在其子菜单中找到【关于】,具体如下: 进入【关于】菜单页面后,我们可以看到详细的sqlserver版本号信息,还包含操作系统版本号、Microsoft MSXML版本号、Microsoft数据访问组件(MDAC)版本号等等,具体如下: 备注:原文转载自博主个人站 IT技术小趣屋 ,原文链接为 如何查看sqlserver客户端的版本号信息_IT技术小趣屋 。 博主个人技术交流群:960640092,博主微信公众号如下: 来源: https://www.cnblogs.com/xu-yi/p/11182879.html

sqlserver浅谈

我只是一个虾纸丫 提交于 2020-02-13 14:02:31
Sqlserver 一、 Sqlserver简介 SQL Server一开始并不是微软自己研发的产品,而是当时为了要和 IBM 竞争时,与 Sybase 合作所产生的,其最早的发展者是 Sybase [1] ,同时微软也和 Sybase合作过SQL Server 4.2版本的研发,微软亦将SQL Server 4.2移植到 Windows NT (当时为 3.1版),在与Sybase终止合作关系后,自力开发出SQL Server 6.0版,往后的SQL Server即均由微软自行研发。 在与微软终止合作关系后, Sybase在Windows NT上的数据库产品原本称为Sybase SQL Server,后来改为现在的Sybase Adaptive Server Enterprise 。 Sqlserver 6.0之前版本都是与sybase联合研发,在SQL Server for Windows NT 之后从 sybase手中买断sqlserver著作权开始自主研发。Sqlserver 2017开始支持linux系统。 二、 Sqlserver架构 Sqlserver 架构与 mysql 、 oracle 不同(在 SQL 2000 数据库用户名称架构是绑定的, 一个完整的表的名称包括 了 服务器名 .数据库名.用户名.对象名 , 2005时为 服务器名 .数据库名.架构名.对象名

SQLServer之MAX() 函数

隐身守侯 提交于 2020-02-08 23:05:23
MAX() 函数 MAX 函数返回一列中的最大值。NULL 值不包括在计算中。 SQL MAX() 语法 SELECT MAX(column_name) FROM table_name 注释:MIN 和 MAX 也可用于文本列,以获得按字母顺序排列的最高或最低值。 SQL MAX() 实例 我们拥有下面这个 "Orders" 表: O_Id OrderDate OrderPrice Customer 1 2008/12/29 1000 Bush 2 2008/11/23 1600 Carter 3 2008/10/05 700 Bush 4 2008/09/28 300 Bush 5 2008/08/06 2000 Adams 6 2008/07/21 100 Carter 现在,我们希望查找 "OrderPrice" 列的最大值。 我们使用如下 SQL 语句: SELECT MAX(OrderPrice) AS LargestOrderPrice FROM Orders 结果集类似这样: LargestOrderPrice 2000 来源: https://www.cnblogs.com/sysoft/p/11565879.html