原文首发于简书于[2018.07.30] ---- 网上有一篇关于SQL的经典文章,超经典SQL练习题,做完这些你的SQL就过关了,引用和分析它的人很多,于是今天复习SQL的时候找来练了练手。...原作者用的是SQL Server 2008,我在这里用的是MySQL 8.0.11(二者语法差别不大),文本编辑器用的是Atom 1.28.2(不知道大家用什么,反正用Atom写SQL确实丝质顺滑)。...在每道题题目下我除了放SQL语句外,还把MySQL的运行输出结果放了上来,展示效果更直观一些。另外,因为数据量非常小,所以就没考虑SQL语句的性能优化,只求顺利完成题目,并尽可能写得简单些。...开始之前,先从SQL常见的一些面试题(太有用啦)搬运几道我认为很不错的经典题目过来,这些题目的解法体现出来的方法和思路可以适用于本文的绝大部分题目,是必备的基础。 1....查询各科成绩前三名的记录 这是我比较喜欢的一道题目,非常经典。
前言最近在重新看数据库的相关知识,发现对sql的编写忘的差比多了,50道经典SQL题是网上广为流传的SQL题,很多人用它作为SQL入门学习,所以找来做做。题目来源于网上。...values('06' , '03' , 34);insert into SC values('07' , '02' , 89);insert into SC values('07' , '03' , 98);sql
经典SQL语句大全 一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server...score*1.01 where score<60 if (select min(score) from tb_table)>60 break else continue end 数据开发-经典...SET NOCOUNT 为 OFF 时,返回计数 常识 在SQL查询中:from后最多可以跟多少张表或视图:256在SQL语句中出现 Order by,查询时,先排序,后取在SQL中,一个字段的最大容量是....在发布服务器和订阅服务器上互相注册 企业管理器 --右键SQL Server组--新建SQL Server注册......Server--客户端网络实用工具 --别名--添加--网络库选择"tcp/ip"--服务器别名输入SQL服务器名--连接参数--服务器名称中输入SQL服务器ip地址--如果你修改了SQL的端口,取消选择
SQL语句参考,包含Access、MySQL 以及 SQL Server ---- 基础 创建数据库 CREATE DATABASE database-name 删除数据库 drop database...日程安排提前五分钟提醒 SQL: select * from 日程安排 where datediff('minute',f开始时间,getdate())>5 一条sql 语句搞定数据库分页 select...tb_table)>60 break else continue end ---- 数据开发-经典...profiler',N'SQL 事件探查器') EXEC sp_msforeach_worker '?'...SET NOCOUNT 为 OFF 时,返回计数 常识 在SQL查询中:from后最多可以跟多少张表或视图:256 在SQL语句中出现 Order by,查询时,先排序,后取 在SQL中,一个字段的最大容量是
8、创建视图: create view viewname as select statement 删除视图: drop view viewname 9、几个简单的sql语句 --选择: select *...text,ntext,image类型的字段作为分组依据 在select统计函数中的字段,不能和普通的字段放在一起; 二、进阶部分 1、复制表(只复制表结构,源表名:a 新表名:b) --方法一 仅用于SQL...d.d where ... .. 11、日程安排提前五分钟提醒 select * from 日程安排 where datediff('minute',f开始时间,getdate())>5 12、一条sql...nvarchar(600) set @sql=’select top’+str(@end-@start+1)+’+from T where rid not in( select top’+str(@...str-1)+’Rid from T where Rid>-1)’ exec sp_executesql @sql 13、前10条记录 select top 10 * form table1 where
直接创建索引和间接创建索引 直接创建:使用sql语句创建 间接创建:定义主键约束或者唯一性键约束,可以间接创建索引,主键默认为唯一索引。 b....善于使用存储过程,它使sql变得更加灵活和高效。...where A.key = B.key) where B.id in(select B.id from B, A where B.key = A.key); 事务就是被绑定在一起作为一个逻辑工作单元的SQL
转载自 http://blog.csdn.net/suyu_yuan/article/details/51784893 转自网络: 经典MSSQL语句大全和常用SQL语句命令的作用 下列语句部分是Mssql...order by newid() mysql select * From 表名 Order By rand() Limit n Access左连接语法(最近开发要用左连接,Access帮助什么都没有...根据SQL语句执行后是否返回记录集,该方法的使用格式分为以下两种: 1.执行SQL查询语句时,将返回查询得到的记录集。...2.执行SQL的操作性语言时,没有记录集的返回。...Server数据库里的活动用户和进程的信息 sp_who 'active' 查看SQL Server数据库里的锁的情况 sp_lock 进程号1--50是SQL
微信搜索公众号【C you again】,回复“SQL”下载无水印PDF版本,方便收藏 1 数据表 1.1 学生表 Student(SId,Sname,Sage,Ssex) SId 学生编号,Sname...Teacher(TId,Tname) TId 教师编号,Tname 教师姓名 1.4 成绩表 SC(SId,CId,score) SId 学生编号,CId 课程编号,score 分数 2 sql...语句 2.1 学生表 SQL create table Student(SId varchar (10),Sname varchar (10),Sage datetime,Ssex varchar (10...在SQL里面变量用@来标识。...END) AS "[60-0]" FROM sc LEFT JOIN course ON sc.cid = course.cid GROUP BY sc.cid; 3.20 查询各科成绩前三名的记录 mysql
by newid() mysql select * From 表名 Order By rand() Limit n Access左连接语法(最近开发要用左连接,Access帮助什么都没有,网上没有...on table1.fd1,table2.fd1 where … 使用SQL语句 用…代替过长的字符串显示 语法: SQL数据库:select case when len(field...根据SQL语句执行后是否返回记录集,该方法的使用格式分为以下两种: 1.执行SQL查询语句时,将返回查询得到的记录集。...2.执行SQL的操作性语言时,没有记录集的返回。...通过访问该变量,就可知道SQL语句队多少条记录进行了操作。
前言 在学习了Mysql的基础知识后,我们用一套sql练习题来实战一下。 关于练习所需要的数据,让我们继续玩坏倚天屠龙的江湖。...初始化数据的sql附在文章末尾 题目开始,先上几道硬菜,磕到牙齿的可以移步进阶题目和基础题目区压压惊。...面试中,很多有难度的sql也大多难在直接去考虑,难以获得答案。 难度:⭐⭐⭐⭐ 频率:⭐⭐ 思路:通常思路,我们先获取04号同学的课程,再遍历其他同学,以此筛选。...这种方式适用于编程,单纯的sql实现不了,我们应该从下面这个思路去考虑------>我和04号同学学习的课程数目一样多,且04号同学没学过的我也没学过,那么我不就是和04号同学学习的课程一样吗?...score FROM score GROUP BY s_id,c_id ORDER BY score DESC) a, (SELECT @i:= 0,@j:= 0,@score:= 0) s 简评:Mysql
SQL经典5道题 1:假设有一个“职工”表,表结构如下:(14分) 职工号 姓名 年龄 月工资 部门号 电话 办公室 1 张三 25 2000 1 12345 101 2 李四 26 1500 1 54321...问题: 查询每个部门中月工资最高的“职工号”的SQL查询语句如下: SELECT 职工号 FROM 职工 AS A WHERE职工.月工资 = (SELECT MAX(月工资) FROM 职工 AS B...问题: 假设在“职工”表中的“年龄”和“月工资”字段上创建了索引,下列的查询语句可能不会促使查询优化器使用索引,从而降低了效率,请写出可以完成相同功能又可以提高查询效率的SQL语句 SELECT 姓名,...请用SQL语句将“销售部”的那些工资数额低于600的职工的工资上调10%。...试用SQL语句表达下列操作: 1)定义职工表、社会团体表和参加表,并说明其主键和参照关系。 2)建立下列两个视图。
1.01 where score<60 if (select min(score) from tb_table)>60 break else continue end 数据开发-经典...request.getParameter("password"); String password2 = request.getParameter("password2"); Class.forName("com.mysql.jdbc.Driver..."); Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/bishe", "root", "admin");...conn.close(); response.sendRedirect("registerSuccess.jsp"); %> javaBean数据库连接: Class.forName("com.mysql.jdbc.Driver..."); Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/spring", "root", "bjsxt");
车站表: stops(id, name) 公交线路表: route(num, company, pos, stop) 一、对公交线路表route进行自...
HiveSQL经典优化案例一: 1.1 将要执行的查询(执行了 1个多小时才出结果): SELECT dt as DATA_DATE,STRATEGY,AB_GROUP,SOURCE, count...HiveSQL经典优化案例二: 问题描述:一个复杂的SQL,查询执行一段时间后报错:基本上是查不出来; 分析函数对于大表来说不是 hive的强项,这个时候我们将其分解成很多子集,并且合理利用 hive...HiveSQL经典优化案例三: 如下SQL,用到了 PERCENTILE_APPROX 函数,问题描述:如下SQL,用到了 PERCENTILE_APPROX 函数,个人初步分析认为:由于用到该函数的次数太多...我仔细查了一下该函数,发现:它是支持“数组传参”的,那么就不难找到优化该SQL的方法了。 ? 3.1 原SQL性能测试: ? 3.2 优化后的SQL,性能测试: ?...优化后的SQL,性能提升了4倍多。 ? ? ? 版权声明: 本文为大数据技术与架构整理,原作者独家授权。未经原作者允许转载追究侵权责任。 编辑|冷眼丶
从:sql执行线程——执行relay log中的语句; 详解:mysql主从复制 MySQL数据库自身提供的主从复制功能可以方便的实现数据的多处自动备份,实现数据库的拓展。...的二进制日志文件的变化,如果发现master二进制日志文件发生变化,则会把变化复制到自己的中继日志中,然后slave的一个SQL线程会把相关的“事件”执行到自己的数据库中,以此实现从数据库和主数据库的一致性...(1)有多少种日志 错误日志:记录出错信息,也记录一些警告信息或者正确的信息 查询日志:记录所有对数据库请求的信息,不论这些请求是否得到了正确的执行 慢查询日志:设置一个阈值,将运行时间超过该值的所有SQL...”,你知道这些字段的取值是有限而且固定的,那么,你应该使用ENUM而不是VARCHAR 6、Prepared Statement Prepared Statements很像存储过程,是一种运行在后台的sql...Prepared Statements可以检查一些你绑定好的变量,这样可以保护你的程序不会受到“SQL注入式”攻击 7、垂直分表 8、选择正确的存储引擎 20、key和index的区别 1、key是数据库的物理结构
, 34); insert into Score values('07' , '02' , 89); insert into Score values('07' , '03' , 98); 练习题和sql...score a left join course b on a.c_id = b.c_id GROUP BY a.c_id,b.c_name -- 19、按各科成绩进行排序,并显示排名(实现不完全) -- mysql
比如:用户在查询历史信息的时候,可以控制在一个月的时间范围内; 读写分离:经典的数据库拆分方案,主库负责写,从库负责读; 通过分库分表的方式进行优化,主要有垂直拆分和水平拆分。...bin log是逻辑日志,记录的是SQL语句的原始逻辑;redo log是物理日志,记录的是在某个数据页上做了什么修改。 讲一下MySQL架构?...查询缓存: 执行查询语句的时候,会先查询缓存,先校验这个 sql 是否执行过,如果有缓存这个 sql,就会直接返回给客户端,如果没有命中,就会执行后续的操作。...分析器: 没有命中缓存的话,SQL 语句就会经过分析器,主要分为两步,词法分析和语法分析,先看 SQL 语句要做什么,再检查 SQL 语句语法是否正确。...show processlist 或 show full processlist 可以查看当前 MySQL 是否有压力,正在运行的SQL,有没有慢SQL正在执行。
收集我们在平时使用SQL时的一些语法语句汇集,比如创建、备份、删除数据库的SQL脚本,这些当然是比较简了,还有复杂点的像备份、创建索引、复合SQL语句、创建视图、高级运算查询、EXCEPT 运算符、INTERSECT...运算符、使用外连接、SQL分组、复制或拷贝表、在线视图查询、存储过程调用、清理SQL、找重复记录等,另附有一些SQL经典技巧,比如精简SQL语句、压缩数据库、检查备份集、日志清除、数据库加密等等。
问题归纳起来就是:在MySQL里面update一条记录,语法都正确的,但记录并没有被更新......刚遇到这个问题的时候,我拿到这条语句直接在测试库里面执行了一把,发现确实有问题,但和开发描述的还是 有区别 ,这里我用测试数据来模拟下: 有问题的SQL语句 ? img 执行之前的记录是这样的: ?...看起来,语法是完全没有问题,翻了翻MySQL官方文档的update语法: ?...因此,这个逻辑表达式的结果为 false , false在MySQL中等价于0! end
实现原理:先利用DATEDIFF取得当前月的第一天,再将月份加一取得下月第一天,然后减去1分钟,再取日期的
领取专属 10元无门槛券
手把手带您无忧上云