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

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

SELECT:数据库中选择特定数据 INSERT:将记录插入 UPDATE:更新现有记录 DELETE:删除现有记录 15. SQL中有哪些不同DCL命令?...在Oracle中使用自动递增关键字 在SQL Server中使用IDENTITY关键字。 29.什么是临时临时是用于临时存储数据临时存储结构。 30.如何避免查询重复记录?...外部联接:外部联接两个返回,这些行包括与一个或两个匹配记录。 36.什么是SQL约束? SQL约束是在数据插入,删除或更新数据时实施一些约束一组规则。 37....假设中有一个字段是可选,并且可以在不向可选字段添加情况下插入记录 则该字段将以NULL值保存。 46. NULL值,零和空白之间有什么区别?...SELECT INTO语句将数据从一个复制。将使用旧表定义列名和类型创建。您可以使用AS子句创建列名称。

27K20

PostgreSQL 教程

| 其他数据库管理系统(例如 MySQL、Oracle 和 Microsoft SQL Server)迁移到 PostgreSQL。...连接删除 根据另一个值删除。 UPSERT 如果已存在于,则插入或更新数据。 第 10 节....创建 指导您如何在数据创建。 SELECT INTO 和 CREATE TABLE AS 向您展示如何查询结果集创建。...删除 删除现有及其所有依赖对象。 截断 快速有效地删除大所有数据临时 向您展示如何使用临时。 复制表 向您展示如何将表格复制表格。 第 13 节....PostgreSQL 技巧 主题 描述 如何比较两个 描述如何比较数据两个数据。 如何在 PostgreSQL 删除重复 向您展示删除重复各种方法。

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

那些年我们写过T-SQL(下篇)

此外,由于锁这部分知识比较复杂,不同数据库厂商实现也有不同,SQLSERVER除了我们常见共享锁、排它锁(包括级、页级、级),意向锁,还有一些更复杂锁,自旋锁等,这部分内容会在之后T-SQL...新增序列对象是标准SQL功能,它与标识列属性不同,是一个不会绑定特定对象,需要时查询获取即可。...接下来介绍数据可以锁定资源,包括、页、(对象)、数据库,按序锁定资源粒度越来越大。驻留在页,而是包含或索引数据物理数据块。...SERIALIZABLE: 最高隔离级别,其除了在读请求时一直持有读共享锁,同时还会限定查询筛选所限key键范围(之间提及锁范围),用于阻止其他事务尝试添加(被限定情况下),防止了出现幻读情况...SNAPSHOT: 读取数据时会确保获得事务启动时最近提交可用版本,这儿需要强调事务启动时概念,比如两个事务A、B先后开启,B事务修改数据并提交,这个数据修改是不会反应到事务A,因为事务A获取额是在其开启前版本

2K50

MySQL安装

Enter password: ****** 3、设置MySQL用户帐户 要添加一个新用户 MySQL,只需要在数据记录添加到用户:mysql.user 下面是添加新用户:yiibai 例子...LIKE子句MySQLtutorials_tbl 选择获取数据返回 示例 下面的例子是 tutorials_tbl 获取作者名称以 aul 结尾所有记录: root@host# mysql...临时可能在某些情况下是非常有用,以保持临时数据。...现在,如果注销MySQL会话,然后发出SELECT命令,那么会发现在数据没有可用数据。即使是临时也不存在了。 删除临时 默认情况下,当数据库连接被终止,所有的临时被MySQL删除。...MySQL读取给定位置文件。 默认情况下,LOAD DATA假设数据文件包含一个由制表符分隔范围内被换行()分割数据值。

11.3K71

MySQL 5.7新功能

(2)服务器现在要求mysql.user帐户具有非空列值禁用具有空值帐户。有关说明,请参见第2.11.3节“影响升级MySQL 5.7更改”。...通过优化CREATE TABLE,DROP TABLE,TRUNCATE TABLE和ALTER TABLE语句,可以提高InnoDB临时DDL性能 InnoDB临时数据不再存储InnoDB系统...相反,INNODB_TEMP_TABLE_INFO为用户提供活动临时快照。该包含有关在给定InnoDB实例处于活动状态所有用户和系统创建临时数据和报告。...BLOB仍然是基础数据类型,但空间数据类型现在对应InnoDB内部数据类型DATA_GEOMETRY。 现在,所有非压缩InnoDB临时都有一个单独空间。...空间始终在服务器关闭时删除,启动时重新创建,默认情况下位于DATADIR(不配置参数)。新添加配置文件选项innodb_temp_data_file_path允许用户定义临时数据文件路径。

2K20

