在SQL语句中dist是啥意思

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在SQL语句中dist是啥意思相关的知识,希望对你有一定的参考价值。

参考技术A

dist是 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 comza1 zeroredirect1 comi0z13 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是啥意思的主要内容,如果未能解决你的问题,请参考以下文章

sql语句中caes是啥意思

sql 语句中 符号是啥意思?

SQL语句中&Sql是啥意思?

sql语句中“where1=1”是啥意思?

sql语句中的groupby是啥意思?

sql语句里面的union是啥意思