
数据库
dta0502
个人博客:https://tding.top/
展开
-
MySQL嵌套子查询和相关子查询执行过程的区别
详细版本见个人博客:MySQL嵌套子查询和相关子查询执行过程的区别子查询可以分为 相关子查询 和 嵌套子查询 两类。一、本文用到的测试数据假设Books表如下:类编号图书名出版社价格2c#高级应用圣通出版23.002Jsp开发应用机械出版社45.003高等数学济南出版社25.003疯狂英语清华大学出版社32.00二、...转载 2019-06-17 16:56:00 · 3445 阅读 · 0 评论 -
【Leetcode】177. 第N高的薪水
题目描述编写一个 SQL 查询,获取 Employee 表中第 n 高的薪水(Salary)。+----+--------+| Id | Salary |+----+--------+| 1 | 100 || 2 | 200 || 3 | 300 |+----+--------+例如上述 Employee 表,n = 2 时,应返回第二高的薪水 200。...原创 2019-03-06 20:06:19 · 253 阅读 · 0 评论 -
【Leetcode】627. 交换工资
题目描述给定一个 salary 表,如下所示,有 m=男性 和 f=女性 的值 。交换所有的 f 和 m 值(例如,将所有 f 值更改为 m,反之亦然)。要求使用一个更新(Update)语句,并且没有中间临时表。请注意,你必须编写一个 Update 语句,不要编写任何 Select 语句。例如:| id | name | sex | salary ||----|------|-----|...原创 2019-03-06 16:54:22 · 238 阅读 · 0 评论 -
【Leetcode】595. 大的国家
题目描述这里有张 World 表+-----------------+------------+------------+--------------+---------------+| name | continent | area | population | gdp |+-----------------+---------...原创 2019-03-06 16:09:12 · 228 阅读 · 0 评论 -
【Leetcode】596. 超过5名学生的课
题目描述有一个courses 表 ,有: student (学生) 和 class (课程)。请列出所有超过或等于5名学生的课。例如,表:+---------+------------+| student | class |+---------+------------+| A | Math || B | English || ...原创 2019-03-06 15:59:07 · 220 阅读 · 0 评论 -
【Leetcode】197. 上升的温度
题目描述给定一个 Weather 表,编写一个 SQL 查询,来查找与之前(昨天的)日期相比温度更高的所有日期的 Id。+---------+------------------+------------------+| Id(INT) | RecordDate(DATE) | Temperature(INT) |+---------+------------------+--------...原创 2019-03-06 15:12:48 · 309 阅读 · 0 评论 -
【Leetcode】196. 删除重复的电子邮箱
题目描述编写一个 SQL 查询,来删除 Person 表中所有重复的电子邮箱,重复的邮箱里只保留 Id 最小 的那个。+----+------------------+| Id | Email |+----+------------------+| 1 | john@example.com || 2 | bob@example.com || 3 | jo...原创 2019-03-06 11:21:49 · 210 阅读 · 0 评论 -
SQL DELETE 语句及使用表名使用别名的方法
DELETE 语句用于删除表中的行。语法如下DELETE FROM 表名称 WHERE 列名称 = 值例如:DELETE FROM user WHERE name = 'Wilson' 当表名使用别名时,语法如下DELETE 别名 FROM 表名称 别名 WHERE 列名称 = 值例如:DELETE t FROM user t WHERE name = 'Wilson' ...转载 2019-03-06 11:10:33 · 1243 阅读 · 0 评论 -
MySQL中删除重复数据只保留一条
查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断。SELECT *FROM peopleWHERE peopleName IN ( SELECT peopleName FROM people GROUP BY peopleName HAVING count(peopleName) > 1 ...转载 2019-03-05 21:37:34 · 134 阅读 · 0 评论 -
【Leetcode】178. 分数排名
题目描述编写一个 SQL 查询来实现分数排名。如果两个分数相同,则两个分数排名(Rank)相同。请注意,平分后的下一个名次应该是下一个连续的整数值。换句话说,名次之间不应该有“间隔”。+----+-------+| Id | Score |+----+-------+| 1 | 3.50 || 2 | 3.65 || 3 | 4.00 || 4 | 3.85 ||...原创 2019-03-06 22:05:18 · 303 阅读 · 0 评论 -
MySQL判断奇数偶数
实现方法按位与select * from cinema WHERE id&1; id先除以2然后乘2 如果与原来的相等就是偶数select * from cinema WHERE id=(id>>1)<<1; 正则匹配最后一位select * from cinema WHERE id regexp '[13579]$';select *...转载 2019-03-04 11:07:56 · 5185 阅读 · 0 评论 -
【Leetcode】180. 连续出现的数字
题目描述编写一个 SQL 查询,查找所有至少连续出现三次的数字。+----+-----+| Id | Num |+----+-----+| 1 | 1 || 2 | 1 || 3 | 1 || 4 | 2 || 5 | 1 || 6 | 2 || 7 | 2 |+----+-----+例如,给定上面的 Logs 表, 1 是唯一...原创 2019-03-07 10:26:24 · 225 阅读 · 0 评论 -
MySQL中的GROUP BY获取其他字段方法
详细版本见个人博客:MySQL中的GROUP BY获取其他字段方法创建测试数据CREATE TABLE语句用于创建表,在test数据库下面创建一张名为show_plan的表:create table show_plan(id int primary key auto_increment,name varchar(255),desp int,price int);INSERT ...原创 2019-06-17 16:54:32 · 16490 阅读 · 3 评论 -
MySQL实现Rank高级排名函数
MySQL中没有Rank排名函数,当我们需要查询排名时,只能使用MySQL数据库中的基本查询语句来查询普通排名。尽管如此,可不要小瞧基础而简单的查询语句,我们可以利用其来达到Rank函数一样的高级排名效果。在这里我用一个简单例子来实现排名的查询:首先我们先创建一个我们需要进行高级排名查询的players表,CREATE TABLE `players` ( `pid` int(2) NOT...转载 2019-06-17 16:52:32 · 619 阅读 · 0 评论 -
MySQL声明变量以及赋值
MySQL 的变量分为四种: 局部变量 、 用户变量 、 会话变量 和 全局变量 ,其中局部变量只存在于函数和存储过程,这里不多了解。其中 会话变量 和 全局变量 在 MySQL 中统称为 系统变量 。用户变量SET 方式# 两种方式都可以SET @variable = exprSET @variable := exprSELECT 方式# 必须 :=SELECT @variab...转载 2019-06-17 16:51:43 · 8604 阅读 · 0 评论 -
MySQL求差集
求两个查询结果的差集,MySQL直接提供了关键字not in,但是not in的效率极其低下,这时我们可以使用左链接的方式求查询。例题:查询在usertable表中的用户但不在blog中的用户。NOT IN 实现SELECT id FROM usertableWHERE id NOT IN (SELECT id FROM blog);左外联结实现SELECT id FROM us...转载 2019-03-19 13:55:32 · 956 阅读 · 0 评论 -
SQL WEEK()函数
WEEK(date[,mode])函数说明此函数返回日期的周数。双参数的形式WEEK()允许你指定星期是否开始于周日或周一,以及是否返回值应在范围从0到53或从1到53。 如果省略了mode参数,系统default_week_format变量的值被使用。 Mode 一个星期的第一天 范围 Week 1 是第一个星期 ...转载 2019-03-11 13:13:15 · 20988 阅读 · 0 评论 -
MySQL中TIMESTAMPDIFF和TIMESTAMPADD函数的用法
本文介绍两个函数TIMESTAMPDIFF和TIMESTAMPADD。TIMESTAMPDIFF语法:TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2)。说明:返回日期或日期时间表达式datetime_expr1和datetime_expr2之间的整数差。其结果的单位由interval参数给出。该参数必须是以下值的其中一个:F...转载 2019-03-11 12:25:53 · 294 阅读 · 0 评论 -
【Leetcode】626. 换座位
题目描述小美是一所中学的信息科技老师,她有一张 seat 座位表,平时用来储存学生名字和与他们相对应的座位 id。其中纵列的 id 是连续递增的小美想改变相邻俩学生的座位。你能不能帮她写一个 SQL query 来输出小美想要的结果呢?示例:+---------+---------+| id | student |+---------+---------+| 1 ...原创 2019-03-07 16:36:36 · 424 阅读 · 0 评论 -
【Leetcode】184. 部门最高工资
题目描述Employee 表包含所有员工信息,每个员工有其对应的 Id, salary 和 department Id。+----+-------+--------+--------------+| Id | Name | Salary | DepartmentId |+----+-------+--------+--------------+| 1 | Joe | 70000 ...原创 2019-03-07 15:33:28 · 250 阅读 · 0 评论 -
【Leetcode】182. 查找重复的电子邮箱
题目描述编写一个 SQL 查询,查找 Person 表中所有重复的电子邮箱。示例:+----+---------+| Id | Email |+----+---------+| 1 | a@b.com || 2 | c@d.com || 3 | a@b.com |+----+---------+根据以上输入,你的查询应返回以下结果:+---------+| Em...原创 2019-03-05 20:28:52 · 171 阅读 · 0 评论 -
【Leetcode】183. 从不订购的客户
题目描述某网站包含两个表,Customers 表和 Orders 表。编写一个 SQL 查询,找出所有从不订购任何东西的客户。Customers 表:+----+-------+| Id | Name |+----+-------+| 1 | Joe || 2 | Henry || 3 | Sam || 4 | Max |+----+-------+O...原创 2019-03-05 20:12:24 · 194 阅读 · 0 评论 -
MongoDB对数据排序后导出csv文件
mongoexport -h 127.0.0.1:27017 -d mydb -c audits --sort {createDate:1} --type=csv -f code,name,link -o town.csv参数说明:-h 数据地址:端口-c 数据库集合名称(表名称)--sort 对查询结果按照某个字段进行排序--type=csv 指定查询结果输出格式,csv或者jso...原创 2018-11-08 19:12:50 · 1044 阅读 · 0 评论 -
MongoDB字段删除
字段删除使用update命令,update命令格式:db.collection.update(criteria,objNew,upsert,multi)参数说明:criteria:查询条件。objNew:update对象和一些更新操作符。upsert:如果不存在update的记录,是否插入objNew这个新的文档,true为插入,默认为false,不插入。multi:默认是fal...转载 2018-10-29 16:40:12 · 329 阅读 · 0 评论 -
Python3操作Mongodb简明易懂教程
转载于:Python3操作Mongodb简明易懂教程Pymongo是Python的一个操作Mongodb的库。连接数据库链接数据库需要提供一个地址和接口即可。from pymongo import MongoClientconn = MongoClient('localhost',27017)当然,你可以使用如下写法:conn = MongoClient('mongodb://lo...转载 2018-10-26 14:00:52 · 858 阅读 · 0 评论 -
bson.errors.InvalidDocument: Cannot encode object:错误的一种解决方法
在Python中利用pandas库的read_csv函数读取CSV文件,文件中包含有数值型值,然后将其转换成字典存入Mongodb数据库中,但是在插入数据库中会报错:bson.errors.InvalidDocument: Cannot encode object:这是因为pandas库在读取数值型值时返回的结果不是整型或者浮点型,而是numpy.int64类型的一个对象,Mongodb是无...转载 2018-10-29 11:21:14 · 4035 阅读 · 1 评论 -
MongoDB排序错误:Sort operation used more than the maximum 33554432 bytes of RAM
错误描述我用如下命令查询某一个键的最大值:db.video_info.find().sort({'vid':-1})出现如下错误:Error: error: { "ok" : 0, "errmsg" : "Executor error during find command: OperationFailed: Sort operation used mor...原创 2018-10-28 11:02:54 · 2554 阅读 · 0 评论 -
Ubuntu16.04下MongoDB的安装和使用
MongoDB 安装sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6#下面命令针对ubuntu16.04版本,在其他ubuntu版本系统请查看MongoDB官网echo "deb [ arch=amd64,arm64 ] htt...转载 2018-10-20 13:52:47 · 407 阅读 · 0 评论 -
MySQL 插入中文错误:Incorrect string value: '\xE7\xA8\x8B\xE5\xBA\x8F...' for column 'course' at row 1
错误描述Incorrect string value: '\xE7\xA8\x8B\xE5\xBA\x8F...' for column 'course' at row 1出现这个错误的原因是,数据库的编码格式为latin1 而我要将utf8的中文插入到数据库中。解决方案首先修改数据库的编码:alter table score default character set utf8;...转载 2018-10-17 00:39:06 · 439 阅读 · 0 评论 -
Windows 安装 MongoDB 卡住问题解决
MongoDB 的安装过程比较简单,一路next就可以,需要注意的是最后一步,勾选掉 mongo db compass,不安装,不然会因为一直下载这个工具,导致安装卡主。如下图mongo db compass 是个图形工具,可以方便直接管理 mongodb 数据,不过都是我们一般都是基于命令行工作,所以不需要...转载 2018-09-19 18:21:57 · 1843 阅读 · 0 评论 -
Redis:WRONGTYPE Operation against a key holding the wrong kind of value
错误信息redis.clients.jedis.exceptions.JedisDataException: WRONGTYPE Operation against a key holding the wrong kind of value分析当前程序中key的操作类型,并不与redis库中存在的key的类型相匹配。举例:第一次保存key,将其设置为key-value形式[root@...转载 2018-11-15 15:46:51 · 741 阅读 · 0 评论 -
Redis 启动警告解决
警告Increased maximum number of open files to 10032 (it was originally set to 1024).问题分析这条警告是说:最大文件打开数不够。解决方法一如果是root用户,那么修改下 ulimit 就可以。#查看系统限制ulimit -a #设置“open files”数量ulimit -n 10032 #或...转载 2018-11-16 16:20:42 · 2417 阅读 · 0 评论 -
Mongodb sort()方法的size限制
问题描述当我对一个没有建索引的字段做find,然后做sort的时候,可能触发sort的size的32MB限制,例如:db.getCollection('Hotel').find({"time_stamp":{"$lte":1485878400}}).sort({"time_stamp": -1})错误如下:Error: error: {"$err" : "Executor error:...转载 2018-11-30 10:53:16 · 1349 阅读 · 0 评论 -
【Leetcode】181. 超过经理收入的员工
题目描述Employee 表包含所有员工,他们的经理也属于员工。每个员工都有一个 Id,此外还有一列对应员工的经理的 Id。+----+-------+--------+-----------+| Id | Name | Salary | ManagerId |+----+-------+--------+-----------+| 1 | Joe | 70000 | 3 ...原创 2019-03-05 16:50:07 · 222 阅读 · 0 评论 -
【Leetcode】176.第二高的薪水
题目描述编写一个 SQL 查询,获取 Employee 表中第二高的薪水(Salary) 。+----+--------+| Id | Salary |+----+--------+| 1 | 100 || 2 | 200 || 3 | 300 |+----+--------+例如上述 Employee 表,SQL查询应该返回 200 作为第二高的薪水。...原创 2019-03-05 15:42:02 · 160 阅读 · 0 评论 -
【Leetcode】620. 有趣的电影
题目描述某城市开了一家新的电影院,吸引了很多人过来看电影。该电影院特别注意用户体验,专门有个 LED显示板做电影推荐,上面公布着影评和相关电影描述。作为该电影院的信息部主管,您需要编写一个 SQL查询,找出所有影片描述为非 boring (不无聊) 的并且 id 为奇数 的影片,结果请按等级 rating 排列。例如,下表 cinema:+---------+-----------+---...原创 2019-03-04 22:09:00 · 268 阅读 · 0 评论 -
【Leetcode】175. 组合两个表
题目描述表1: Person+-------------+---------+| 列名 | 类型 |+-------------+---------+| PersonId | int || FirstName | varchar || LastName | varchar |+-------------+---------+Pe...原创 2019-03-04 21:52:38 · 161 阅读 · 0 评论 -
Win10下MySQL安装配置
官网下载下面是mysql-8.0.13-winx64.zip版下载链接:https://dev.mysql.com/downloads/file/?id=480557配置系统环境变量复制解压后的mysql到C盘或者其他磁盘下。我们去系统的环境变量的path里添加一个mysql的配置 ,指向mysql的bin目录。配置初始化的my.ini文件的文件解压后的目录并没有的my.ini文件,...原创 2018-12-20 15:42:48 · 492 阅读 · 0 评论 -
Linux查看MySQL安装路径
查看文件安装路径由于软件安装的地方不止一个地方,所有先说查看文件安装的所有路径(地址)。这里以mysql为例。比如说我安装了mysql,但是不知道文件都安装在哪些地方、放在哪些文件夹里,可以用下面的命令查看所有的文件路径whereis mysql回车,如果你安装好了mysql,就会显示文件安装的地址,例如我的显示(安装地址可能会不同)mysql: /usr/bin/mysql /usr...转载 2018-12-06 11:40:48 · 260 阅读 · 0 评论 -
MongoDB 运行 service mongod start 后服务没有启动成功
问题描述查看日志(/var/log/mongodb/mongodb.log)有如下信息Wiredtiger error(13).....file:WiredTiger.wt,connection:/var/lib/mongodb/WiredTiger.turtle:handle-open:open:Permission denied问题出现原因1、权限问题。service mong...转载 2018-11-30 13:38:02 · 9474 阅读 · 0 评论