SQL Server

【译】索引进阶(八):SQL SERVER唯一索引

陌路散爱 提交于 2021-02-13 16:42:01
【译注:此文为翻译,由于本人水平所限,疏漏在所难免,欢迎探讨指正】 原文链接: 传送门 。 在本章节我们检查唯一索引。唯一索引的特别之处在于它不仅提供了性能益处,而且提供了数据完整性益处。在SQL SERVER中,唯一索引是保证主键约束和候选键约束的唯一合理的方式。 唯一索引和约束 唯一索引与其他任何索引并没有什么不同,唯一不同之处在于它不允许多个条目具有相同的索引键值。既然索引中的一个条目映射到了交互表的一行,那么阻止条目被加入到索引中便是阻止了数据行被加到表中。这便是为什么唯一索引是主键约束和候选键约束的保证。 声明一个主键或者唯一性索引都会导致SQL SERVER自动创建索引。你可以具有一个唯一索引而没有与之匹配的约束,但是没有唯一索引的话,你不能具有任何唯一约束。定义一个约束会导致与约束同名的一个索引被创建。不首先删除约束,你是不能删除索引的,因为约束是不能离开索引而存在的。删除约束也会导致与之关联的索引被删除。 每张表包含超过一个唯一索引是可能的。举个例子,AdventureWork库的 Product 表具有四个唯一索引,ProductID, ProductNumber, rowguid, ProductName这四个列各有一个唯一索引。AdventureWorks 数据库的设计者选择ProductID 作表的主键,其他三个作替换键,有时候 称为候选键。

mssql sqlserver null数据类型专题

不打扰是莪最后的温柔 提交于 2021-02-13 11:25:03
摘要: 下文将详细讲述sql server NULL(空值)的相关知识,如下所示: 实验环境: sql server 2008 R2 NULL(空值)简介: mssql sqlserver null数据值简介-1 mssql sqlserver null值详细说明-2 mssql sqlserver null 值简介-3 mssql sqlserver关于表设计中空值(null)设计的相关建议 NULL操作分享: mssql sqlserver sql脚本检索null的方法分享 mssql sql server null值查询采用等于号的方法分享 mssql sqlserver 修改列属性将其设置为非null mssql sqlserver in 关键字在值为null的应用举例 mssql sqlserver sql脚本中sum、count函数--包含空值统计 NULL 涉及函数: mssql sqlserver isnull coalesce函数用法区别说明 mssql sqlserver 将字段null(空值)值替换为指定值的三种方法分享 mssql sqlserver 比较运算符null注意事项 mssql sql server 其它系统函数 isnull() 空值替换函数应用简介 来源: oschina 链接: https://my.oschina.net/u

MySQL字符集与排序规则总结

可紊 提交于 2021-02-12 22:39:53
字符集与排序规则概念 在数据库当中都有字符集和排序规则的概念, 很多开发人员甚至包括有些 DBA 都会将这个混淆,当然这个情况也有一些情有可原的原因。一来两者本来就是相辅相成,相互依赖关联; 另外一方面, 有些数据库并没有清晰的区分开两者。例如, SQL Server 中字符集和排序规则就是合在一起的,创建一个新的数据库,只有一个 Collation 给你选择,并没有字符集选项概念,实际上你在选择一个 Collatin 时,就选定了数据库的字符集和排序规则,例如 Chinese_PRC_CI_AS 。在 MySQL 中,字符集和排序规则是区分开来的,你需要单独设置字符集和排序规则。当然 MySQL 字符集和排序规则也是相关联的。除非特殊需求,只要设置其一即可。设置字符集,即设置了 默认的排序规则。 我们先来搞清楚字符、字符集与字符编码的概念。相信很多人都在这些概念上犯过迷糊。什么是字符呢? 什么是字符集呢,什么有是字符编码呢? 字符( Charcter )是文字与符号的总称,包括文字、图形符号、数学符号等。 26 个英文字母属于字符,每个汉字也属于一个字符。 字符集是一组抽象的字符( Charcter )组合的集合。举一个例子,所有的汉字就算一个 “ 字符集合 ” , 所有的英语字母也算一个 “ 字符集合 ” 。 注意,我这里说它们是字符集合,而且还有双引号

Sql Server中查询今天、昨天、本周、上周、本月、上月数据