这个MySQL优化原理剖析,比照X光还清楚

我们尝试插入一些数据: ?...:线程在执行查询,并且将其结果集复制一个临时,这种状态一般要么是做group by操作,要么是文件排序操作,或者union操作。...将主键置于where列表,MySQL就能将该查询转换为一个常量,system是const类型特例,当查询只有一情况下,使用system NULL: MySQL在优化过程中分解语句,执行时甚至不用访问或索引...损失精确性情况下,长度越短越好。 8. ref 表示上述连接匹配条件,即哪些列或常量被用于查找索引列上值。...Using where:列数据仅仅使用了索引信息而没有读取实际行动返回,这发生在对表全部请求列都是同一个索引部分时候,表示mysql服务器将在存储引擎检索后再进行过滤。

65840

【精华】洞悉MySQL底层架构:游走在缓冲与磁盘之间

2,默认情况下,重做日志存在磁盘两个文件,循环方式写入重做日志 |- ibdata1 // 系统空间文件 |- ibtmp1 // 默认临时空间文件,可通过innodb_temp_data_file_path...innodb_old_blocks_time很重要,有了这1秒,对于全扫描,由于是顺序扫描,一般同一个数据数据都是在一秒内访问完成,不会升级子列表,一直在旧子列表淘汰数据,所以不会影响子列表缓存...优点 您可以更加灵活选择数据压缩[4]格式,: 默认情况下(innodb_page_size=16K),前缀索引^5最多包含768个字节。...每个页大小默认为16k,如果插入数据,这个时候就要申请数据页了,然后挪动部分数据过去,重新调整B+树,这个过程称为页分裂,这个过程会影响性能。...自增主键插入是递增顺序插入,每次添加记录都是追加涉及记录挪动,不会触发叶子节点分裂,而一般业务字段做主键,往往都不是有序插入,写成本比较高,所以我们更倾向于使用自增字段作为主键。

1.7K61

SQLServer 触发器

1.在执行INSERT 或 UPDATE 语句时,加行被同时添加到 inserted 和触发器,所以inserted临时保存了插入或更新后记录 2.可以inserted检查插入数据是否满足业务需求...,传输到 deleted ,所以deleted临时保存了删除或更新前记录 2.可从deleted检查被删除数据是否满足业务需求, 如果不满足,则向用户报告错误消息,并回滚插入操作...执行insert插入语句,在插入数据 2. 触发insert触发器,向系统临时inserted插入副本 3....分析: 1.在交易信息上创建INSERT触发器 2.inserted临时获取插入数据 3.根据交易类型(transType)字段值是存入/支取, 4.增加/减少对应帐户余额。...2.再插入:李四 1000 0002 20001,将数据备份inserted。 最后看起来就是把余额1元修改为20001元了。

1.9K20

深入探索MySQL:成本模型解析与查询性能优化

结合EXPLAIN命令输出和慢查询日志来分析问题查询执行计划。 四、成本值存储和配置 MySQL在server_cost和engine_cost这两个系统存储了默认成本值。...如果需要,管理员可以通过执行特定命令(FLUSH OPTIMIZER_COSTS)来重新磁盘加载成本。 重要是这些成本值是特定于服务器,并且不会复制副本或备用服务器。...memory_temptable_batch_row_cost(内存临时批量成本):当向内存临时插入多行数据时,这个成本条目表示每插入一批数据成本。...disk_temptable_batch_row_cost(磁盘临时批量成本):类似于内存临时批量成本,但这个成本条目是针对磁盘临时。它表示向磁盘临时批量插入数据成本。...要获取特定MySQL实例这些成本条目的实际值,可以查询mysql系统数据server_cost和engine_cost: SELECT * FROM mysql.server_cost;

8210

Apache Kudu 架构

3 Impala + Kudu 优化心得 一开始需要全量导入kudu,这时候我们先用sqoop把关系数据数据导入临时,再用impala临时导入kudu目标由于sqoop关系型数据直接以parquet...KUDU在 HDFS 和 HBase 这两个中平衡了随机读写和批量分析性能,既支持了SQL实时查询,也支持了数据更新插入操作。...master将数据写入catalog table(目录),协调在tablet server上创建tablet过程。...,否则继续 写入操作先被提交到tablet预写日志(WAL),根据Raft一致性算法取得追随节点同意,然后才会被添加到其中一个tablet内存插入会被添加到tabletMemRowSet...写入一数据,在MemRowset(1G或者是120s)数据达到一定大小时,MemRowset将数据落盘,生成一个diskrowset用于持久化数据, 还生成一个memrowset继续接收数据请求

1.7K31

