
【数据库】
数据库
汪雯琦
产品经理·Python·数据分析·数据挖掘·机器学习·人工智能
-
原创 SQL中关于换座位的问题
需求小美是一所中学的信息科技老师,她有一张 seat 座位表,平时用来储存学生名字和与他们相对应的座位 id。其中纵列的 id 是连续递增的小美想改变相邻俩学生的座位。你能不能帮她写一个 SQL query 来输出小美想要的结果呢?示例:假如数据输入的是上表,则输出结果如下:注意:如果学生人数是奇数,则不需要改变最后一个同学的座位。解答使用 CASE算法对于所有座位 i...2020-05-02 15:49:22712
1
-
原创 对关联优化查询建议
【关联优化查询建议】1、保证被驱动表的join字段已经被索引 被驱动表 join 后的表为被驱动表 (需要被查询)2、left join 时,选择小表作为驱动表,大表作为被驱动表。 但是 left join 时一定是左边是驱动表,右边是被驱动表3、inner join 时,mysql会自己帮你把小结果集的表选为驱动表。 mysql 自动选择。小表作为驱动表...2020-04-24 20:30:47435
2
-
原创 SQL语言的执行顺序
数据库系统执行一段SQL语言时的工作流程首先去找from或join中提到的表,确定所需要的的表是否存在根据where语句中筛选条件对记录进行筛选,只保留满足条件的记录如果有的话执行聚合语句group by和筛选语句having的部分最后执行select部分的相关语句...2020-04-16 22:34:04209
0
-
原创 SQL中怎么查询阅读时间在营销活动推广时间一天内
create table push_reader as select DISTINCT a.*,b.drop_dt from `sony_push detail` a inner join sony_push b on a.camp_id = b.camp_id where a.read_date>=b.drop_dt and a.read_date<=date(b.drop_...2020-04-16 21:45:35230
0
-
原创 SQL中永久的修改表的字段名字
永久修改字段名字,需要创建新表原表:select *from sony_members;短暂修改表的字段名字:select age as age2 from sony_members;永久修改表的字段名字ALTER TABLE sony_members CHANGE age age2 int;select *from sony_members;...2020-04-15 23:27:401053
0
-
原创 SQL中将同一个字段的日期时间进行拆分
数据里子:注册日期字段为‘2020-10-09’这样我们将它拆分为年份和日期可以使用SQL中的left函数和right函数用以取出某个字符串中特定长度的字符代码如下:select member_id,left(registration_date,4) as year,right(registration_date,5) as date from sony_members;原来...2020-04-15 23:21:131992
0
-
原创 SQL中怎么表示不等于你知道吗?SQL中怎么筛选奇数偶数?
不等于:尽量用<>表示,大部分都是支持的筛选奇数:mod(id,2) 也可以直接用 id % 2来表示=12020-04-12 21:51:451126
0
-
原创 SQL中怎么增加一列,且值根据其它字段的情况而不同(case when。。。then。。。else。。。end)
名称表name由于 id1 和 id2 中存在一定量的空值记录,现在原表基础上添加一列,要求:当 id1 为空 时,记录 id2 的值;当 id2 为空时,记录 id1 的值。请写出满足条件的 SQL。select * from name;select id1,id2 from name;select id1,id2,case when id1 is null then id2 el...2020-04-11 13:52:40693
0
-
原创 SQL中怎么去除重复的号码,并且保留最早填写的
个人信息表的重复号码个人信息表 info:唯一主键注册人员编号 no,注册日期 ctime,以及手机号码 phone_num。由于一个注册人 只能有一个注册手机号码,系统中手机号存在重复,属于系统 bug。(1)、找出重复的手机号码,以及对应的注册人信息;select * from info;select phone_num,count(phone_num) from info gr...2020-04-11 13:39:44772
0
-
原创 SQL中开窗函数row_number() over的用法
作用可用于一下类似题目:去除重复的项,保留最低的价格开窗函数row_number()的基本语法为row_number() over (partition by column1, column2 order by column3 desc) as new_name该函数的作用是,按照column1和column2对数据进行分组,在每一个分组内,按照column3进行排序,排序之后,对每一...2020-04-11 13:33:19485
0
-
原创 学完这个语句,你可以做出所有的SQL笔试题(查询到的表格怎么存储再次使用)
视观表 (View) 可以被当作是虚拟表格。它跟表格的不同是,表格中有实际储存资料,而视观表是建立在表格之上的一个架构,它本身并不实际储存资料。建立一个视观表的语法如下:CREATE VIEW "VIEW_NAME" AS "SQL 语句";例子:我们查询到:select a.SKU_ID,a.logday,a.sale_amt,b.bu_name,b.brand_name,b.use...2020-04-06 17:02:071249
0
-
原创 SQL中的case...when...还能这么用(计算好评率、计算出有条件的字段的数量)
文章目录SQL之CASE WHEN用法详解场景1:有分数score,score<60返回不及格,score>=60返回及格,score>=80返回优秀场景2:现老师要统计班中,有多少男同学,多少女同学,并统计男同学中有几人及格,女同学中有几人及格,要求用一个SQL输出结果。场景3:经典行转列,并配合聚合函数做统计,现要求统计各个城市,总共使用了多少水耗、电耗、热耗,使用一条SQL...2020-04-06 15:03:521079
2
-
原创 在执行SQL语句的时候,执行顺序和我们的语法顺序是一样的吗?有什么不同呢?
SQL 语句的执行顺序跟其语句的语法顺序并不一致一般而言SQL 语句的语法顺序是:SELECT[DISTINCT]FROMWHEREGROUP BYHAVINGUNIONORDER BY其执行顺序为:FROMWHEREGROUP BYHAVINGSELECTDISTINCTUNIONORDER BY需要注意的是:1、 FROM ...2020-04-05 17:51:091052
0
-
原创 SQL中查看表的创建语句、修改表的引擎类型
查看表的创建语句:show create table goods;修改引擎:修改表的存储引擎使用: alter table 表名 engine = 引擎类型;比如:alter table students engine = 'MyISAM';2020-03-30 21:59:02384
1
-
原创 SQL中pysql的使用步骤
1.导包 import pymysql2.创建连接对象 pymysql.connect(参数列表)3.获取游标对象 cursor =conn.cursor()4.执行SQL语句 row_count = cursor.execute(sql)5.获取查询结果集 result = cursor.fetchall()6.将修改操作提交到数据库 conn.commit()...2020-03-30 21:42:07544
0
-
原创 SQL中怎么快速修改表格结构
原来的:我们要把类名字、品牌名字改成类id和品牌id:alter table goods change cate_name cate_id int not null,change brand_name brand_id int not null;改之后:2020-03-30 13:07:45346
0
-
原创 SQL中创建表的时候如何同时给某个字段添加数据
文章目录1. 思考2. 创建品牌表3. 更新goods表中的品牌信息4. 小结创建表并给某个字段添加数据学习目标能够写出创建表并给某个字段添加数据的SQL语句1. 思考上一节课我们完成了商品分类表(good_cates)的创建和商品分类信息的添加以及把商品表(goods)中的商品分类名称改成了对应的商品分类id,假如我们想要添加一个品牌,比如:双飞燕这个品牌信息,只通过goods表无法完...2020-03-30 12:56:231596
0
-
原创 SQL中怎么创建外键和删除外键
文章目录1.什么是外键约束2.对于已经存在的字段添加外键约束3.在创建数据表时设置外键约束4. 删除外键约束(1)获取外键约束名称5. 小结1.什么是外键约束外键约束:对外键字段的值进行更新和插入时会和引用表中字段的数据进行验证,数据如果不合法则更新和插入会失败,保证数据的有效性2.对于已经存在的字段添加外键约束-- 为cls_id字段添加外键约束alter table students...2020-03-29 23:05:26897
1
-
原创 SQL中的子查询——可以结合聚合函数
文章目录1. 子查询的介绍2. 子查询的使用3. 小结1. 子查询的介绍在一个 select 语句中,嵌入了另外一个 select 语句, 那么被嵌入的 select 语句称之为子查询语句,外部那个select语句则称为主查询.主查询和子查询的关系:1.子查询是嵌入到主查询中2.子查询是辅助主查询的,要么充当条件,要么充当数据源3.子查询是可以独立存在的语句,是一条完整的 select...2020-03-29 17:25:13891
1
-
原创 SQL的连接查询——内连接、左连接、右连接、自连接(重要)
文章目录连接查询的介绍1.内连接查询2.左连接查询3.右连接查询4.自连接查询连接查询的介绍连接查询可以实现多个表的查询,当查询的字段数据来自不同的表就可以使用连接查询来完成。连接查询可以分为:内连接查询左连接查询右连接查询自连接查询1.内连接查询查询两个表中符合条件的共有记录select 字段 from 表1 inner join 表2 on 表1.字段1 = 表2.字...2020-03-28 23:54:15245
0
-
原创 SQL的分组查询——group by、with rollup、having、聚合函数、group_concat等
文章目录1. 分组查询介绍2. group by的使用根据gender字段来分组根据age字段分组、with rollup的初步使用根据name和gender多个字段进行分组3. group by + group_concat()的使用4. group by + 聚合函数的使用5. group by + having的使用6. group by + with rollup的使用7. 小结1. 分...2020-03-28 22:20:41529
1
-
原创 SQL的聚合函数——指定列的总行数、最大值、最小值、和、平均值、聚合函数控制的处理
文章目录1. 聚合函数的介绍指定列的总行数指定列的最大值指定列的最小值指定列的和指定列的平均值2. 求总行数3.求最大值4.求最小值5.求和6.求平均值7. 聚合函数的特点8. 小结1. 聚合函数的介绍聚合函数又叫组函数,通常是对表中的数据进行统计和计算,一般结合分组(group by)来使用,用于统计和计算分组数据。常用的聚合函数:指定列的总行数count(col): 表示求指定列的总...2020-03-28 21:51:17586
1
-
原创 SQL中的分页查询——limit(已知每页显示m条数据,求第n页显示的数据)
文章目录1. 分页查询的介绍2. 分页查询的语法3. 分页查询案例1. 分页查询的介绍当我们在京东购物,浏览商品列表的时候,由于数据特别多,一页显示不完,一页一页的进行显示,这就是分页查询2. 分页查询的语法select * from 表名 limit start,count说明:limit是分页查询关键字start表示开始行索引,默认是0count表示查询条数例1:查询前3行...2020-03-28 21:29:343585
1
-
原创 SQL中的排序
文章目录1. 排序查询语法排序查询语法:1. 排序查询语法排序查询语法:select * from 表名 order by 列1 asc|desc [,列2 asc|desc,...]语法说明:先按照列1进行排序,如果列1的值相同时,则按照 列2 排序,以此类推asc从小到大排列,即升序desc从大到小排序,即降序默认按照列值从小到大排列(即asc关键字)例1:查询未删除男生信...2020-03-28 21:15:50210
1
-
原创 SQL中的where条件查询——- 比较运算符 - 逻辑运算符 - 模糊查询 - 范围查询 - 空判断
文章目录where支持的运算符where条件查询的格式比较运算符逻辑运算符查询模糊查询范围查询空判断where支持的运算符比较运算符逻辑运算符模糊查询范围查询空判断where条件查询的格式select * from 表名 where 条件;例:select * from students where id = 1;比较运算符等于 =大于 >大于等于 >...2020-03-28 20:47:301338
1
-
原创 SQL中怎么去重呢——distinct关键字
查询表格select * from students; 去除name,gender重复的行去重前:select name,gender from students;去重后:select distinct name,gender from students;2020-03-28 10:11:39715
1
-
原创 SQL中给字段、表起别名的关键字as的使用方法
给字段、表起别名的关键字as在使用SQL语句显示结果的时候,往往在屏幕显示的字段名并不具备良好的可读性,此时可以使用 as 给字段起一个别名。1.使用as给字段起别名使用as之前:select id, name, gender from students;使用as之后:select id as 序号, name as 名字, gender as 性别 from students;...2020-03-27 15:41:343191
1
-
原创 SQL如何避免恢复不了的物理删除——采用逻辑删除
逻辑删除我们平时用的都是物理删除问题:物理删除,一旦删除就不容易恢复,我们可以使用逻辑删除的方式来解决这个问题。– 添加删除表示字段,0表示未删除 1表示删除alter table students add isdelete bit default 0;– 逻辑删除数据update students set isdelete = 1 where id = 8;说明:逻辑删除,本质...2020-03-27 11:36:41271
1
-
原创 【MySQL的操作命令大全】持续更新,欢迎补充
关于数据库的操作命令文章目录关于数据库的操作命令==登录数据库====显示当前时间====登出(退出)数据库====查看所有数据库====创建数据库====使用数据库====查看当前使用的数据库====删除数据库---慎重====查看创库语句====删除数据库==关于表的操作命令==查看当前数据库中的所有表====创建表====修改表-添加birthday字段====修改表-修改字段类型====...2020-03-22 23:52:5095
0
-
原创 SQL查询或者排序的时候不区分大小写
建表的时候排序规则设置为utf8_general_ci表示查询或排序的时候不区分大小写如果设置utf_bin表示以二进制的方式区分大小写2020-03-22 22:56:27371
1
-
原创 MySQL的常用数据类型速查、数据约束速查
常用的数据类型整数:int,bit小数:decimaldecimal表示浮点数,比如decimal(5,2)表示共存五位数,小数占2位字符串:varchar,char,textchar表示固定长度的字符串,比如char(3)表示如果输入‘ab’就会变成‘ab ’ ,3表示字符串数。text表示存储大文本,当字符大于4000时候推荐使用,比如博客。日期时间:date,time,da...2020-03-22 21:39:3879
1
-
原创 SQL语言有哪些
主要分为以下部分:DQL:数据查询语言,用于对数据进行查询,比如selectDML:数据操作语言,对数据进行增加、修改、删除如insert,update,deleteTPL:事务处理语言,对事务进行处理,包括bigin transacion,commit,roolbackDCL:数据控制语言,进行授权和权限回收,如grant,revokeDDL:数据定义语言,进行数据库、表的管理等,如...2020-03-22 20:29:56565
1
-
原创 关系型数据库管理系统的通俗解释
大致流程如下:用户操作数据库的客户端,借助网络连接服务端,怎么才能通信呢?给服务端发送SQL语句,服务端根据你的SQL在指定数据库里面进行查询。...2020-03-22 18:05:04296
1
-
原创 关系型数据库和非关系型数据库是什么
文章目录一、关系型数据库1.1 关系型数据库中核心元素1.2 常用的关系型数据库二、非关系型数据库2.1 常见的非关系型数据库一、关系型数据库采用了关系模型来组织数据的数据库,简单来说,关系模型指的就是二维表格模型,好比Excel文件中的表格,强调用表格的方式存储数据(有字段,表与表之间还有关系)1.1 关系型数据库中核心元素数据行数据列数据表数据库(数据表的集合)1.2 常用...2020-03-22 00:06:57447
1
-
原创 MySQL高级(七):创建索引的SQL语句、验证索引查询性能、MySQL中索引的优点和缺点和使用原则
文章目录索引1. 索引的介绍2. 索引的使用3. 案例-验证索引查询性能4. 联合索引5. 联合索引的最左原则6. MySQL中索引的优点和缺点和使用原则7. 小结索引学习目标能够写出创建索引的SQL语句1. 索引的介绍索引在MySQL中也叫做“键”,它是一个特殊的文件,它保存着数据表里所有记录的位置信息,更通俗的来说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。应...2020-03-12 21:40:36173
1
-
原创 MySQL高级(六):事务的四大特性和使用
文章目录事务1. 事务的介绍2. 事务的四大特性3. 事务的使用4. 小结事务学习目标能够知道事务的四大特性1. 事务的介绍事务就是用户定义的一系列执行SQL语句的操作, 这些操作要么完全地执行,要么完全地都不执行, 它是一个不可分割的工作执行单元。事务的使用场景:在日常生活中,有时我们需要进行银行转账,这个银行转账操作背后就是需要执行多个SQL语句,假如这些SQL执行到一半突...2020-03-12 21:39:48303
1
-
原创 MySQL高级(五):使用PyMySQL完成数据库的增删改查、Python程序操作MySQL数据库
文章目录PyMySQL的使用1. 思考2. Python程序操作MySQL数据库3. 小结PyMySQL的使用学习目标能够使用PyMySQL完成数据库的增删改查1. 思考如何实现将100000条数据插入到MySQL数据库?答案:如果使用之前学习的MySQL客户端来完成这个操作,那么这个工作量无疑是巨大的,我们可以通过使用程序代码的方式去连接MySQL数据库,然后对MySQL数据...2020-03-12 21:38:23145
1
-
原创 MySQL高级(四):修改表结构的SQL语句
文章目录修改goods表结构修改goods表结构小结修改goods表结构小结修改goods表结构能够写出修改表结构的SQL语句修改goods表结构目前我们已经把good表中的商品分类和品牌信息已经更改成了商品分类id和品牌id,接下来需要把 cate_name 和 brand_name 字段分别改成 cate_id和 brand_id 字段,类型都改成int类型-- 查看表结构d...2020-03-12 21:36:36257
0
-
原创 MySQL高级(三):创建表并给某个字段添加数据的SQL语句
文章目录创建表并给某个字段添加数据1. 思考2. 创建品牌表3. 更新goods表中的品牌信息4. 小结创建表并给某个字段添加数据学习目标能够写出创建表并给某个字段添加数据的SQL语句1. 思考上一节课我们完成了商品分类表(good_cates)的创建和商品分类信息的添加以及把商品表(goods)中的商品分类名称改成了对应的商品分类id,假如我们想要添加一个品牌,比如:双飞燕这个品...2020-03-12 21:35:56400
0
-
原创 MySQL高级(二):使用连接更新表中某个字段数据的SQL语句、
文章目录使用连接更新表中某个字段数据1. 更新goods表中的商品分类信息2. 小结使用连接更新表中某个字段数据学习目标能够知道使用连接更新表中某个字段数据的SQL语句1. 更新goods表中的商品分类信息上一节课我们已经创建了一个商品分类表(good_cates),并完成了商品分类信息的插入,现在需要更新goods表中的商品分类信息,把商品分类名称改成商量分类id。接下来我们实...2020-03-12 21:35:121305
1