在SQL语句中dist是啥意思
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在SQL语句中dist是啥意思相关的知识,希望对你有一定的参考价值。
参考技术Adist是 distinct 的缩写,意思是在查询结果中去掉重复的记录。
使用distinct的注意事项:
1、DISTINCT 必须放在第一个参数。
2、DISTINCT 表示对后面的所有参数的拼接取不重复的记录,相当于把 SELECT 表达式的项拼接起来选唯一值。
结构化查询语言简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。
扩展资料:
SQL语句语言特点:
1、SQL风格统一
SQL可以独立完成数据库生命周期中的全部活动,包括定义关系模式、录人数据、建立数据库、_询、更新、维护、数据库重构、数据库安全性控制等一系列操作,这就为数据库应用系统开发提供了良好的环境,在数据库投入运行后,还可根据需要随时逐步修改模式,且不影响数据库的运行,从而使系统具有良好的可扩充性。
2、高度非过程化
非关系数据模型的数据操纵语言是面向过程的语言,用其完成用户请求时,必须指定存取路径。而用SQL进行数据操作,用户只需提出“做什么”,而不必指明“怎么做”,因此用户无须了解存取路径,存取路径的选择以及SQL语句的操作过程由系统自动完成。这不但大大减轻了用户负担,而且有利于提高数据独立性。
3、面向集合的操作方式
SQL采用集合操作方式,不仅查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。
参考资料来源:百度百科-sql
T-SQL 语句中的前缀 N 是啥意思,啥时候应该使用它?
【中文标题】T-SQL 语句中的前缀 N 是啥意思,啥时候应该使用它?【英文标题】:What is the meaning of the prefix N in T-SQL statements and when should I use it?T-SQL 语句中的前缀 N 是什么意思,什么时候应该使用它? 【发布时间】:2012-04-18 23:34:31 【问题描述】:我在一些插入 T-SQL 查询中看到了前缀 N。许多人在向表中插入值之前使用过N
。
我进行了搜索,但在向表中插入任何字符串之前,我无法理解包含 N
的目的。
INSERT INTO Personnel.Employees
VALUES(N'29730', N'Philippe', N'Horsford', 20.05, 1),
这个“N”前缀有什么作用,应该在什么时候使用?
【问题讨论】:
【参考方案1】:它将字符串声明为nvarchar
数据类型,而不是varchar
您可能已经看到 Transact-SQL 代码使用传递字符串 一个 N 前缀。这表示后面的字符串是 Unicode (N 实际上代表国家语言字符集)。哪一个 表示您正在传递 NCHAR、NVARCHAR 或 NTEXT 值,如 与 CHAR、VARCHAR 或 TEXT 相对。
引用from Microsoft:
在 Unicode 字符串常量前加上字母 N。不带 N前缀,字符串被转换为默认的代码页 数据库。 此默认代码页可能无法识别某些字符。
如果您想知道这两种数据类型之间的区别,请参阅这篇 SO 帖子:
What is the difference between varchar and nvarchar?
【讨论】:
@Curt 这意味着我应该使用N
仅当我使用以下数据类型CHAR, VARCHAR or TEXT
??因为 ` NCHAR、NVARCHAR 或 NTEXT ` 本质上是存储 UNICODE 我不需要单独添加它......真的吗?
@Pritesh - 仅当您使用可能无法识别上述粗体文本中的那些 unicode 字符的默认代码页时。
@Curt 指向databases aspfaq com
的链接会重定向到极其可疑的网站(fkref com
、za1 zeroredirect1 com
、i0z13 trackvoluum com
),这些网站已被我们的公司防火墙标记为色情、恶意网站和垃圾邮件网址。我已经联系了 aspfaq.com 所有者并编辑了答案以删除链接。
我知道这是来自 MS,但“N
是 Unicode”似乎没有细微差别。 Also MS:考虑一个定义为 NVARCHAR(100) 的列,它存储 180 个字节的日文字符……列数据使用 UCS-2 或 UTF-16 编码;每个字符 2 个字节。将列转换为 VARCHAR(200) [不会] 防止数据截断,[因为] 日文字符在 UTF-8 中需要 3 个字节。该列必须定义为 VARCHAR(270) 以避免因数据截断而丢失数据。(大量编辑)【参考方案2】:
让我告诉你N'
前缀发生的一件烦人的事情 - 我两天都无法修复它。
我的数据库排序规则是 SQL_Latin1_General_CP1_CI_AS。
它有一个表,其中有一列名为 MyCol1。它是一个 Nvarchar
此查询无法匹配 Exact 存在的值。
SELECT TOP 1 * FROM myTable1 WHERE MyCol1 = 'ESKİ'
// 0 result
使用前缀 N'' 修复它
SELECT TOP 1 * FROM myTable1 WHERE MyCol1 = N'ESKİ'
// 1 result - found!!!!
为什么?因为 latin1_general 没有 big dotted İ,所以我想这就是它失败的原因。
【讨论】:
【参考方案3】:1.性能:
假设你的 where 子句是这样的:
WHERE NAME='JON'
如果 NAME 列是 nvarchar 或 nchar 以外的任何类型,则不应指定 N 前缀。但是,如果 NAME 列的类型是 nvarchar 或 nchar,那么如果您不指定 N 前缀,则“JON”将被视为非 unicode。这意味着 NAME 列和字符串 'JON' 的数据类型不同,因此 SQL Server 隐式地将一个操作数的类型转换为另一种。如果 SQL Server 转换文字的类型 对于列的类型,则没有问题,但如果以其他方式执行,则性能会受到影响,因为不会使用列的索引(如果可用)。
2。字符集:
如果列是 nvarchar 或 nchar 类型,则在 WHERE 条件/UPDATE/INSERT 子句中指定字符串时始终使用前缀 N。如果您不这样做并且字符串中的一个字符是 unicode(如国际字符 - 示例 - ā),那么它将失败或遭受数据损坏。
【讨论】:
【参考方案4】:假设值是 nvarchar 类型,因为只有我们使用 N''
【讨论】:
以上是关于在SQL语句中dist是啥意思的主要内容,如果未能解决你的问题,请参考以下文章