Mysql 大数据量高并发数据库优化

SQL语句在SQL SERVER是如何执行,他们担心自己所写SQL语句会被SQL SERVER误解。...,因为如果简单语句先后上看,这两个语句的确是不一样,如果tID是一个聚合索引,那么后一句仅仅从 10000条以后记录查找就行了;而前一句则要先从全查找看有几个name='zhangsan...事实上,这样担心是不必要SQL SERVER中有一个“查询分析优化器”,它可以计算出where子句中搜索条件确定哪个索引能缩小扫描搜索空间,也就是说,它能实现自动优化。...,因为如果简单语句先后上看,这两个语句的确是不一样,如果tID是一个聚合索引,那么后一句仅仅从 10000条以后记录查找就行了;而前一句则要先从全查找看有几个name='zhangsan...事实上,这样担心是不必要SQL SERVER中有一个“查询分析优化器”,它可以计算出where子句中搜索条件确定哪个索引能缩小扫描搜索空间,也就是说,它能实现自动优化。

1.3K51

详解MySQL原生Online DDL:历史演进到原理及使用

Copy算法 按照原定义创建一个临时 对原加写锁(禁止 DML,允许 select) 步骤 1)建立临时执行 DDL 将原数据 copy 到临时 释放原写锁 将原删除,并将临时重命名为原...说明: 在 copy 数据期间,在原上是加 MDL 读锁(允许 DML,禁止 DDL) 在应用增量期间对原加 MDL 写锁(禁止 DML 和 DDL) 根据A重建出来数据是放在 tmp_file...更改字段数据类型,varchar改成text——“锁” 三、Online DDL过程锁 默认情况下,MySQL就是支持onlineDDL操作,在onlineDDL语句执行过程,MySQL...2 数据复制和同步:将旧表数据逐步复制到临时保持旧表数据临时数据同步。这一过程确保了数据在DDL操作期间完整性和一致性。...诚邀关注公众号 『 码三十五 』 ,获取更多技术资料。

33410

MySQL基础SQL编程学习1

SQL 面向数据库执行查询 SQL 可从数据库取回数据 SQL 可在数据插入记录 SQL 可更新数据数据 SQL 可从数据库删除记录 SQL 可创建数据SQL 可在数据创建...: -- 向 "Websites" 插入一个。...2.外连接就好像是为非基准添加了一全为空值万能行,用来与基准找不到匹配行进行匹配,两个没有空值进行左连接,左是基准,左所有行都出现在结果,右则可能因为无法与基准匹配而出现是空值字段...,然后把数据插入另一个,但是需要注意 MySQL 数据库不支持 SELECT ......复制所有的列插入: SELECT * INTO newtable [IN externaldb] FROM table1; -- 只复制希望插入: SELECT column_name

4.6K20

硬核干货 | 揭秘TDSQL敏态引擎Online DDL技术原理

假设将两个节点想象成两个线程,比如thread1、thread2,线程1想要进行数据修改,可以获取一个数据锁,将所有的请求先挡住,再到内存结构。...F1基本思想是在分布式系统,在没有锁情况下,无法同时某个状态迁移到下一个状态,这时就可以引入中间状态。比如某个节点可以先进入下一个状态,但该状态与上一个状态相互兼容。...pt原理为:在执行OnlineDDL时,会生成一个结构即临时,再将旧表数据拷贝,过程还会进行建触发器等操作,保证拷过程增量同步。...准备开始thoma write回填数据之前,需要在存储层推版本,确保当前没有处于delete only状态节点,保证任何请求都会增量同步临时。...之后再进行thomas write操作按照加索引方式,MC获取时间戳,再用时间戳扫数据老表上将旧数据回迁到,thomas write机制可以保证整体回迁过程与原事务并发正确性,最后再进行临时命名

90831

如何用 Python 执行常见 Excel 和 SQL 任务

使用 Python 最大优点之一是能够网络巨大范围获取数据能力,而不是只能访问手动下载文件。...有关数据结构,列表和词典,如何在 Python 运行更多信息,本教程将有所帮助。...使用一代码,我们已经将这些数据分配保存到 Pandas dataframe - 事实证明是这种情况,字典是要转换为 dataframe 完美数据格式。 ?...轻松地使用它来快速查看数据集,而无需加载整个数据集!如果要查看特定数量,还可以在 head() 方法插入行数。 ? ?...我们将要重命名某些列,在 Excel ,可以通过单击列名称键入新名称,在SQL,你可以执行 ALTER TABLE 语句或使用 SQL Server sp_rename。

10.7K60

用Python执行SQL、Excel常见任务?10个方法全搞定!

