首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SQL命令 DISTINCT

DISTINCT从句有两种形式: SELECT DISTINCT:为选择项值每个唯一组返回一可以指定一个或多个选择项。...不能按列号指定字段;这将被解释为文字,并返回一文字指定为DISTINCT子句中项值返回1;返回哪行是不确定。因此,指定7、‘Chicago’、‘’、0或NULL都返回1。...因此,DISTINCT和ORDER BY组合首先选择满足DISTINCT子句任意,然后根据ORDER BY子句对这些行进行排序。...可以使用子查询实现DISTINCT、聚合函数和GROUP BY预期组合。 字母大小写与DISTINCT优化 根据为字段定义排序规则类型,字符串值不同地分组在一起。...您可以设置此系统范围选项,然后使用%exact排序规则函数为特定查询覆盖它以保留字母大小写。

4.3K10

MYSQL锁学习笔记

SQL语句执行顺序 一个查询请求在整个MYSQL服务端链路如下: 在链接池处创建链接 前往查询缓存(若开启)判断是否有相似的SQL查询结果可以直接命中 通过解析器对SQL语句进行解析和校验,并为SQL...锁类型 锁可以分为以下四类: 共享锁(S)可重复获取共享锁,但是不能获取排他锁(select ... lock in share mode) 排他锁(X)不能获取数据任何锁 (select ......这样别的表级别锁来试图锁表时,可以直接通过意向锁来判断该表中是否存在共享/排他锁,而无需对表中每一判断是否级锁,降低封锁成本,提高并发性能 意向锁和意向锁之间是兼容,而意向锁和锁之间也是兼容...只在可重复度REPEATABLE READ或以上隔离级别下特定操作才会取得gap lock或nextkey lock。...读已提交REPEATABLE COMMIT级别下只有record lock MYSQL默认为RR 因此当判断语句如何加行锁时,需要根据事务隔离级别+是否使用主键/唯一/索引进行判断。

83320
您找到你想要的搜索结果了吗?
是的
没有找到

SQL命令 GROUP BY

SQL命令 GROUP BY SELECT子句,它根据一个或多个列对查询结果行进行分组。 大纲 SELECT ......GROUP BY子句接受查询结果,并根据一个或多个数据库列将它们分成单独组。 当SELECT与GROUP BY结合使用时,将为GROUP BY字段每个不同值检索一。...在GROUP BY子句中指定一个字面值作为字段值返回1; 返回哪一是不确定。 因此,指定7、'Chicago'、''、0或NULL都返回1。...但是,如果在逗号分隔列表中指定一个字面值作为字段值,则该字面值将被忽略,并且GROUP BY将为指定字段名每个惟一组选择任意一。...如果查询仅由聚合函数组成且不返回表中任何数据,则返回%ROWCOUNT=1并为聚合函数返回一个空字符串(或0)值。

3.8K30

精选25道Mysql面试题,快来测测你数据库水平吧

1、存储过程和函数区别 存储过程是用户定义一系列sql语句集合,涉及特定表或其它对象任务,用户可以调用存储过程,而函数通常是数据库已定义方法,它接收参数并返回某种类型值并且不涉及特定用户表。...表格每一都由主键唯一标识,一个表只有一个主键。 主键也是候选。按照惯例,候选可以被指定为主键,并且可以用于任何外引用。 12、如何使用Unix shell登录Mysql?...14、LIKE声明中%和_是什么意思? %对应于0个或更多字符,_只是LIKE语句中一个字符。 15、常用索引有哪些种类? ? 16、Mysql查询是否区分大小写?...SELECT DISTINCT t1.a FROM t1,t2 where t1.a=t2.a; 20、如何输入字符为十六进制数字?...通常用于两个或多个字段合并为一个字段。 FORMAT(X, D)- 格式化数字X到D有效数字。 CURRDATE(), CURRTIME()- 返回当前日期或时间。

1.8K20

【21】进大厂必须掌握面试题-65个SQL面试

什么是唯一? 唯一标识表中。 每个表允许多个值。 允许为空值。 Q11。什么是外? 外通过强制两个表中数据之间链接来维护引用完整性。...第一范式(1NF) –行内没有重复组 第二范式(2NF) –每个非(支持)列值都取决于整个主键。 第三范式(3NF) –仅取决于主键,而没有其他非(支持)列值。 Q23。...要计算表中记录数,可以使用以下命令: SELECT * FROM table1 SELECT COUNT(*) FROM table1 SELECT rows FROM sysindexes WHERE...BETWEEN运算符用于根据值范围显示,而IN条件运算符用于检查特定值集中包含值。...列出存储过程一些优点和缺点? 优点: 可以存储过程用作模块化编程,这意味着一次创建,存储并在需要时多次调用。这支持更快执行。它还可以减少网络流量,并为数据提供更好安全性。

6.5K22

企业面试题|最常问MySQL面试题集合(二)

-7-1"; 通过外联表,完成最终SQLselect t1.teamName,m.matchResult,t2.teamName,m.matchTime from match as m left...如果使用UNION ALL,不会合并重复记录 效率 UNION 高于 UNION ALL 问题22:一个6亿表a,一个3亿表b,通过外tid关联,你如何最快查询出满足条件第50000到第50200...优化查询过程中数据访问 访问数据太多导致查询性能下降 确定应用程序是否在检索大量超过需要数据,可能是太多行或列 确认MySQL服务器是否在分析大量不必要数据 避免犯如下SQL语句错误 查询不需要数据...解决办法:避免使用SELECT * 重复查询相同数据。解决办法:可以缓存数据,下次直接读取缓存 是否在扫描额外记录。...切分查询 一个大查询分为多个小相同查询 一次性删除1000万数据要比一次删除1万,暂停一会方案更加损耗服务器开销。 分解关联查询,让缓存效率更高。 执行单个查询可以减少锁竞争。

1.7K20

1 数据库初恋

sql大小写规范 表名、表别名、字段名、字段别名等可以小写 SQL保留字,函数名,绑定变量大写 SELECT name,age FROM student WHERE id="1"; 2 为啥要存储数据...搜索引擎优势比如Elasticsearch、Splunk和Solr采用全文搜索,核心原理为倒排索引 列式数据库 相对于式数据库,数据按照列存储,这样可以大量降低系统IO(因为相邻数据类型一样,...6 Oracle中sql如何执行 ? 查询执行流程 语法检查:检查SQL拼写是否正确。 语义检查:检查SQL访问对象是否存在。 权限检查:检查用户是否有访问权限。...缓存通常理解是一个中间层,如果在中间层存在查询语句就直接返回,如果没有则给解析器处理。 解析层 主要进行语法分析和语义分析。 优化器 确定SQL语句执行路径。是根据全表检索还是根据索引。...主键可以使是一个字段或者多个字段组合,一个数据表主键只能有一个 外约束 外确保表与表之间引用完整性。外可以重复可以为空。 唯一性约束 字段在表中可以使唯一

1.1K20

全栈必备之SQL简明手册

操作方式:JOIN操作是两个或多个表基于它们之间关系连接起来,它依赖于表之间关联。而UNION操作则是两个或多个查询结果集组合成一个结果集。...重复值处理:UNION操作中,默认会删除重复结果,只保留唯一。如果需要包含重复可以使用UNION ALL操作。...而JOIN操作不会自动删除重复,可能会返回重复结果,除非使用DISTINCT关键字。...使用UNION 3种典型用法: 结果并集,查看包括重复记录:select field1,field2 from tablename1 union all select field1,field2 from...Value1 WHERE Condition; DELETE FROM TableName WHERE Condition; 判断操作是否成功:根据需要,可以使用条件语句(如IF)来判断数据库操作是否成功

28210

这是我见过最有用Mysql面试题,面试了无数公司总结(内附答案)

SELECT:从数据库中选择特定数据 INSERT:新记录插入表中 UPDATE:更新现有记录 DELETE:从表中删除现有记录 15. SQL中有哪些不同DCL命令?...定义主键时,可以自动应用唯一索引。它确保索引列中值是唯一。 2.聚集索引:聚集索引对表物理顺序进行重新排序,并根据键值进行搜索。每个表只有一个聚集索引。...SQL中可用约束有哪些? SQL一些约束包括–主键,外,唯一SQL非空,默认,检查和索引约束。 38.什么是唯一约束? 使用唯一约束来确保字段/列中没有重复值。 39.什么是主键?...因此,我们不能仅删除必需 我们可以使用DELETE删除特定 我们只能使用TRUNCATE一次删除所有 删除是DML命令 截断是DDL命令 删除维护日志,并且性能比截断慢 截断可最大限度地减少日志并提高性能...Where子句不能与Aggregate函数一起使用,但是Haveing子句可以。 68. SQL聚合函数是什么? SQL聚合函数返回单个值,该值是根据列中值计算得出

27.1K20

2020年MySQL数据库面试题总结(50道题含答案解析)

6、主键和候选有什么区别? 表格每一都由主键唯一标识,一个表只有一个主键。 主键也是候选。按照惯例,候选可以被指定为主键,并且可以用于任何外引用。...过滤掉 sql 语句中一些关键词:update、insert、delete、select、 * 。 提高数据库表和字段命名技巧,对一些重要字段根据程序特点命名,取不易被猜到。...游标:是对查询出来结果集作为一个单元来有效处理。游标可以定在该单元中特定,从结果集的当前行检索一或多行。可以对结果集当前行做修改。...主键、外和索引区别 定义: 主键——唯一标识一条记录,不能有重复,不允许为空 外——表是另一表主键, 外可以重复, 可以是空值 索引——该字段没有重复值,但可以有一个空值 作用:...主键——用来保证数据完整性 外——用来和其他表建立联系用 索引——是提高查询排序速度 个数: 主键—— 主键只能有一个 外—— 一个表可以有多个外 索引—— 一个表可以有多个唯一索引 49、你可以用什么来确保表格里字段只接受特定范围里

3.9K20

MySQL 给你问懵了?50 道 MySQL 高频面试题详解来了

6、主键和候选有什么区别? 表格每一都由主键唯一标识,一个表只有一个主键。 主键也是候选。按照惯例,候选可以被指定为主键,并且可以用于任何外引用。...(1)CONCAT(A, B) – 连接两个字符串值以创建单个字符串输出。通常用于两个或多个字段合并为一个字段。 (2)FORMAT(X, D)- 格式化数字 X 到 D 有效数字。...过滤掉 sql 语句中一些关键词:update、insert、delete、select、 * 。 提高数据库表和字段命名技巧,对一些重要字段根据程序特点命名,取不易被猜到。...游标:是对查询出来结果集作为一个单元来有效处理。游标可以定在该单元中特定,从结果集的当前行检索一或多行。可以对结果集当前行做修改。...主键、外和索引区别 定义: 主键——唯一标识一条记录,不能有重复,不允许为空 外——表是另一表主键, 外可以重复, 可以是空值 索引——该字段没有重复值,但可以有一个空值 作用:

2.6K11

mysql 优化面试题

SQL根据表中数据来进行查询优化,当索引列有大量数据重复时,SQL查询可能不会去利用索引,如一表中有字段sex,male、female几乎各一半,那么即使在sex上建了索引也对查询效率起不了作用。...SQL语句优化  order by要怎么处理 alter尽量多次合并为一次 insert和delete也需要合并 等等 6....过滤掉sql语句中一些关键词:update、insert、delete、select、 * 。 提高数据库表和字段命名技巧,对一些重要字段根据程序特点命名,取不易被猜到。...游标:是对查询出来结果集作为一个单元来有效处理。游标可以定在该单元中特定,从结果集的当前行检索一或多行。可以对结果集当前行做修改。...主键、外和索引区别 定义:  主键--唯一标识一条记录,不能有重复,不允许为空  外--表是另一表主键, 外可以重复, 可以是空值  索引--该字段没有重复值,但可以有一个空值 作用

55040

2022 最新 MySQL 面试题

根据编程环境,你可以直接输入SQL(如生成报告),或者SQL语言嵌入到其他语言中,或者使用特殊语言API隐藏SQL语法。 SQL根据ANSI/ISO SQL标准定义。...6、主键和候选有什么区别? 表格每一都由主键唯一标识 ,一个表只有一个主键。 主键也是候选。 按照惯例, 候选可以被指定为主键, 并且可以用于任何外 引用。...SELECT DISTINCT t1.a FROM t1,t2 where t1.a=t2.a; 16、如何显示前 50 ?...游标: 是对查询出来结果集作为一个单元来有效处理。 游标可以定在该单元 中特定, 从结果集的当前行检索一或多行。 可以对结果集当前行做修改。...主键、 外和索引区别 定义: 主键 – 唯一标识一条记录, 不能有重复, 不允许为空 外 – 表是另一表主键 , 外可以重复 , 可以是空值 索引 – 该字段没有重复值, 但可以有一个空值

8710

MySQL数据库知识点

=和in可以乱序,比如a = 1 and b = 2 and c = 3 建立(a,b,c)索引可以任意顺序,mysql查询优化器会帮你优化成索引可以识别的形式 B树和B+树区别 在B树中,你可以和值存放在内部节点和叶子节点...这种特性使得B树在特定数据重复多次查询场景中更加高效。 使用B+树好处 由于B+树内部节点只存放,不存放值,因此,一次读取,可以在内存页中获取更多,有利于更快地缩小查找范围。...对于每一次查询都是从根节点出发,查找到叶子节点方可以获得所查键值,然后根据查询判断是否需要回表查询数据。...初始记录偏移量是 0(而不是 1) mysql> SELECT * FROM table LIMIT 5,10; // 检索记录 6-15 为了检索从某一个偏移量到记录集结束所有的记录可以指定第二个参数为...解决办法:避免使用SELECT * 重复查询相同数据。解决办法:可以缓存数据,下次直接读取缓存 是否在扫描额外记录。

74720

SQL Server 事务隔离级别

一、事务隔离级别控制着事务的如下表现: 读取数据时是否占用锁以及所请求锁类型。 占用读取锁时间。 引用其他事务修改读操作是否: 在该行上排他锁被释放之前阻塞其他事务。...注:已提交读:(不可重复读->读时候可以写),可重复读(读时候不能写) 因此四种隔离级别与脏读、幻读、不可重复对应情况如下: ?...举例如下: 有主键为1,5,8,9,10记录,select ... where col between 3 and 7;会使用范围锁5这条记录锁定,除此之外还会用一个范围锁346这几个虚幻记录也锁定...Ps:对于序列化加范围锁是否是我上边所说那么精确,还需要具体实验,这里只是根据官网猜测会使用多余一个范围锁锁定可能造成幻读记录(总范围锁数目为n+1个,n为满足查询条件行数),具体实验方法参见我另一篇博客...因此可以发现幻读解决方式目前只有两种:1范围锁,2是mvcc机制事务级镜像(即snapshot隔离级别的方式)。

1.2K20

Mysql服务器SQL模式 (官方精译)

MySQL服务器可以在不同SQL模式下运行,并且可以根据sql_mode系统变量值对不同客户端应用不同模式。...例如,如果表t具有主键列i,则尝试将相同值插入i到多行中通常会产生重复错误: mysql> INSERT INTO t (i) VALUES(1),(1); ERROR 1062 (23000):...Duplicate entry '1' for key 'PRIMARY' 与IGNORE,含有重复仍未插入,但发生警告而不是错误: mysql> INSERT IGNORE INTO t (i)...LOAD DATA, LOAD XML:With IGNORE,丢弃在唯一键值上复制现有。 UPDATE:与 IGNORE,在唯一键值上发生重复冲突不会更新。...ROW ER_VIEW_CHECK_FAILED 严格SQL模式对语句执行影响 MySQL服务器可以在不同SQL模式下运行,并且可以根据sql_mode 系统变量值对不同客户端应用不同模式。

3.3K30

数据库基础与SQL基础知识整理

//改名时名字要规范 5,唯一约束(UQ),选中一,右击选择“索引\”,添加,是否唯一,改名字,选定需要约束哪一列。 6.外约束(FK),(前提是必须有两个表,一个为外表,一个为主键表。)...select 语句中可以使用group by 子句划分成较小组,然后,使用聚组函数返回每一个组汇总信息。//分组一般都和聚合函数连用。...(),120)      --第三个参数可以特定数字,显示时间格式转换 4.isnull()函数对null进行操作     --当为null时,执行这个函数 SELECT ISNULL(CAST...tName,tSex from teacher union select sName,sSex from student --UNION合并两个查询结果集,并且将其中完全重复数据并为一条 select...        SELECT CONVERT(VARCHAR(50),GETDATE(),120)         --第三个参数可以特定数字,显示时间格式转换         判断是否为本月方法

1.3K10

数据库基础与SQL基础知识看这篇就够了!

//改名时名字要规范 5,唯一约束(UQ),选中一,右击选择“索引\”,添加,是否唯一,改名字,选定需要约束哪一列。 6.外约束(FK),(前提是必须有两个表,一个为外表,一个为主键表。)...select 语句中可以使用group by 子句划分成较小组,然后,使用聚组函数返回每一个组汇总信息。//分组一般都和聚合函数连用。...(),120)      --第三个参数可以特定数字,显示时间格式转换 4.isnull()函数对null进行操作     --当为null时,执行这个函数 SELECT ISNULL(CAST...tName,tSex from teacher union select sName,sSex from student --UNION合并两个查询结果集,并且将其中完全重复数据并为一条 select...        SELECT CONVERT(VARCHAR(50),GETDATE(),120)         --第三个参数可以特定数字,显示时间格式转换         判断是否为本月方法

91520

MySQL经典52题

6.主键和候选有什么区别?表格每一都由主键唯一标识,一个表只有一个主键。主键也是候选。按照惯例,候选可以被指定为主键,并且可以用于任何外引用。7.myisamchk是用来做什么?...SELECT DISTINCT t1.a FROM t1,t2 where t1.a=t2.a;20.可以使用多少列创建索引?任何标准表最多可以创建16个索引列。...过滤掉sql语句中一些关键词:update、insert、delete、select、 * 。提高数据库表和字段命名技巧,对一些重要字段根据程序特点命名,取不易被猜到。...游标:是对查询出来结果集作为一个单元来有效处理。游标可以定在该单元中特定,从结果集的当前行检索一或多行。可以对结果集当前行做修改。...1、从定义上却分主键:唯一标识一条记录,不能有重复,不允许为空外:表是另一表主键, 外可以重复, 可以是空值索引:该字段没有重复值,但可以有一个空值2、从作用上区分主键:用来保证数据完整性外

7910
领券