随笔分类 -  03-数据库

摘要:什么是窗口函数 窗口函数(Window Function),又被叫做分析函数(Analytics Function)。 窗口函数允许用户在不显式分组查询的情况下对结果集进行分组和聚合计算。 窗口函数能够为结果集中的每一行计算类似排名、行号、百分比和移动聚合函数等值。 窗口函数原则上只能写在selec 阅读全文
posted @ 2024-10-23 19:23 .Neterr 阅读(494) 评论(0) 推荐(0)
摘要:概念 字符集 MySQL提供了多种字符集和排序规则选择,其中字符集设置和数据存储以及客户端与MySQL实例的交互相关,排序规则和字符串的对比规则相关 (1). 字符集的设置可以在MySQL实例、数据库、表、列四个级别 (2). MySQL设置字符集支持在InnoDB, MyISAM, Memory三 阅读全文
posted @ 2022-05-21 09:55 .Neterr 阅读(664) 评论(0) 推荐(0)
摘要:-- 行转列(利用group by+case when) select gender, sum(case when birth_date>'2000/01/01 00:00:00' AND birth_date<'2001/01/01 00:00:00' then 1 else 0 end ) as 阅读全文
posted @ 2022-03-27 22:56 .Neterr 阅读(4) 评论(0) 推荐(0)
摘要:SQL执行频率 SHOW GLOBAL STATUS LIKE 'Com_______' 结果如下: Com_insert:插入sql执行次数 Com_delete:删除sql执行次数 Com_update:更新sql执行次数 Com_select:查询sql执行次数 insert优化 批量插入 插 阅读全文
posted @ 2022-02-19 22:38 .Neterr 阅读(46) 评论(0) 推荐(0)
摘要:mysqldump 介绍 mysqldump 是 MySQL 自带的逻辑备份工具。 它的备份原理是通过协议连接到 MySQL 数据库,将需要备份的数据查询出来,将查询出的数据转换成对应的insert 语句,当我们需要还原这些数据时,只要执行这些 insert 语句,即可将对应的数据还原。 选项 实例 阅读全文
posted @ 2020-09-18 14:38 .Neterr 阅读(186) 评论(0) 推荐(0)
摘要:介绍 INFORMATION_SCHEMA提供了访问数据库元数据的方式。 元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等。 有些时候用于表述该信息的其他术语包括“数据词典”和“系统目录”。 操作: 删除mysql数据库某一张主键表的所有外键关系 SELECT CONCAT('a 阅读全文
posted @ 2020-09-18 13:56 .Neterr 阅读(186) 评论(0) 推荐(0)
摘要:MySQL、SQL SERVER提供了三种方法临时存储结果集,分别是临时表、表变量和公用表表达式。 临时表 临时表需要在临时数据库TempDB中通过I/O操作来创建表结构,一旦用户退出SQL Server环境,临时表会自动被删除。临时表有两种,一种是本地临时表,仅在当前会话中可见,前缀是【#】;一种 阅读全文
posted @ 2020-08-28 10:12 .Neterr 阅读(160) 评论(0) 推荐(0)
摘要:一个事务要更新一行,如果刚好有另外一个事务拥有这一行的行锁,会被锁住,进入等待状态。既然进入了等待状态,那么等到这个事务自己获取到行锁要更新数据的时候,它读到的值又是什么呢? 事务A事务B事务C start transaction consistent snapashot; start transa 阅读全文
posted @ 2020-08-08 16:50 .Neterr 阅读(360) 评论(0) 推荐(0)
摘要:显示当前服务器版本 ``` select version(); ``` 显示当前用户 ``` select user(); ``` 显示当前用户打开的数据库 ``` select database(); ``` 连接id ``` select connection_id(); ``` 最后插入记录i 阅读全文
posted @ 2020-07-20 18:01 .Neterr 阅读(140) 评论(0) 推荐(0)
摘要:# SQL分类 * `DDL(Data Definition Languages、数据定义语言)`,这些语句定义了不同的数据库、表、视图、索 引等数据库对象,还可以用来创建、删除、修改数据库和数据表的结构。 主要的语句关键字包括 CREATE 、 DROP 、 ALTER 等 * `DML(Data 阅读全文
posted @ 2020-07-19 20:38 .Neterr 阅读(463) 评论(0) 推荐(0)
摘要:当Mysql的查询缓存开启后,执行查询SQL语句时,SQL语句和数据会被缓存,下次查询直接从缓存中查,直到数据被修改,缓存失效,修改比较频繁的表不适合做查询缓存 当前数据库是否支持查询缓存 show variables like 'have_query_cache' 是否开启了查询缓存 show V 阅读全文
posted @ 2020-07-09 09:16 .Neterr 阅读(137) 评论(0) 推荐(0)
摘要:小表驱动大表,即小的数据集驱动大得数据集。在知道什么是小表驱动达大表之前,我们先来了解两个查询关键字,IN 与 EXISTS。我们通过两段查询语句先来了解一下它们的作用。我建立了两张表,一张员工表,一张部门表,将这两张表关联起来。 我们先使用IN 来查询数据: SELECT * FROM t_emp 阅读全文
posted @ 2020-06-27 10:08 .Neterr 阅读(505) 评论(0) 推荐(0)
摘要:简介 事务是一组操作的集合,它是一个不可分割的工作单元,事务会把所有操作作为一个整体向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。 事务的四大特性(ACID) 原子性(Atomicity) 事务是不可分隔的最小单元,多个操作要么全部成功,要么全部失败。原子性只能保证单个事务的一致性 阅读全文
posted @ 2020-06-26 16:19 .Neterr 阅读(159) 评论(0) 推荐(0)
摘要:默认关闭,除非需要查看慢sql日志,平时不要打开 以下设置都是临时有效,重启数据库后会失效,想要永久生效需要修改配置文件进行配置 参数说明 slow_query_log 慢查询开启状态 slow_query_log_file 慢查询日志存放的位置(这个目录需要MySQL的运行帐号的可写权限,一般设置 阅读全文
posted @ 2020-06-26 10:53 .Neterr 阅读(157) 评论(0) 推荐(0)
摘要:mysql中的explain命令可以查看sql语句是否使用了索引,用了什么索引,有没有全表扫描,帮助我们优化查询语句 查看索引 SHOW INDEX FROM 表名 EXPLAIN explain出来的信息有10列,主要介绍type、key、Extra这几个字段 id select 查询的序列号,表 阅读全文
posted @ 2020-06-23 00:25 .Neterr 阅读(130) 评论(0) 推荐(0)
摘要:介绍 索引是帮助 MySQL 高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式指向数据,这样就可以在这些数据结构上实现高级查询算法,这种数据结构就是索引。 优点 大大提高了查询速度,降低数据库的IO成本 通过索引列对数据进行排序,降低数 阅读全文
posted @ 2020-06-18 14:39 .Neterr 阅读(174) 评论(0) 推荐(0)
摘要:慎用!=、<>、OR、IS NULL、IS NOT NULL等,它们会导致索引失效,用以下方案 使用范围查询替代不等于!=、<> -- 原始低效查询 SELECT * FROM products WHERE status != 'out_of_stock'; -- 优化方案1:使用范围查询 SELE 阅读全文
posted @ 2020-06-14 22:49 .Neterr 阅读(274) 评论(1) 推荐(0)
摘要:简介 存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引擎是基于表而不是基于库的,所以存储引擎也可以被称为表引擎。 MySQL默认存储引擎是InnoDB。 相关操作 -- 查询建表语句 show create table account; -- 建表时指定存储引擎 CREATE 阅读全文
posted @ 2020-06-01 10:21 .Neterr 阅读(694) 评论(1) 推荐(0)
摘要::普通SQL语句可以用Exec执行 eg: Select * from tableName Exec('select * from tableName') Exec sp_executesql N'select * from tableName' -- 请注意字符串前一定要加N 2:字段名,表名,数 阅读全文
posted @ 2020-03-24 16:46 .Neterr 阅读(1871) 评论(0) 推荐(0)
摘要:如果想给自增列赋值,需先将自增关闭,插入完数据后再打开 set Identity_insert [tb1] on GO INSERT INTO [dbo].[tb1]([ID],[Name],[ClassName]) VALUES (4,'zhangsan','一班') GO set Identit 阅读全文
posted @ 2020-03-18 21:00 .Neterr 阅读(1823) 评论(0) 推荐(0)