你。 提交于 2021-02-12 06:48:39
在做Sql Server开发的时候有时需要获取表中今天、昨天、本周、上周、本月、上月等数据,这时候就需要使用DATEDIFF()函数及GetDate()函数了。 DATEDIFF ( datepart , startdate , enddate ) 释义:计算时间差 datepare值:year | quarter | month | week | day | hour | minute | second | millisecond startdate:开始日期 enddate :结束日期 GetDate() 释义:获取当前的系统日期 下面例子中表名为tablename,条件字段名为inputdate 查询今天 SELECT * FROM tablename where DATEDIFF(day,inputdate,GETDATE())=0 查询昨天 SELECT * FROM tablename where DATEDIFF(day,inputdate,GETDATE())=1 查询本周 SELECT * FROM tablename where datediff(week,inputdate,getdate())=0 查询上周 SELECT * FROM tablename where datediff(week,inputdate,getdate())=1 查询本月

在sql server里获取时间本周,上周,本月,上月

余生颓废 提交于 2021-02-12 06:24:30
本代码在存储过程中使用 一。周时间获取 首先声明变量 DECLARE @ThisWeekStartTime NVARCHAR( 100 ),@ThisWeekEndTime NVARCHAR( 100 ),-- 本周 @LastWeekStartTime NVARCHAR( 100 ),@LastWeekEndTime NVARCHAR( 100 ),--上周                @ThisMonthStartTime NVARCHAR(100),@ThisMonthEndTime NVARCHAR(100),--本月         @LastMonthSartTime NVARCHAR(100),@LastMonthEndTime NVARCHAR(100)--上月 在进行赋值     SELECT @ThisWeekStartTime= CONVERT(nvarchar(10), DATEADD(WEEK, DATEDIFF(WEEK, 0, CONVERT(DATETIME, GETDATE(), 120) - 1), 0),121)--本周开始时间     SELECT @ThisWeekEndTime= CONVERT(nvarchar(10), DATEADD(DAY, 6, DATEADD(WEEK, DATEDIFF(WEEK, 0, CONVERT

SQL查询当天、本周、本月记录详解

試著忘記壹切 提交于 2021-02-12 06:24:09
--查询当天: select * from info where DateDiff(dd,datetime,getdate())=0 --查询24小时内的: select * from info where DateDiff(hh,datetime,getDate())<=24 --info为表名,datetime为数据库中的字段值 --查询当天: select * from table where DateDiff(dd,datetime,getdate())=0 --查询24小时内的: select * from table where DateDiff(hh,datetime,getDate())<=24 --table 为表名,datetime为数据库中的字段值 DATEDIFF 函数: 语法: select * from table where DateDiff(dd,datetime,getdate())=0 --查询24小时内的: select * from table where DateDiff(hh,datetime,getDate())<=24 备注: enddate 减去 startdate。如果 startdate 晚于 enddate,则返回负值。 如果结果超出整数值范围,则 DATEDIFF 将产生错误。对于毫秒,最大数是 24 天 20 小时 31

安全测试基础-SQL注入详解

◇◆丶佛笑我妖孽 提交于 2021-02-12 03:40:49
1:什么是SQL注入 SQL注入是一种将SQL代码插入或添加到应用(用户)的输入参数中的攻击,之后再将这些参数传递给后台的SQL服务器加以解析并执行。 www.xx.com/news.php?id=1 www.xx.com/news.php?id=1 and 1=1 这里我们来理解一下SQL注入 首先,SQL注入常年蝉联OWASP排行榜第一名 SQL注入产生的过程是怎样的呢?见下图 SQL注入的危害有哪些?   数据库信息泄露   网页篡改   网站被挂马   数据库被恶意操作   服务器被远程控制   破坏硬盘数据 2: 学习一下sql注入的方法 2.1取消友好HTTP错误消息 一般通过远程测试判断是否存在SQL注入,所以通常没有机会通过查看源代码来复查注入的查询结构。这导致经常需要通过推理来进行大量测试   打开IE浏览器,选择菜单“工具”->“Internet选项”对话框。   打开“高级”选项卡,在设置列表中找到“浏览”组,   取消勾选”显示友好HTTP错误信息”复选框 。如下图 2.2寻找SQL注入 最常用的SQL注入判断方法,在网站中寻找如下形式的网页 http://192.168.1.3/webug/pentest/test/sqli/sqltamp.php?gid=1 提交单引号,页面返回错误 提交and 1=1 页面返回正常 ,提交and 1=2 页面返回错误

为Navicat正名,Navicat完全使用手册(上)

独自空忆成欢 提交于 2021-02-12 01:58:20
点击关注上方“ SQL数据库开发 ”, 设为“置顶或星标 ”,第一时间送达干货 之前给小伙伴们推荐一款数据库开发工具DataGrip 《 干掉Navicat,这个数据库管理工具真香! 》 最近使用了DataGrip一段时间,发现它并不适合我,因为我平时不仅仅要写代码,也要负责数据仓库的建设和数据库管理的一些工作。 这里给小伙伴们罗列几个我在使用DataGrip中一些不足的地方: 用户体验并不十分友好,你需要花费一些时间去学习如何使用它 和相似的工具比较,它运行并不迅速,当处理大容量数据库的时候会比较缓慢,将耗费GB等级的内存 完全加载本地数据库数据,如果你的数据库数据较多,可能等它加载完成,你差不多要吃午饭了 导入导出功能有待完善 最后还是滚去用Navicat了 Navicat的功能非常多,这里为了让小伙伴们一一掌握,分为多个篇章具体讲述。 目录 安装Navicat 连接不同数据库 创建数据库 数据传输 导出表结构 生成数据字典 查找数据或表名 生成E-R模型 注:以上功能无需书写任何SQL代码 安装Navicat 因为工作原因,需要经常连接不同的数据库,这里我安装的是Navicat Premium版本,在公众号后台回复 Navicat 即可获取。 安装过程很简单,只要你能看懂中文,不停的下一步,等待安装完成即可。 连接不同数据库 这里分别介绍Oracle,MySQL,SQL

分享5个免费的在线 SQL 数据库环境,简直太方便了!

拜拜、爱过 提交于 2021-02-11 13:18:11
关注我 们, 设为星标,每天7:30不见不散,架构路上与您共享 回复" 架构师 "获取资源 今天给大家分享几个在线的免费 SQL 运行环境,也就是在线数据库。这些网站可以帮助我们快速运行一些 SQL 语句的测试或者验证,同时还可以在网络上进行分享,关键不需要自己安装数据库。 SQL Fiddle SQL Fiddle 提供了 MySQL、Oracle、PostgreSQL、SQLite 以及 SQL Server 数据库环境,使用时无需注册。 其中,左侧文本框用于输入初始化语句创建表结构和数据,点击“Build Schema📥”运行;也可以通过“Text to DDL”将格式化文本转换为 DDL 语句。右侧文本框用于输入 SQL 语句,点击“Run SQL▶️”执行,执行结果显示在页面下方;“Run SQL▶️”可以选择输出结果的格式,包括表格、普通文本 以及 Markdown 三种格式。 另外,复制网页地址可以分享本次测试的数据和结果,以上截图的地址为:http://sqlfiddle.com/#!9/a6c585/1。 DB Fiddle DB Fiddle 提供了 MySQL、PostgreSQL 以及 SQLite 数据库的 最新版本 ,使用时无需注册,同时也提供了付费版本。 其中,最左侧文本框可以输入本次测试的标题和描述。中间文本框用于输入初始化语句,点击“▶️Run

分享5个免费的在线 SQL 数据库环境,简直太方便了!

时光毁灭记忆、已成空白 提交于 2021-02-11 13:06:02
点击上方蓝色“ 程序猿DD ”,选择“设为星标” 回复“ 资源 ”获取独家整理的学习资料! 作者 | 不剪发的Tony老师 来源 | blog.csdn.net/horses/article/details/108603935 大今天给大家分享几个在线的免费 SQL 运行环境,也就是在线数据库。这些网站可以帮助我们快速运行一些 SQL 语句的测试或者验证,同时还可以在网络上进行分享,关键不需要自己安装数据库。 SQL Fiddle SQL Fiddle 提供了 MySQL、Oracle、PostgreSQL、SQLite 以及 SQL Server 数据库环境,使用时无需注册。 SQL Fiddle 其中,左侧文本框用于输入初始化语句创建表结构和数据,点击“Build Schema📥”运行;也可以通过“Text to DDL”将格式化文本转换为 DDL 语句。 右侧文本框用于输入 SQL 语句,点击“Run SQL▶️”执行,执行结果显示在页面下方;“Run SQL▶️”可以选择输出结果的格式,包括表格、普通文本 以及 Markdown 三种格式。 另外,复制网页地址可以分享本次测试的数据和结果,以上截图的地址为:http://sqlfiddle.com/#!9/a6c585/1。 地址:http://sqlfiddle.com/ DB Fiddle DB Fiddle 提供了