sql
文章平均质量分 87
_小鱼塘
理工男,程序员
展开
-
mysql数据库sql实战三
问题1:删除emp_no重复的记录,只保留最小的id对应的记录drop table if EXISTS titles_test;CREATE TABLE titles_test ( id int(11) not null primary key, emp_no int(11) NOT NULL, title varchar(50) NOT NULL, from_date date NOT NULL, to_date date DEFAULT NULL)ENGINE=InnoDB DEFA原创 2021-05-28 19:18:24 · 129 阅读 · 0 评论 -
mysql数据库sql实战二
提前准备需要的表和初始化一些简单的数据drop table if EXISTS film;create table film( film_id tinyint(3) not null, title varchar(255) not null, description text, primary key (film_id))ENGINE=InnoDB DEFAULT CHARSET=utf8;原创 2021-05-27 19:06:37 · 498 阅读 · 1 评论 -
mysql数据库sql实战一
准备需要的表和初始化一些数据:drop table if EXISTS employees;create table employees( emp_no int(11) not null, birth_date date not null, first_name varchar(14) not null, last_name varchar(16) not null, gender char(1) not null, hire_date date not null, primary k原创 2021-05-26 21:00:23 · 220 阅读 · 0 评论 -
mysql事务--InnoDB存储引擎事务
事务就是一组原子性的 SQL 查询,或者说一个独立的工作单元,如果其中有任何一条语句因为崩溃或其他原因无法执行,那么所有的语句都不会执行。也就是说,事务内的语句,要么全部执行成功,要么全部执行失败;一个良好的事务处理系统,必须具备 ACID 特性:-- atomicity(原子性) :要么全执行,要么全都不执行;-- consistency(一致性):在事务开始和完成时,数据都必须保持一致状态;-- isolation(隔离性) :事务处理过程中的中间状态对外部是不可见的;-- dur原创 2021-04-19 09:46:02 · 290 阅读 · 0 评论 -
mysql 锁
一、全局锁全局锁:所有的表都变成只读状态,数据更新或者字段更新将会被阻塞;使用场景:全局锁一般用在整个库(包含非事务引擎表)做备份(mysqldump 或者xtrabackup)时,也就是说,在整个备份过程中,整个库都是只读的,其实这样风险挺大的。如果是在主库备份,会导致业务不能修改数据;而如果是在从库备份,就会导致主从延迟;drop table if exists t14;CREATE TABLE `t14` ( `id` int(11) NOT NULL AUTO_INCREMENT原创 2021-04-19 09:15:57 · 144 阅读 · 0 评论 -
mysql数据库定位并分析慢查询
最近在工作中遇到一些问题,譬如有些涉及到sql查询的请求很慢,一开始完全懵逼,毕竟实际业务的sql很长,很难找到一个入口去分析,后来经过了度娘,谷歌等等各种查找,终于在一篇文章中看到了一个概念:慢查询,后来才知道这叫做慢查询,于是就有了这篇文章,记录下自己在解决问题的过程中学到的一些技巧;一、mysql数据库开启慢查询#开启慢查询set GLOBAL slow_query_log=on;#设置慢查询时间阀set GLOBAL long_query_time=1;二、定...原创 2021-04-13 13:46:42 · 316 阅读 · 0 评论 -
SQL事务
事务(Transaction)是数据库中的一个核心概念,指的是将数据库的一组操作作为一个整体,要么全部执行,要么都不执行。一、理论1.1特性ACID原子性(Atomicity):每个事务都是一个整体,不可再拆分,事务中的 SQL 操作要么全部执行成功,要么全部失败。 一致性(Consistency):事务执行前后数据库的状态必须保持一致;如 A 转账给 B,转账后金额的总数是不变的。 隔离性(Isolation):事务与事务之间互不影响,彼此隔离; 持久性(Durability):...原创 2021-02-25 17:11:02 · 146 阅读 · 0 评论 -
关于MySQL中自增列的理解
一张表,里面有ID自增主键,当insert了17条记录之后,删除了第15,16,17条记录,再把MySQL重启,再Insert一条记录,这条记录的ID是18还是15?题目背景不够清晰,表的存储引擎是InnoDB还是MyISAM,这么说的意义在于,自增列的信息在MyISAM和InnoDB中的维护逻辑是不大一样的,在MyISAM中是存储持久化在文件中的,当数据库重启之后,是可以通过持久化的信息持续...原创 2019-11-04 19:36:20 · 483 阅读 · 0 评论 -
如何利用sql查找表中的重复数据?
编写一个SQL查询,查找学生表中所有重复的学生名;分析思路1.看到“找重复”的关键字眼,首先要用分组函数(group by),再用聚合函数中的计数函数count()给姓名列计数。2. 分组汇总后,生成了一个如下的表。从这个表里选出计数大于1的姓名,就是重复的姓名;具体方法方法一:第一步:创建一个辅助表,将姓名列进行行分组汇总;select 姓名, count(姓...原创 2019-11-04 19:36:32 · 3500 阅读 · 0 评论 -
如何提高SQL查询的效率?
1. select子句中尽量避免使用*select子句中,*是选择全部数据的意思,比如语句:“select*from成绩表”,意思是选择成绩表中所有列的数据;面对动辄十万、百万,甚至上千万的数据,此时需要哪些列的数据,就提取哪些列的数据,尽量少用*来获取数据;2. where子句比较符号左侧避免函数尽量避免在where条件子句中,比较符号的左侧出现表达式、函数等操作。因为这...原创 2019-11-04 19:36:43 · 306 阅读 · 0 评论