使用 Python 最大优点之一是能够网络巨大范围获取数据能力,而不是只能访问手动下载文件。...有关数据结构,列表和词典,如何在 Python 运行更多信息,本篇将有所帮助。...轻松地使用它来快速查看数据集,而无需加载整个数据集!如果要查看特定数量,还可以在 head() 方法插入行数。 ? ?...我们将要重命名某些列,在 Excel ,可以通过单击列名称键入新名称,在SQL,你可以执行 ALTER TABLE 语句或使用 SQL Server sp_rename。...我们有一个干净、包含我们想要数据。 这是一个非常肤浅分析:你想实际做一个加权平均数,因为每个国家的人均 GDP 代表一个群体每个国家的人均 GDP,因为在群体的人口不同。

8.2K20

两则数据库优化分析与解决

而其实我之前是有讲过,在数据操作,(SQL SERVER , MYSQL , PG, Oracle),这几类RDS 数据库都最好都不要使用(尤其查询很慢)insert into select...我们建议方法是,查询和插入要分开,并且ORACLE SQL SERVER ,PG都有良好临时机制,尤其是SESSION 基别的。...数据优化,是希望能批次一次性处理,就不要分多次处理(例如游标方式),而在MYSQL 思想,短而小事务,其实放到其他数据使用也是有益处。终归长期霸占 X锁,这绝对是美好。...这里给出解决方法 1 采用 ORACLE 临时 SESSION级别的,那每次将数据插入临时,然后在将临时数据 insert into 最终,这样降低insert into select...这样既保证有重复插入批量回滚,同时也能知道到底哪些,曾经有重复值妄图想插入。算是一个一举两得idea。

70610

配置详解 | performance_schema全方位介绍

这个类别包括了对持久基临时级访问(对数据获取插入,更新和删除),对于视图来说,instruments检测时会参照被视图引用访问情况  2)....INSTRUMENTED和HISTORY列生效值如下 ## 当joelocalhost连接到mysql server时,则连接符合第一个INSERT语句插入配置,threads对应配置INSTRUMENTED...和HISTORY列值变为YES ## 当joehosta.example.com连接到mysql server时,则连接符合第二个INSERT语句插入配置,threads对应配置INSTRUMENTED...语句插入配置,threads对应配置INSTRUMENTED和HISTORY列值变为NO ## 当sam任意主机(%匹配)连接到mysql server时,则连接符合第三个INSERT语句插入配置...如果在setup_actors中找到了对应用户名和主机,则会用该HISTORY字段生成theadsHISTORY字段值,setup_actorsUSER和HOST字段值也会一写入

9.5K81

数据库架构」三分钟搞懂事务隔离级别和脏读

这些行将被锁定,但是没有什么阻止添加符合条件。术语“幻像”适用于第二次执行查询时出现。 为了绝对确保同一事务两次读取返回相同数据,可以使用Serializable隔离级别。...这使用“范围锁”,如果与打开事务WHERE子句匹配,则可以防止添加这些。 通常,隔离级别越高,由于锁争用而导致性能越差。因此,为了提高读取性能,某些数据库还支持“读取未提交”。...未提交读取最容易理解。通过忽略写锁定,使用“读未提交”SELECT语句可以在事务完全提交之前看到插入或更新。如果该转换然后被回滚,那么逻辑上讲,SELECT操作将返回从不存在数据。...由于SQL Server 2000和更早版本尚未提供级版本控制,因此该版本已大量使用。尽管不再需要或建议使用,但该习惯仍然存在。...相反,它在级别使用一个读写器锁。(尽管在某些情况下插入操作可以绕过锁。) Oracle隔离级别 Oracle仅支持3个事务级别:读已提交,可序列化和只读。

1.3K30

【建议收藏】MySQL 三万字精华总结 —锁机制和性能调优(四)

对索引项之间“间隙”加锁,锁定记录范围(对第一条记录前间隙或最后一条将记录后间隙加锁),包含索引项本身。其他事务不能在锁范围内插入数据,这样就防止了别的事务新增幻影。...对 Query 查询条件进行简化和转换,去掉一些无用或显而易见条件、结构调整等。...子句子查询,外层select将被标记为DERIVED UNION RESULT:UNION获取结果select table(显示这一数据是关于哪张) type(显示查询使用了那种类型,...t2】 第五(执行顺序5):代表union临时读取阶段,table列表示用第一个和第四个select结果进行union操作。...Copying to tmp table on disk 把内存临时复制磁盘 诊断SQL,show profile cpu,block io for query id(上一步前面的问题SQL数字号码

87810
领券