首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【DB笔试面试399】现需要查询参加了课程ID为C10的考试,并且分数排在前10名的学生,以下哪项语句能够实现此功能()

    题目 在Oracle中,给定如下STUDENTS表的结构: SID NUMBER NOT NULL,Primary Key SNAME VARCHAR2(30) COURSE_ID VARCHAR2(...10) NOT NULL MARKS NUMBER 现需要查询参加了课程ID为C10的考试,并且分数排在前10名的学生,以下哪项语句能够实现此功能() A、SELECT SID,MARKS,ROWNUM...在数据库查询中,“Top-N分析”也称“Top-N查询”,就是获取某一数据集合(表或查询结果集)中的前N条记录,例如,考试成绩前三名的学生信息、销量前十名的畅销书信息、从当前时刻开始最早离港的五次航班信息等...以下几点内容是Top-N的性质: (1)Top-N分析就是查询前几名的意思。 (2)Top-N分析通过ROWNUM实现。 (3)Top-N分析中必须使用ORDER BY排序子句。...(4)Top-N分析中通常会有内建视图,一般的方法是先对内建视图的某一列或某些列排序,然后对此内建视图使用ROWNUM取前多少行数据。 所以,本题的答案为D。

    67910

    面试官竟然问我订单ID是怎么生成的?难道不是MySQL自增主键?

    我: 嗯,那就用用数据库集群,自增ID起始值按机器编号,步长等于机器数量。 比如有两台机器,第一台机器生成的ID是1、3、5、7,第二台机器生成的ID是2、4、6、8。...你有没有想过实现百万级的并发,大概就需要2000台机器,你这还只是用来生成订单ID,公司再有钱也经不起这么造。...32位字符串会占用更大的空间,无序的字符串作数据库主键,每次插入数据库的时候,MySQL为了维护B+树结构,需要频繁调整节点顺序,影响性能。况且字符串太长,也没有任何业务含义,pass。...数值且有序递增:数值占用的空间更小,有序递增能保证插入MySQL的时候更高性能。 嵌入业务含义:如果订单ID里面能嵌入业务含义,就能通过订单ID知道是哪个业务线生成的,便于排查问题。...如果你不需要那么大的并发量,可以把机器标识位拆出一部分,当作业务标识位,标识是哪个业务线生成的订单ID。 面试官: 小伙子,有点东西,深藏不漏啊。再问个更难的问题,你觉得雪花算法还有改进的空间吗?

    2K31

    MySQL 查询重复数据,删除重复数据保留id最小的一条作为唯一数据

    开发背景:   最近在做一个批量数据导入到MySQL数据库的功能,从批量导入就可以知道,这样的数据在插入数据库之前是不会进行重复判断的,因此只有在全部数据导入进去以后在执行一条语句进行删除,保证数据唯一性...HAVING COUNT(brandName)>1 #条件是数量大于1的重复数据 ) 使用SQL删除多余的重复数据,并保留Id最小的一条唯一数据: 注意点: 错误SQL:DELETE FROM brand...Id FROM (SELECT MIN(Id) AS Id FROM brand GROUP BY brandName HAVING COUNT(brandName)>1) t) #查询显示重复的数据都是显示最前面的几条...,因此不需要查询是否最小值 更加简单快捷的方式: 这是老飞飞的前辈给了一个更加方便,简洁的写法(非常感谢大佬的方法): DELETE FROM brand WHERE Id NOT IN (SELECT...总结: 很多东西都是需要自己一步一步的去探究的,当然网上的建议也是非常宝贵的借鉴和资源,无论做什么开发我们都需要理解它的工作原理才能够更好的掌握它。

    3.6K20

    MySQL中count是怎样执行的?———count(1),count(id),count(非索引列),count(二级索引列)的分析

    (索引列+主键id)是少于聚集索引(所有列)记录的,所以同样数量的非聚集索引记录比聚集索引记录占用更少的存储空间。...详情可见MySQL查询为什么选择使用这个索引?...InnoDB找到uk_key2的第一条二级索引记录,并返回给server层(注意:由于此时只是统计记录数量,所以并不需要回表)。 由于count函数的参数是*,MySQL会将*当作常数0处理。...重复上述过程,直到InnoDB向server层返回没记录可查的消息。 server层将最终的count变量的值发送到客户端。...NULL时选择不同的判断方式,这个判断为NULL的过程的代价可以忽略不计,所以我们可以认为count(*)、count(常数)、count(主键)所需要的代价是相同的。

    1.4K20

    Django 2.1.7 模型管理器 models.Manager 以及 元选项

    在查询数据的时候,对于某种固定的查询,例如视图之类的查询,通用类型的查询每次都需要写一遍,有没有一个地方可以将这类通用的查询抽象出来,进行模型的业务管理呢? 这时候就要看看模型的管理器了。...参考文献 https://docs.djangoproject.com/zh-hans/2.1/topics/db/managers/ 管理器Manager 在前面的篇章中,使用模型进行查询的时候,都会调用...默认情况下,Django 为每个Django模型类添加一个模型管理类Manager的对象为objects。...如果想要将这个对象修改为其他名称,那么可以用models.Manager()来自定义创建对象,如下: # 全国区域信息 class AREA(models.Model): .......area_obj = models.Manager() # 自定义模型管理对象 class Meta: db_table = 'AREA' # 设置表名为 AREA 使用自定义的模型管理类对象来进行查询如下

    57120

    Django 2.1.7 模型管理器 models.Manager 以及 元选项

    在查询数据的时候,对于某种固定的查询,例如视图之类的查询,通用类型的查询每次都需要写一遍,有没有一个地方可以将这类通用的查询抽象出来,进行模型的业务管理呢? 这时候就要看看模型的管理器了。...参考文献 https://docs.djangoproject.com/zh-hans/2.1/topics/db/managers/ 管理器Manager 在前面的篇章中,使用模型进行查询的时候,都会调用...默认情况下,Django 为每个Django模型类添加一个模型管理类Manager的对象为objects。...如果想要将这个对象修改为其他名称,那么可以用models.Manager()来自定义创建对象,如下: # 全国区域信息 class AREA(models.Model): .......area_obj = models.Manager() # 自定义模型管理对象 class Meta: db_table = 'AREA' # 设置表名为 AREA 使用自定义的模型管理类对象来进行查询如下

    98040

    Django MVT之M

    (BASE_DIR, 'db.sqlite3'), # MySQL引擎 'ENGINE': 'django.db.backends.mysql', # 数据库名...使用时,需引入django.db.models包,常用字段类型如下: 字段类型 描述 AutoField 根据实际ID自动增长的整数字段,通常不需要直接使用,Django会自动生成ID字段并且自动增长。...更加完整的介绍参考Django 1.8.2 中文文档 注:当修改模型类之后,如果添加的选项不影响表的结构,则不需要重新做迁移。其中选项default和blank不影响表结构。...可以对一个查询集进行取下标或切片操作,切片操作会产生一个新的查询集。与python的列表不同的是,下标不允许为负数。...from django.db.models import Q # 查询id大于3且学校为北京大学的学生 StudentInfo.objects.filter(Q(id__gt=3) & Q(school

    1K10

    Django篇(二)

    配置使用mysql数据库 之前我们使用的是Django中自带的数据库sqlite数据库。 这篇文章让我们切换成mysql,不会MySQL基础的可以去查询数据库篇的文章。...首先在使用时,我们需要导入django.db.models包 AutoField: 自动增长的IntegerField,通常不需要我们写,一般会自动生成。...更多模型字段,请参考Django官方文档。写的明明白白。 查询 我们在Django中通过操作模型类去做增删改查,sql语句那么多,我们同样可以进行增删改查。 其中最复杂的也就是查询了。...首先我们需要导入Q模块: from django.db.models import Q Q实例: 在实例之前,在Filter中是可以进行and操作的,但是不能进行or操作。...F对象 导入F对象: from django.db.models import F 查询id大于年龄(age)的人 student.objects.filter(id__gt=F('age')) 聚合函数

    1.4K20

    Django框架学习(三)

    3.模板 MVT中的T,template 3.0扩展 问:模板渲染的过程是在服务器端完成的,还是在客户端完成的? 答:服务器。...a)Django使用模板变量的时候,无论是字典、列表或元组的元素,都需要使用.不能使用[],字典是.key,元组和列表是.index下标;这是和flask有区别的地方。...Django中的id不需要定义,默认为我们添加了id,是主键,并且自增长。id可以使用pk代替(primary key) 定义字段名的时候,不允许使用连续的下划线。...hgender=0, hbook=book ) 4.5.2修改 1、 查询对象->修改对象属性->对象.save() 修改模型类对象的属性,然后执行save...删除 1、查询对象->对象.delete() 模型类对象delete hero = HeroInfo.objects.get(id=13) hero.delete() 2、模型类.objects.filter

    1.8K40

    跟着官方文档学Python——Django Rest framework

    前后端分离[把前端的界面效果(html,css,js分离到另一个服务端,python服务端只需要返回数据即可]。前端形成一个独立的网站,服务端构成一个独立的网站 什么是API?...如果我们把前端页面看作是一种用于展示的客户端,那么 API 就是为客户端提供数据、操作数据的接口。...这是因为,我们在不同客户端搜索的时候,都访问了后端同一个 API 。这样后端针对前端的同一种需求,只需开发一种接口,就可满足前端不同终端对于该资源的调用,大大降低了开发工作量,节约了开发时间。...两者都是数据转换格式,比如我们在django中获取到的数据默认是模型对象,但是模型对象数据无法直接提供给前端或别的平台使用,所以需要把数据进行序列化,变成字符串或者json数据,提供给别人,这是序列化。...'students', ] 创建students/models.py模型类对象: from django.db import models # Create your models here.

    2.3K10

    Django相关知识点回顾

    DRY=DoNotRepeatYourself不要重复的你自己做过的事情 2.Django是重量级框架,相对于Flask来说,很多功能组件不需要自己再进行安装。...2.2数据库ORM支持(对应Flask中的FlaskSQLAlchemy) ORM是对象关系映射,就是将数据库的操作都转化成对类,属性和方法的操作,不用写sql语句了,不用关注你使用的是mysql还是Oracle...' 4.将session信息存储到redis中 需要安装扩展: pip install django-redis 然后再配置中进行设置 # 设置Django框架的缓存位置(如果不做设置,缓存默认是服务器内存...= 值 可以写多个查询条件,默认是且的关系 F对象: 用于查询时字段之间的比较 from django.db.models import F Q对象: 用于查询时条件之间的逻辑关系 from django.db.models...例:查询id大于3的图书数量 BookInfo.objects.filter(id__gt=3).count() exists:判断查询集中是否有数据 两大特性 惰性查询: 只有在使用查询集中的数据时才会进行数据库真正查询操作

    10K51

    Django—模型

    O/R中字母O起源于"对象"(Object),而R则来自于"关系"(Relational)。几乎所有的程序里面,都存在对象和关系数据库。在业务逻辑层和用户界面层中,我们是面向对象的。...把数据库切换成了mysql,需要安装pymysql模块之后,Django框架才可以操作mysql数据库。...定义属性时需要指定字段类型,通过字段类型的参数指定选项,语法如下: 属性=models.字段类型(选项) 字段类型 使用时需要引入django.db.models包,字段类型如下: AutoField...答:使用F对象,被定义在django.db.models中。 语法如下: F(属性名) 例:查询阅读量大于等于评论量的图书。 from django.db.models import F ......(id__lt=3) 如果需要实现逻辑或or的查询,需要使用Q()对象结合|运算符,Q对象被义在django.db.models中。

    6.1K21

    使用python的Django库开发一个简单的数据可视化网站(三)- 使用Django连接数据库mysql

    这节课我们主要讲解的是使用Django框架连接数据库mysql,收到后台私信的朋友说让我简单说一下Django框架,这里先为大家简单介绍一下Django框架。...Django和flask是Python的两个主流网站开发工具,其中Django采用MTV设计模式,其中M代表models模型,T代表templates模板,V代表view视图。...Django的设计非常优美: 对象关系的映射:ORM,ORM可以使用python设计mysql的数据表字段,可以在python直接使用命令在mysql数据库中创建数据表。...url的分派:可以直接使用正则表达式匹配网页路由 模板系统:可以在框架中定义不同的子应用 表单处理:可以方便的生产各种表单 cache和session:方便缓存和保持用户会话 Django作为python...,这就是Django ORM数据对象映射的优势。

    1.5K30

    【Python全栈100天学习笔记】Day41 Django深入理解框架

    'django.db.backends.mysql':转手多次目前属于甲骨文公司的经济高效的数据库产品。 'django.db.backends.oracle':甲骨文公司的关系型数据库旗舰产品。...,从而避免Django找不到连接MySQL的客户端工具而询问你:“Did you install mysqlclient?...OK 执行完数据模型迁移操作之后,可以在通过图形化的MySQL客户端工具查看到E-R图(实体关系图)。 利用Django后台管理模型 Django框架有自带的后台管理系统来实现对模型的管理。...说明2:查询多个对象的时候返回的是QuerySet对象,QuerySet使用了惰性查询,即在创建QuerySet对象的过程中不涉及任何数据库活动,等真正用到对象时(求值QuerySet)才向数据库发送SQL.../ iregex:基于正则表达式的模糊匹配查询 Q对象(用于执行复杂查询)的使用: >>> from django.db.models import Q >>> Emp.objects.filter(

    2.3K30
    领券